我刚刚编译了U-Boot bootloader,我在u-boot程序目录中看到了几个文件名:
u-boot.bin
u-boot.img
u-boot.lds
u-boot.srec
基本上,我对扩展名为.img
和.bin
的文件感兴趣。他们之间有什么不同?
SD卡是u-boot.img
而闪存到NAND是u-boot.bin
吗?
答案 0 :(得分:15)
u-boot.bin
是二进制编译的U-Boot引导加载程序。
u-boot.img
包含u-boot.bin
以及引导ROM使用的额外标头,以确定加载和执行U-Boot的方式和位置。
部署这些文件的方式取决于设备的性质,引导ROM以及加载文件的位置。
Boot ROM通常由SoC / CPU供应商提供。目前,许多引导ROM能够加载u-boot.img
,读取文件的标头,将u-boot.bin
加载到内存中并最终执行它。某些引导ROM非常复杂,可以直接加载u-boot.bin
甚至是OS内核。其他人可能先加载中间引导加载程序(MLO / X-Loader),然后在外部存储器初始化后负责将U-Boot加载为辅助引导加载程序。
此图描绘了一些TI OMAP处理器实现的后一种情况:
某些设备通过将许多X-Loader任务移动到U-Boot并将引导参数(例如内存地址)放入u-boot.img
的标头中来减少此引导过程,从而无需中间引导加载程序
您需要调查设备的属性,以确定如何部署U-Boot。