我刚刚编译了 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 用于闪存到 NAND 吗?

最佳答案

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 甚至操作系统内核。而其他人可能会首先加载一个中间引导加载程序(MLO/X-Loader),然后一旦外部存储器被初始化,它就会负责加载 U-Boot 作为辅助引导加载程序。

此图描绘了由某些 TI OMAP 处理器实现的后一种情况:
embedded-linux - u-boot.bin 和 u-boot.img 有什么不同-LMLPHP

某些设备通过将许多 X-Loader 任务移动到 U-Boot 并将引导参数(例如内存地址)放入 u-boot.img 的 header 中,从而避免了对中间引导加载程序的需要,从而减少了此引导过程。

您需要调查设备的属性,以确定应该如何部署 U-Boot。

关于embedded-linux - u-boot.bin 和 u-boot.img 有什么不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29494321/

10-15 17:03