u boot第一階段

2021-07-11 02:36:45 字數 1618 閱讀 3211

u-boot 第一階段

**位置 cpu/arm920t/start.s

流程分析:

1.儲存一些全域性變數,用於啟動程式將**從flash拷貝到ram或其他使用。有一些變數的值是通過鏈結指令碼得到的,如

text_base 位於board\2440\config.mk 中

__bss_start、_end  位於board\2440\u-boot.lds 中

2.設定cpu保護模式

3.關閉看門狗

4.遮蔽所有中斷

5. 執行cpu_init_crit   關閉 i/d cache 、mmu

呼叫lowlevel_init  位置 :board\2440\lowlevel_init.s

功能 :初始化sdram   為複製flash中**到ram做準備,flash中執行慢,但掉電不丟失,u-boot 就儲存在flash中

we do sys-critical inits only at reboot, not when booting from ram!  意思說 cpu_init_crit  只在上電時執行,而在**除錯時,**是由**器寫到sdram中,說明

sdram已被初始化,則不需要重複執行!

6.  設定棧  為了能呼叫c函式clock_init 初始化時鐘

7. 初始化時鐘  clock_init  仿照 board\2440\smdk2440.c board_init    為了由12m轉化為400m 加快執行速度

8.把flash中的u-boot**移到ram中

9.初始化記憶體中bss段中資料為0     bss段儲存 靜態變數、全域性變數

10.跳轉到 _start_armboot  u-boot 第二階段初始化燒寫flash、串列埠、網絡卡、usb等裝置以方便開發及啟動核心。

UBOOT第一階段分析

感覺不錯的乙個圖就轉過來了!u boot第一階段的啟動流程。這個階段主要是初始化硬體裝置,為載入u boot的第二階段 準備ram空間最後跳轉到lib arm board.c中start armboot函式,這是第二階段的入口點。u boot第一階段的儲存器布局。上圖中u boot安裝在nand f...

u boot啟動流程 第一階段

具體分析參見另一篇blog 第一階段的啟動在.cpu arm920t start.s檔案中完成,之後執行c程式,對硬體進行更細緻的初始化操作 硬體初始化 設定svc模式 關閉watch dog 禁止irq 設定時鐘 fclk hclk pclk 禁止i cache d cache 禁止mmu和cac...

u boot 第一階段學習筆記

一 cpu訪問晶元時需要的條件 1.位址線 2.資料線 8 16 32位寬 3.訪問速度 即時鐘相關 由儲存管理器負責管理 二 為什麼從addr2連線a0?因為arm是32位處理器,所以它一次處理資料都是以32位為單位的,也就是說它讀或者寫資料時,位址只能為 0x0 0x04 0x08 即4位元組對...