uboot入門教程 Uboot設(shè)備樹如何移植?
Uboot設(shè)備樹如何移植?移植方法:只能通過NandFlash控制器訪問NandFlash,即只需要知道Nand控制器的寄存器地址。NandFlash不是一個(gè)RamLikuboot是什么,在linux
Uboot設(shè)備樹如何移植?
移植方法:只能通過NandFlash控制器訪問NandFlash,即只需要知道Nand控制器的寄存器地址。
NandFlash不是一個(gè)RamLik
uboot是什么,在linux中干嘛用的?
U-boot是嵌入式系統(tǒng)中常用的一種引導(dǎo)加載程序。Bootload
uboot啟動(dòng)流程詳細(xì)分析?
U-BOOT的分析從鏈接文件開始,鏈接文件是針對編譯文件的,直接從start開始。s文件,如果它沒有被編譯。以u-boot-2009.11為例。對于S3C2440A,它的內(nèi)核是arm920t,所以它的文件位置位于cpuarm920tstart。S
_code函數(shù)首先由start.s執(zhí)行,在這個(gè)函數(shù)的源代碼中,有以下動(dòng)作。
1.1將CPU設(shè)置為SVC32模式。
1.2關(guān)閉看門狗,關(guān)閉中斷,設(shè)置時(shí)鐘分頻系數(shù),一般放入初始化文件lowlevel_init。與板級(jí)相關(guān),位于boardsamsungsmdk 2410 low level _ init . s。
1.3 CPU初始化,關(guān)閉MMU和緩存。
1.4跳轉(zhuǎn)到lowlevel_init中的lowlevel_init函數(shù)。s文件位于boardsamsungsmdk 2410 low level _ init . s。
2.lowlevel _ init.s文件中的lowlevel_init函數(shù)初始化內(nèi)存控制器,然后返回起點(diǎn)。s,然后執(zhí)行以下操作。
3.內(nèi)存初始化后,返回開始的動(dòng)作。s如下
3.1重定向U-BOOT到內(nèi)存運(yùn)行,也就是拷貝到內(nèi)存。
3.2初始化堆棧
3.3清除BSS部分
3.4跳轉(zhuǎn)到board.c文件中的start_處。Armboot功能,位置:lib_armoard.c
文件中的start_armboot函數(shù)大致做了以下動(dòng)作。
4.1初始化norflash、NAND FLASH、串口、網(wǎng)卡、MMC等。,這與主板上的特定CPU和設(shè)備密切相關(guān)。
4.2跳轉(zhuǎn)到commonmain.c處main.c文件中的main_loop函數(shù)
文件中的main_loop函數(shù)大致執(zhí)行以下操作。
5.1設(shè)置啟動(dòng)次數(shù)、調(diào)制解調(diào)器功能、版本號(hào)、啟動(dòng)延遲等。
5.2循環(huán)讀取用戶輸入的信息,并進(jìn)行相應(yīng)的操作。
其文件的跳轉(zhuǎn)過程是start.s-gt低級(jí)別_ init . s-gt start . s-gt board . c-gt main . c