日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

[國(guó)嵌筆記](méi)[030][U-Boot工作流程分析]

發(fā)布者:EtherealGrace最新更新時(shí)間:2025-02-21 來(lái)源: elecfans關(guān)鍵字:U-Boot  工作流程 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

uboot工作流程分析

程序入口

1.打開頂層目錄的Makefile,找到目標(biāo)smdk2440_config的命令中的第三項(xiàng)(smdk2440)

2.進(jìn)入目錄board/samsung/smdk2440/,找到u-boot.lds文件。uboot的鏈接都是由這個(gè)鏈接器腳本來(lái)控制的

3.打開u-boot.lds文件,找到.text(代碼段)的第一個(gè)文件cup/s3c24xx/start.o,該文件就是uboot的入口代碼。鏈接器腳本中的ENTRY用來(lái)表明整個(gè)程序的入口,那么標(biāo)號(hào)_start就是整個(gè)程序的入口

4.第一階段入口在cup/s3c24xx/start.S文件的_start處

5.第二階段入口在lib_arm/board.c文件的start_armboot處

 

第一階段(BL1)代碼分析

1.打開source insight工程,并打開start.S文件,[shift]+F8高亮顯示

2.分析代碼是只關(guān)心做了什么,不關(guān)怎么做??梢酝ㄟ^(guò)注釋找到做了什么。邊分析邊通過(guò)思維導(dǎo)圖記錄下來(lái)。

 

3.通過(guò)make smdk2440_config執(zhí)行相應(yīng)的配置項(xiàng)

4.執(zhí)行make,編譯uboot。在頂層目錄下會(huì)產(chǎn)生u-boot(elf)文件和u-boot.bin(二進(jìn)制)文件

5.通過(guò)反匯編u-boot(elf)文件可以查看相關(guān)信息

arm-linux-objdump -D -S u-boot >dump

搜索start_armboot可以找到start_armboot的地址為0x30001100, 在內(nèi)存中。說(shuō)明在這個(gè)時(shí)候BL1會(huì)跳轉(zhuǎn)到內(nèi)存中執(zhí)行BL2

6.打開頂層目錄下的config.mk文件,config.mk文件會(huì)由Makefile 包含進(jìn)去。搜索TEXT_BASE(代碼段的基地址),會(huì)找到 -T(LDSCRIPT) -Ttext $(TEXT_BASE) 表示指定鏈接器腳本的地址由TEXT_BASE覆蓋掉。TEXT_BASE變量在boot/samsung/smdk2440/config.mk文件中定義,該值為0x30000000

7.b指令相對(duì)跳轉(zhuǎn),只會(huì)在SteppingStone中跳轉(zhuǎn),不會(huì)跳轉(zhuǎn)到內(nèi)存中。ldr pc, start_armboot會(huì)修改pc指針的值,使跳轉(zhuǎn)到內(nèi)存中運(yùn)行

 

8.2440、6410和210的第二階段執(zhí)行的代碼都相同

9.2440和6410的BL1和BL2產(chǎn)生的是一個(gè)bin文件,210的BL1和BL2產(chǎn)生的是兩個(gè)bin文件

10.210的BL1的鏈接腳本位于spl/u-boot-spl.lds。入口程序在arch/arm/cpu/armv7/start.S

11.BL1會(huì)把BL2復(fù)制到內(nèi)存中的0x23E00000處。BL1(16KB)與BL2之間有8KB的填空,所以BL2的地址在BL1后24KB處

12.210的BL2的鏈接器腳本位于arch/arm/cpu/armv7/u-boot.lds。程序入口同樣在arch/arm/cpu/armv7/start.S中

 

 

 

2440第一階段啟動(dòng)流程分析

1.設(shè)置中斷向量表

2.設(shè)置處理器為svc模式

3.刷新I/D cache

4.關(guān)閉mmu和cache

5.關(guān)閉看門狗

6.關(guān)閉所有中斷

7.初始化時(shí)鐘

8.初始化串口

9.簡(jiǎn)單初始化nand flash

10.內(nèi)存初始化

11.復(fù)制nand flash中的bl2到內(nèi)存中

12.設(shè)置堆棧,為C語(yǔ)言做準(zhǔn)備

13.清除bss段

14.跳轉(zhuǎn)到BL2

 

2440第二階段啟動(dòng)流程分析

1.分析時(shí),只關(guān)心硬件的初始化,不關(guān)心軟件的初始化

2.初始化串口

3.初始化LCD

4.初始化網(wǎng)卡

5.初始化LED

6.執(zhí)行用戶輸入的命令

 



關(guān)鍵字:U-Boot  工作流程 引用地址:[國(guó)嵌筆記](méi)[030][U-Boot工作流程分析]

上一篇:[國(guó)嵌筆記](méi)[029][ARM處理器啟動(dòng)流程分析v2]
下一篇:[國(guó)嵌筆記](méi)[032][異常向量表]

小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved