2014-03-25 46 views
2

我想最先u-boot的二進制文件(uboot.bin)閃進空,也不是一個全新的空白板,具有使用Teraterm奇蹟370 SOC(ARM)(XMODEM/YMODEM/ZMODEM)的閃存uboot-uart.bin和uboot.bin之間的區別?

當我編譯uboot時,我得到了兩個二進制文件,如uboot-uart.bin和uboot.bin。

兩個二進制文件有什麼區別?

我被指示做一些撥動開關的改變,然後將uboot-uart.bin首先加載到原型板中。

從手冊我明白,DIP開關設置是將「從Uart引導」設置爲引導源列表。

我是嵌入式的新手,想從u-boot的角度來了解更多。我在哪裏可以瞭解到這一點?

還想知道這些xmodem,ymodem,zmodem的東西是什麼?

還想了解如何使用marvel 370 soc(ARM)爲定製板定製u-boot?

如果有人能指出良好的資源,我會很高興。

回答

2

XModem本身是一個非常簡單的協議,它旨在通過串行鏈接發送文件,詳細解釋here

在過去幾年裏,大多數Marvell ARM芯片都可以通過UART使用XModem協議上傳二進制文件。有兩種方法可以做到這一點。

  1. 通過在啓動過程中向芯片發送一個特殊的序列(這可以在不改變引導選項的情況下完成)。然後
  2. 通過(在你的情況下,通過DIP開關)相應地設置了引導選項

在這兩種情況下,該芯片將啓動Xmodem協議下載。 TeraTerm應該有一個選項來通過xmodem協議上傳文件。 IIRC在File/Transfer/XModem/Send下可用。

如果你知道只是發送你的「uboot-uart.bin」文件到Armada 370(這將需要一些時間)。現在,SoC將引導文件,就像從NAND或任何其他源加載一樣。

你的uboot-uart.bin和uboot.bin之間的唯一區別很可能是必須放在實際的uboot-binary之前的特殊頭,它包含了圖像的bootdevice類型,在內存中應該加載圖像的地址以及大量的電路板特定設置。確切的結構和內容通常在Marvell非常優秀的數據表中進行解釋。

對於定製uboot我只能建議挖掘到Marvell提供的代碼,並根據自己的董事會進行更改。您可以在主板/ Marvell下找到特定於主板的文件。

+0

Thanks Masta79。幾個更多的疑問。 是否將uboot-uart.bin加載到RAM中並從那裏執行? 如果是,它如何知道RAM的地址(uboot-uart.bin將被加載的地址)? –

+1

是的,它被加載到RAM中,RAM也通過來自圖像頭的信息來設置,並且圖像的地址也來自那裏。我已更新我的答案以包含此信息。 –

+0

感謝馬斯塔。你能分享一下如何檢查uboot二進制文件嗎? 我想看看它的標題使用readelf和objdump –