Embedded uboot-uart.bin和uboot.bin之间的区别?

Embedded uboot-uart.bin和uboot.bin之间的区别?,embedded,arm,u-boot,Embedded,Arm,U Boot,我正在尝试将第一个u-boot二进制文件(uboot.bin)闪存到一块全新的空白板上,该板使用Teraterm(xmodem/ymodem/zmodem)具有marvel 370 soc(ARM) 当我编译uboot时,我得到了两个二进制文件,比如uboot-uart.bin和uboot.bin 两个二进制文件之间的区别是什么 我被指示进行一些dip开关更改,然后首先将uboot-uart.bin加载到原型板中 从手册中我了解到dip开关设置是将“从Uart引导”设置为引导源列表 我是嵌入式新

我正在尝试将第一个u-boot二进制文件(uboot.bin)闪存到一块全新的空白板上,该板使用Teraterm(xmodem/ymodem/zmodem)具有marvel 370 soc(ARM)

当我编译uboot时,我得到了两个二进制文件,比如uboot-uart.bin和uboot.bin

两个二进制文件之间的区别是什么

我被指示进行一些dip开关更改,然后首先将uboot-uart.bin加载到原型板中

从手册中我了解到dip开关设置是将“从Uart引导”设置为引导源列表

我是嵌入式新手,希望从u-boot的角度了解更多信息。我在哪里可以了解到这一点

还想知道这些xmodem、ymodem、zmodem是什么

还想了解如何使用marvel 370 soc(ARM)为定制板定制u-boot


如果有人能指出好的资源,我会很高兴的。

XModem本身是一个非常简单的协议,用于通过串行链接发送文件,详细说明了这一点

过去几年中,大多数Marvell ARM芯片都有可能使用XModem协议通过UART上传二进制文件。有两种方法可以做到这一点

  • 通过在引导过程中向芯片发送一个特殊序列(这可以在不更改引导选项的情况下完成)
  • 通过相应地设置引导选项(通过案例中的DIP开关)
  • 在这两种情况下,芯片将启动Xmodem下载。TeraTerm应该有一个通过xmodem协议上传文件的选项。IIRC它在File/Transfer/XModem/Send下可用

    如果您知道,只需将“uboot uart.bin”文件发送到Armada 370(这需要一些时间)。SoC现在将引导文件,就像从NAND或任何其他源加载一样

    uboot-uart.bin和uboot.bin之间的唯一区别很可能是必须放在实际uboot二进制文件前面的特殊头,它包含映像的引导设备类型、映像应加载到的内存地址以及许多特定于电路板的设置。准确的结构和内容通常在Marvell非常优秀的数据表中解释


    对于定制uboot,我只能建议深入研究Marvell提供的代码,并根据您自己的板进行更改。您可以在boards/Marvell下找到特定于电路板的文件。

    谢谢。没什么问题了。uboot-uart.bin是否加载到RAM中并从此处执行?如果是,它如何知道RAM的地址(加载uboot-uart.bin的地址)?是的,它被加载到RAM中,RAM也通过来自图像头的信息进行设置,图像的地址也来自于此。我已经更新了我的答案以包含这些信息。谢谢你。你能分享一下如何检查uboot二进制文件吗?我希望看到像它使用readelf和objdump为elf所做的那样的头。我不知道Armada370中使用的确切头。正如您所说的“原型板上的DIP开关变化”。我怀疑您与Marvell或其分销商有联系,并收到了一个官方开发工具包。您应该要求他们访问数据表,通常他们会很好地解释标题。