ARM9 Bootloader的啟動流程

2021-09-12 09:25:29 字數 546 閱讀 9500

bootloader啟動大多數都分為兩個階段.第乙個階段主要包含依賴於cpu的體系結構硬體初始化的**,通常都用組合語言來實現。這個階段的任務有:

1、基本的硬體裝置初始化(遮蔽所有的中斷、關閉處理器內部指令/資料cache等)。

2、為第二階段準備ram空間。

3、如果是從某個固態儲存煤質中,則複製bootloader的第二階段**到ram。

4、設定堆疊。

5、跳轉到第二階段的c程式入口點。

特別注意的地方:

在第一階段中為什麼要關閉cache?通常使用cache以及寫緩衝是為了提高系統效能。但由於cache的使用可能改變訪問主存的數量、型別和時間,因此bootloader通常是不需要的。

第二階段通常用c語言完成,以便實現更複雜的功能,也使程式有更好的可讀性和可移植性,這個階段的任務有:

1、初始化本階段要使用到的硬體裝置。

2、檢測系統記憶體對映。

3、將核心映像和根檔案系統映像從flash讀到ram。

4、為核心設定啟動引數。

5、呼叫核心。

bootloader詳解(ARM學習計畫)

參考 分析arm的兩種啟動方式 從nor flash啟動 nor flash一般為1m空間,程式可直接在nor flash中執行,位址對映為0 只需保證bootloader放在nor flash的0位址,arm一上電會從nor flash的0位址執行 從nand flash啟動 arm一上電nand...

ARM裸機開發(四) bootloader的設計

part 1 arm啟動流程 一 2440 啟動 檢視s3c2440a.pdf 文件 注 左為norflash啟動,右為從nandflash啟動 1.1 處理器上電後,從0位址啟動。nandflash啟動 1.2 nandflash不能直接參與arm處理器的統一編址,bootsram stepipn...

ARM裸機開發 bootloader 內部看ARM

一 嵌入式大彙總 1 晶元 s3c2440 s3c6410 s5pv210 2 arm核 a8 arm9 arm11 3 指令架構 armv7 armv6 2440使用的是arm9的核,核心使用的是armv4的指令架構 6410使用的是arm11的核,核心使用的是armv6的指令架構 210使用的是...