我刚编译了U-Boot引导程序,我在u-boot程序目录中看到了一些文件名,它们是:
u-boot.bin
u-boot.img
u-boot.lds
u-boot.srec
我对扩展名为.img
和.bin
的文件感兴趣。它们之间有什么不同吗?
u-boot.img
适用于SD卡,而u-boot.bin
适用于闪存吗?
我刚编译了U-Boot引导程序,我在u-boot程序目录中看到了一些文件名,它们是:
u-boot.bin
u-boot.img
u-boot.lds
u-boot.srec
我对扩展名为.img
和.bin
的文件感兴趣。它们之间有什么不同吗?
u-boot.img
适用于SD卡,而u-boot.bin
适用于闪存吗?
u-boot.bin
是已编译的 U-Boot 引导程序的二进制文件。
u-boot.img
包含 u-boot.bin
,还包括一个额外的头部,供引导 ROM 使用来确定如何以及在何处加载和执行 U-Boot。
这些文件的部署方式可能取决于您的设备性质、其启动 ROM 以及文件的加载位置。
启动 ROM 通常由 SoC/CPU 供应商提供。现在,许多启动 ROM 都能够加载 u-boot.img
,读取文件头部,将 u-boot.bin
加载到内存中,并最终执行它。一些启动 ROM 足够复杂,可以直接加载 u-boot.bin
,甚至是操作系统内核。而其他启动 ROM 可能首先加载一个中间引导程序 (MLO/X-Loader),一旦初始化了外部存储器,则由该引导程序负责作为次级引导程序加载 U-Boot。
以下图片显示了一些 TI OMAP 处理器实现的后一种情况:
某些设备通过将许多 X-Loader 任务移入 U-Boot 并将引导参数(例如内存地址)放入 u-boot.img
的头部来减少此启动过程,从而避免了中间引导程序的需要。
您需要调查您设备的属性,以确定如何部署 U-Boot。