嵌入式linux学习记录十六,uboot熟悉3 all: $(ALL-y)终极总入口all伪目标CONFIG_SYS_GENERIC_BOARD远古架构淘汰警告CONFIG_DM_I2C_COMPAT驱动模型过渡期警告现代 U-Boot 引入了类似于 Linux 内核的DM设备驱动模型机制用统一的uclass和device结构体来管理外设驱动。定义了 U-Boot 编译设备树Device Tree的核心规则并提供了一个基础的文件复制命令。但是在正点原子的uboot中不是使用设备树方式而是使用传统的device方式把设备资源通过代码写死在内核中。这个代码在/board/freescale/mx6ullevk/mx6ullevk.c顶层 Makefile 中决定最终u-boot.bin物理形态的终极分水岭。CONFIG_OF_SEPARATE如果这个宏为y意味着用户要求“把 U-Boot 纯代码和设备树二进制文件DTB分开编译最后在最末端像搭积木一样物理拼接起来。”%.imx: %.binNXP飞思卡尔专属盖章.bin升级为.imxu-boot.hex u-boot.srec通过objcopy配合动态参数变量脱掉调试外衣将其强行扭转并物理格式化为普通的.hex和.srec文本格式。当主核心 ELF 文件u-boot链接完成后它不会盲目地直接拿去用而是要经历剥离调试信息、物理尺寸极限对齐性校验以及静态重定位修正。如果尺寸校验有哪怕 1 个字节的偏差整个编译大军会当场报错并熔断exit 1。在 U-Boot 编译的最末端设立了一道极其严格的质量安检关卡。它不仅动手把文件剥离转换为纯机器码还在后台高频拉起wc、awk和bc模拟了一次“数字审计”只要账目不对宁可当场自毁停止编译也绝不放行一个残缺的u-boot-nodtb.bin进入下一阶段的拼装。OBJCOPYFLAGS_u-boot-nodtb.bin这是一个专为生成u-boot-nodtb.bin准备的工具参数变量这段代码在顶层 Makefile 中负责编译和转换一个特殊的固件格式.ldrLoader 镜像格式。关于硬件启动入口点Entry Point的典型防错保底机制。continous