作者:曹忠明,華清遠見嵌入式學院講師。
U-boot(universal bootloader)是德國DENX小組開發(fā)的用于多嵌入式CPU的bootloader程序,遵循GPL條款。
以s3c2410為例Uboot的啟動過程大體可分為兩個部分,第一部分是初始化系統(tǒng)為第二部分做準備,多用匯編實現(xiàn),第二部分實現(xiàn)外圍設備的初始化和內(nèi)核的下載及參數(shù)的傳遞,開始用C實現(xiàn)。
下面是uboot啟動流程
Uboot啟動后的內(nèi)存分配情況。
34000000
33f80000 boot搬移地址
……
33f40000 堆棧開始地址
……
33f3ff80 全局變量存放位置
……
33f3ff7d abort棧
……
30008000 內(nèi)核下載地址
……
30004000 一級頁表地址
……
30000100 uboot傳遞參數(shù)存放地址
……
30000000 SDRAM開始地址
上面這個就是基于s3c2410,uboot的啟動過程及內(nèi)存分配。
“本文由華清遠見http://www.embedu.org/index.htm提供”
華清遠見