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ó)嵌筆記](méi)[029][ARM處理器啟動(dòng)流程分析v2]
下一篇:[國(guó)嵌筆記](méi)[032][異常向量表]
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來(lái)
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問(wèn)外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- EVAL-AD5535EBZ,用于 AD5535、32 通道、14 位、串行輸入、高壓輸出 DAC 的評(píng)估板
- 使用 STMicroelectronics 的 L7915C 的參考設(shè)計(jì)
- 使用 STMicroelectronics 的 L6562 的參考設(shè)計(jì)
- 使用 TC7106A ADC 進(jìn)行小數(shù)點(diǎn)驅(qū)動(dòng)的典型應(yīng)用,使用測(cè)試作為邏輯地
- 用于微處理器復(fù)位電路的 NCP300HSN27T1 2.7V 電壓檢測(cè)器的典型應(yīng)用
- 使用 NXP Semiconductors 的 PCA9533D 的參考設(shè)計(jì)
- FSB127H mWSaver 電源開關(guān)典型應(yīng)用電路
- M41T64 低功耗實(shí)時(shí)時(shí)鐘的典型應(yīng)用
- AM2M-0515SH30-NZ 15 Vout、2W 單路輸出 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- AD9253-125EBZ,用于 AD9253、四通道、12 位、125 MSPS、串行 LVDS 1.8 V ADC 的評(píng)估板
- 蘇州固锝:半導(dǎo)體行業(yè)需求旺盛 公司完成2輪漲價(jià)
- STM8S自學(xué)筆記-004 時(shí)鐘:HSI、HSE與LSI
- 陸行之:臺(tái)積電對(duì)蘋果僅僅漲價(jià)3% 其他客戶情何以堪?
- ATmega168 時(shí)鐘源
- 單片機(jī)水塔控制系統(tǒng)
- STM32學(xué)習(xí)記錄(1)
- ADI公司的RadioVerse? SoC幫助提高5G射頻的效率和性能
- 英特爾Lisa Spelman:為數(shù)據(jù)中心用戶打造高性能和高能效的未來(lái)
- 4.3、使用寄存器版本點(diǎn)亮LED燈(內(nèi)附代碼)
- 西門子STEP7編程軟件創(chuàng)建DP從站
- 高性能電動(dòng)滑板車 BLDC 電機(jī)驅(qū)動(dòng)器:技術(shù)解析與應(yīng)用展望
- 5G工業(yè)網(wǎng)關(guān)的“邊緣計(jì)算+AI推理”一體化設(shè)計(jì),PLC協(xié)議解析與缺陷檢測(cè)的實(shí)時(shí)聯(lián)動(dòng)
- AR眼鏡的“工業(yè)指令投射”系統(tǒng),SLAM的空間定位、PLC數(shù)據(jù)實(shí)時(shí)疊加顯示
- 多光譜氣體傳感器的抗交叉干擾設(shè)計(jì)
- 多模態(tài)融合感知的“語(yǔ)義-幾何”聯(lián)合建模
- 工業(yè)觸摸屏的“壓感-手勢(shì)”多模態(tài)交互設(shè)計(jì)
- 工業(yè)機(jī)器人高精度力控的“雙模融合”傳感器設(shè)計(jì)
- 工業(yè)機(jī)器人集群的“數(shù)字孿生-物理實(shí)體”閉環(huán)優(yōu)化
- 工業(yè)以太網(wǎng)交換機(jī)的“時(shí)間敏感網(wǎng)絡(luò)(TSN)”改造
- 工業(yè)現(xiàn)場(chǎng)信號(hào)測(cè)試:耦合方式選擇實(shí)戰(zhàn)案例
- 解決新能源汽車電源問(wèn)題
- 如何提高編程器燒錄芯片的穩(wěn)定性
- 電源模塊設(shè)計(jì)和選用小貼士
- 廣域網(wǎng)絡(luò)名詞解釋
- 史上最全電池制造過(guò)程(二、讓電芯不再“裸奔” 電池包生產(chǎn)流程)
- 原董事長(zhǎng)王健去世,海航集團(tuán)再次調(diào)整管理架構(gòu)
- 為了杜絕殺人機(jī)器人,馬斯克都干了什么
- 面對(duì)到來(lái)的工業(yè)4.0,國(guó)產(chǎn)機(jī)器人該怎么擺好自己的位置
- IC龍頭企業(yè)入駐 中國(guó)“芯”硅谷IC Park盛大開園
- 服務(wù)機(jī)器人如何在風(fēng)口到來(lái)前活下去?