嵌入式linux学习记录十五,uboot熟悉2

发布时间:2026/7/12 9:46:04
嵌入式linux学习记录十五,uboot熟悉2 配置LDSCRIPT确定 U-Boot 链接脚本Linker Script的绝对路径BOARDDIR在根目录下config.mk中定义。CONFIG_SYS_LDSCRIPT是老的uboot遗留下来的这段现在不是对LDSCRIPT设置配置LDSCRIPT确定 U-Boot 链接脚本Linker Script的绝对路径$(wildcard ...)这是 GNU make 的内置函数。它会检查参数中匹配的文件是否存在并返回存在的文件的路径。如果文件不存在则返回空字符串。根目录下的config.mk文件被称为“全局编译规则编译器”或“变量大本营”。U-Boot 编译出来的固件体积与运行速度之间的关键权衡都是一些编译参数设置-fno-stack-protector剥离堆栈保护器-fno-delete-null-pointer-checks拦截空指针优化陷阱-g向编译器和汇编器统一注入-g参数。这意味着编译出来的 ELF 固件里会包含完整的调试符号表保留了原始的 C 语言行号、变量名映射-Wno-format-nonliteral过滤无意义的报警一个针对特定古董硬件架构Motorola 68000简称 m68k以及特定老版本 GCC 编译器GCC 3.4的“陈年陈条”和 Bug 修复兜底机制。include scripts/Makefile.extrawarn编译命令后面加上W1这个脚本就会彻底觉醒用最严苛的洁癖视角审视所有的驱动 C 代码帮你抓出隐藏的隐患。make KCFLAGS-O3 -DDEBUG_MY_DRIVER通过加算$(KCFLAGS)向开发者递出了全系统的最高指挥棒。UBOOTINCLUDE该变量使用 GCC 的-I参数按优先级从上到下显式指定了头文件的搜寻目录NOSTDINC_FLAGS切断宿主机依赖目的在于使编译环境与 PC 操作系统脱钩。cpp_flags组合了预处理器所需的全部资源全局预处理标志、平台预处理标志、刚才计算出的 U-Boot 头文件路径、以及屏蔽系统头文件的-nostdinc标志。c_flags将 C 编译器的专属参数如之前计算出的-O2优化级别、-g调试符号等与预处理器标志cpp_flags进行叠加。构建 U-Boot 编译阶段的核心目标库列表libs-y变量。它决定了接下来的 Kbuild 编译系统需要深入到源码树的哪些子目录中去编译驱动、文件系统、网络协议栈等模块并最终将它们打包成.a静态库文件以供链接。scripts/Makefile.build在 U-Boot 中顶层 Makefile 本身不负责直接编译具体的.c文件。当顶层 Makefile 决定要编译某个子目录例如你刚才看到的drivers/gpio/时它会通过make -f scripts/Makefile.build objdrivers/gpio命令把实际的编译重任委派给scripts/Makefile.build。u-boot-dirs清洗目录尾部斜杠并追加工具目录 tools。这个变量主要用于控制接下来make递归进入子目录编译的循环序列。去掉了斜杠Make 引擎才能结合scripts/Makefile.build精准定位到物理文件夹。u-boot-alldirs收集全量目录用于清理。这个变量包含了 U-Boot 工程下几乎所有的子目录。它最核心的用途是提供给make clean或make mrpropper命令。当执行清理工程时系统直接遍历u-boot-alldirs就能把所有目录不管有没有被编译底下的垃圾文件一次性全部扫除干净。u-boot-init来自于$(head-y)。在arch/arm/Makefile中它被赋值为arch/arm/cpu/armv7/start.o。这是 U-Boot 的第一行汇编代码所在的位置。由于它被拎出来作为u-boot-init链接脚本u-boot.lds会在最后组装时强行把它放在二进制镜像的最前端0x0偏移处。只有这样i.MX6ULL 芯片上电时Boot ROM 才能第一眼看到它并正确执行。u-boot-main就是刚才拼装完毕的、包含了各个驱动目录下built-in.o的libs-y列表。为 U-Boot 链接阶段引入底层数学与位运算支持库libgcc.a。动态链接交叉编译器自带的官方库正点原子默认构建链接脚本预处理器标志LDPPFLAGS变量。BOARD_SIZE_CHECK定义一个用于检测编译输出固件体积是否超标的 Shell 脚本变量。在嵌入式开发中特定硬件平台分配给 U-Boot 的存储空间如片内高速度 SRAM、内部 Flash 或特定的分区表边界是存在物理上限的。如果编译出的固件超出了这个限制强行烧录会导致覆盖其他数据区或硬件无法启动。定义一个对编译出的二进制固件进行“静态链接重定位修复”的 Shell 脚本宏变量DO_STATIC_RELA。在现代 64 位 CPU 架构如 ARM64中U-Boot 为了支持位置无关代码PIC/PIE即允许 U-Boot 镜像在运行期间动态地把自己从一个内存地址拷贝到另一个内存地址重定位会在 ELF 文件中生成一个动态重定位段.rel.dyn或.rela.dyn。但是在 U-Boot 刚刚上电、DDR 内存还没初始化、重定位代码还没运行的极早期裸机阶段这些位置无关的绝对地址指针是无效的。为了让 U-Boot 在最早期能正常读取全局变量必须在编译阶段通过外部工具把这些动态重定位关联的物理地址硬编码写入二进制文件中。这就是“静态重定位修复”。构建 U-Boot 编译结束时最终需要生成的“终极目标文件列表”ALL-y变量。在 Makefile 中一个庞大的工程最终会输出很多种格式的文件如纯二进制、符号表、配置文件等。Kbuild 通过ALL-y变量把这些需要输出的目标全部打包收集起来作为默认编译规则all:伪目标的依赖项。ALL-y无条件收集的核心基础目标CONFIG_ONENAND_U_BOOT如果板子采用的是三星的 OneNAND 闪存芯片作为启动介质CONFIG_SPL_FSL_PBLFSL飞思卡尔/NXP处理器引导加载构造分支spl/u-boot-spl.bin如果开启了二级启动CONFIG_SPLy则追加生成 SPL 的二进制镜像。u-boot.img如果使用了标准 SPL 架构外壳CONFIG_SPL_FRAMEWORKySPL 需要识别特定格式的 U-Boot 镜像。u-boot.img是在纯二进制的u-boot.bin前面加上了64 字节的 MKIMAGE 头部信息包含镜像类型、加载地址、校验和等专供 SPL 识别并引导。tpl/u-boot-tpl.bin三级引导目标。在某些片内 SRAM 空间极度严苛的芯片上先跑 SPL再跑 TPL最后才进 U-Boot。对于 i.MX6ULL此项未定义。u-boot.dtb如果开启了设备树分离模式CONFIG_OF_SEPARATEy这是正点原子 i.MX6ULL 的默认配置系统会将设备树源码.dts编译为独立的二进制设备树文件.dtb并将u-boot.dtb加入生成目标列表。u-boot-dtb.img当同时满足“使用 SPL 框架”且“设备树分离”时追加。该目标在后续规则中会把u-boot.bin和编译好的u-boot.dtb物理上拼接到一起然后再用mkimage工具加上 64 字节头部生成一个复合镜像供 SPL 一次性加载。CONFIG_OF_HOSTFILE这是 U-Boot 在 Sandbox沙盒模拟模式下直接读取宿主机 Linux 里的设备树文件时使用的配置。有些 SoC 原厂例如三星、TI 或部分 NXP 芯片的底层 Boot ROM 不认标准的u-boot-spl.bin需要特定格式如u-boot-spl.imx或MLO。原厂会在 Kconfig 中将这个特定的文件名写入CONFIG_SPL_TARGET字符串。u-boot.elf重新生成带完整符号表的 ELF 格式可执行文件。u-boot-app.efi/u-boot-payload.efi当把 U-Boot 配置为作为 UEFI 应用程序运行或者作为 UEFI 的 Stub存根载荷时追加生成符合 UEFI 规范的可执行文件。追加生成u-boot.rom。这是专门针对 X86 物理主板 BIOS 闪存颗粒的大小经过精密填充和对齐后生成的完整镜像可以直接用烧录器刷入主板的 Flash 芯片中。对于你的 ARM 架构平台此判断不成立。continues

相关新闻

别被忽悠了!找客户网站建设公司前,这3个坑你必须先避开

别被忽悠了!找客户网站建设公司前,这3个坑你必须先避开

说实话,每次看到老板们拿着几万块预算,却连个像样的需求文档都拿不出来,我就觉得头疼。找一家靠谱的客户网站建设公司,真的不是去淘宝买个模板那么简单。我见过太多同行,因为前期沟通不到位,最后做出来的网站不仅丑,还根本没法用,甚至影响SEO排名。今天我就掏心窝子跟大…

发布时间:2026/7/12 9:45:02
天津网站建设中国互联企业官网搭建避坑指南与实战心得

天津网站建设中国互联企业官网搭建避坑指南与实战心得

很多老板找我聊天的第一句话总是:“我想做个网站,怎么这么贵?”或者“我在别处做的网站怎么打开这么慢?”说实话,每次听到这些我都挺无奈的。咱们天津的企业现在讲究的是实效,不是搞那些花里胡哨却中看不中用的面子工程。今天咱们就掏心窝子聊聊,在这个数字化时代,一家…

发布时间:2026/7/12 9:44:50
Anaconda 2024.06 + PyCharm 2024.1 集成:3 种虚拟环境创建与切换模式详解

Anaconda 2024.06 + PyCharm 2024.1 集成:3 种虚拟环境创建与切换模式详解

Anaconda 2024.06 与 PyCharm 2024.1 深度集成:虚拟环境全流程实战指南在Python开发领域,Anaconda和PyCharm的组合堪称黄金搭档。Anaconda提供了强大的包管理和环境隔离能力,而PyCharm则以其出色的代码编辑和调试功能著称。本文将深入探讨如何…

发布时间:2026/7/12 9:44:32
网站建设佰首选金手指二五避坑指南:别再为模板站交智商税了

网站建设佰首选金手指二五避坑指南:别再为模板站交智商税了

你是不是刚被一家所谓的“高端建站公司”坑了?交了三万块,结果拿到手的是一个连手机适配都做得稀烂的模板站?那种看着就让人火大的感觉,我太懂了。昨天有个朋友老张,急匆匆找我喝茶。他说自己为了赶双十一,找了一家报价两千的建站公司。当时销售信誓旦旦保证,说是“原创…

发布时间:2026/7/12 10:54:10
搞了三个月深南花园裙楼 网站建设,差点被坑哭,真心话别踩坑

搞了三个月深南花园裙楼 网站建设,差点被坑哭,真心话别踩坑

真的,我现在手还在抖。就在昨天,看着深南花园裙楼 网站建设终于上线,我差点没忍住把键盘砸了。这几个月,我算是把“甲方爸爸”这四个字刻进DNA里了。如果你也在搞这种老小区底商的线上转型,听我一句劝,别太天真,这水深得能淹死人。事情是这样的,我家楼下那个裙楼,本来…

发布时间:2026/7/12 10:53:40
网站建设灬金手指下拉十五:别整虚的,这才是让网站流量起飞的真招

网站建设灬金手指下拉十五:别整虚的,这才是让网站流量起飞的真招

别再被那些花里胡哨的建站教程忽悠了,这篇直接给你最实在的落地法子。看完你就知道,怎么让搜索引擎乖乖给你送流量。这玩意儿不玄乎,就是细节里的功夫,照着做就行。咱们搞网站,最头疼的就是没流量。你网站做得再漂亮,没人看也是白搭。很多人一上来就想着搞个大新闻,结果…

发布时间:2026/7/12 10:53:01
网站建设前别急着找外包,这3个坑我替你踩过了,省下的钱够吃顿好的

网站建设前别急着找外包,这3个坑我替你踩过了,省下的钱够吃顿好的

做网站这事儿,真不是找个美工画个图、找个程序员敲几行代码就完事儿的。太多老板跟我抱怨,说花了几万块做出来的网站,跟个电子名片似的,连个访客都留不住。其实吧,问题出在“网站建设前”这一步就没走对。我有个朋友老张,做建材生意的,去年急着上线官网,心想着赶紧把产…

发布时间:2026/7/12 10:50:31
别再被忽悠了!58同城合肥网站建设背后的那些坑,看完能省好几万

别再被忽悠了!58同城合肥网站建设背后的那些坑,看完能省好几万

说实话,现在想在合肥找个靠谱的网站制作团队,真没那么简单。很多老板一听到“58同城合肥网站建设”这个关键词,第一反应可能是“便宜”、“快”。但咱们做生意的都知道,便宜没好货,这话在IT行业里更是真理。今天我不讲那些虚头巴脑的技术名词,就掏心窝子跟各位合肥的老板…

发布时间:2026/7/12 10:49:05
西宁网站建设的公司哪家好?别被低价忽悠,本地老鸟的掏心窝建议

西宁网站建设的公司哪家好?别被低价忽悠,本地老鸟的掏心窝建议

最近好多朋友私信问我,西宁网站建设的公司哪家好。说实话,这问题真没标准答案。因为每个老板的需求不一样,预算也不一样。你要是拿几万块的预算去要求大厂的服务,那肯定得崩盘。我在这行摸爬滚打也有七八年了。见过太多老板因为贪便宜,最后网站做得像垃圾堆。今天我不讲大…

发布时间:2026/7/12 10:48:16
别装了,你的学院网站建设推进会就是场大型尴尬现场

别装了,你的学院网站建设推进会就是场大型尴尬现场

看着后台那点可怜的访问量,你急不急?方案改了八版,还是没人看。今天这文,只说怎么把会开成,把事做成。上周去隔壁职院蹭会,那场面,真叫一个窒息。会议室里坐满了人,领导在台上讲PPT,底下的人不是在玩手机,就是在发呆。投影仪闪了两下,灭了。没人去修,接着讲。这种会…

发布时间:2026/7/12 0:00:10
七彩建设集团官方网站怎么找?避坑指南与真实体验分享

七彩建设集团官方网站怎么找?避坑指南与真实体验分享

找官网找得头大?这篇直接告诉你怎么辨别真伪,别被假网站坑了钱。昨天半夜两点,我还在电脑前盯着屏幕,心里那个急啊。家里装修刚进场,工长突然说需要确认一份材料清单,说是七彩建设那边要求的。我手忙脚乱地打开浏览器,搜了一堆“七彩建设”,结果出来一堆广告,什么“七…

发布时间:2026/7/12 0:00:40
找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

做企业,网站就是脸面。 在龙岗,想找个靠谱的网站公司,真不容易。 市面上广告满天飞。 承诺得天花乱坠。 最后交付的东西,却让人想砸电脑。 今天不聊虚的。 只聊怎么避坑。 怎么找到真正可信赖的龙岗网站建设团队。先说个大实话。 别信什么“三天上线”。 那是骗小白的。 正…

发布时间:2026/7/12 0:00:44
别装了,你的学院网站建设推进会就是场大型尴尬现场

别装了,你的学院网站建设推进会就是场大型尴尬现场

看着后台那点可怜的访问量,你急不急?方案改了八版,还是没人看。今天这文,只说怎么把会开成,把事做成。上周去隔壁职院蹭会,那场面,真叫一个窒息。会议室里坐满了人,领导在台上讲PPT,底下的人不是在玩手机,就是在发呆。投影仪闪了两下,灭了。没人去修,接着讲。这种会…

发布时间:2026/7/12 0:00:10
七彩建设集团官方网站怎么找?避坑指南与真实体验分享

七彩建设集团官方网站怎么找?避坑指南与真实体验分享

找官网找得头大?这篇直接告诉你怎么辨别真伪,别被假网站坑了钱。昨天半夜两点,我还在电脑前盯着屏幕,心里那个急啊。家里装修刚进场,工长突然说需要确认一份材料清单,说是七彩建设那边要求的。我手忙脚乱地打开浏览器,搜了一堆“七彩建设”,结果出来一堆广告,什么“七…

发布时间:2026/7/12 0:00:40
找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

做企业,网站就是脸面。 在龙岗,想找个靠谱的网站公司,真不容易。 市面上广告满天飞。 承诺得天花乱坠。 最后交付的东西,却让人想砸电脑。 今天不聊虚的。 只聊怎么避坑。 怎么找到真正可信赖的龙岗网站建设团队。先说个大实话。 别信什么“三天上线”。 那是骗小白的。 正…

发布时间:2026/7/12 0:00:44
建站7年才悟出的网站建设思路,别再花冤枉钱了

建站7年才悟出的网站建设思路,别再花冤枉钱了

做建站这行整整7年了。 见过太多老板花几万块, 最后做出来的网站像个垃圾场。 今天不整那些虚头巴脑的术语。 就聊聊我踩过的坑, 和真正能落地的网站建设思路。很多老板一上来就问: “多少钱能做个高大上的?” 我通常直接劝退。 因为方向错了, 你给再多钱也是打水漂。 真正…

发布时间:2026/7/11 8:50:55
合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

做企业官网最怕什么?不是技术难,是交钱后没人管,或者上线一个月连个访客都没有。这篇东西不扯虚的,直接告诉你怎么在合肥找个靠谱的团队,或者自己怎么避坑。先说个大实话,我在合肥混这行五年多,见过太多老板因为贪便宜吃大亏。你去百度搜“合肥的网站建设”,出来一堆报…

发布时间:2026/7/10 18:05:06
别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

做这行久了,心里就憋着一股火。每次看到客户拿着网上抄来的模板,问我能不能做成“苹果官网”那种效果。我就想笑。真的,太想笑了。今天咱不整那些虚头巴脑的专业术语。就聊聊德州网站建设里,那些让人头秃的真实事儿。我有个客户,老张。他是做德州本地建材的,实在人。当初…

发布时间:2026/7/10 16:48:50