2812上電引導過程

2021-04-23 23:20:04 字數 973 閱讀 7650

2812上電引導過程

從上電到我們的主函式執行之間這段時間裡2812到底做了些什麼?2812是怎樣引導程式執行的?下面敘述其啟動過程。

在2812中引腳xmp/~mc,當該引腳的為高電平時表示是微處理器模式(microprocessor),為低電平時表示微機算計模 式(microcomputer),當為微處理器模式時,2812內部的bootrom背禁止,通過zone7從外部調引導程式啟動。2812復位以後, 其復位向量是固定的0x3f ffc0,如果為為處理器模式,那麼復位後的復位向量指向的外部的位址,即0x3f ffc0是zone7處的位址,若為微機算計模式,那麼0x3f ffc0指向的是2812的片內flash的位址。下面就以微機算計模式加以說明其過程。

上電復位後,復位向量是指向片內flash的0x3f ffc0,2812有一塊flash位址從0x3f f000-0x3f ffff在出廠時已經固化好了引導程式。在0x3f ffc0處是一條跳轉指令,跳到iniboot(位址0x3f fb50)函式處執行iniboot**,該iniboot**就是ti在dsp出廠時固化在flash中的。iniboot函式判斷幾個gpio引腳來 判斷使用哪一種引導模式,比如flash boot模式,檢測spiclka,scitxa,gpio34的電平,當都為高電平時表明是片內flash boot模式,那麼initboot執行完後跳轉到0x3f 7ff6處,此位置剛好在128位(csm)密碼位置之前,你要在0x3f 7ff6處紡織跳轉指令,以跳轉到你要去的地方,比如是boot loader或應用**。在0x3f 7ff6 處放置跳轉指令的方法如下:

.sect "codestart"

code_start:

.if wd_disable == 1

lb wd_disable      ;branch to watchdog disable code

.else

lb _c_int00        ;branch to start of boot.

linux引導過程

bios是位於主機板的快閃儲存器中某段特殊區域。這個過程主要是是執行bios中從位址0xffff0處開始的 主要是確定要使用哪個裝置來引導系統,這個過程的具體步驟為 1 加電自檢 post 即對硬體進行檢測 2 本地裝置的列舉及初始化,bios會按照cmos設定的順序來搜尋處於活動狀態並且可以引導的...

系統引導過程

系統引導過程主要由以下幾個步驟組成 以硬碟啟動為例 1 開機 2 bios加電自檢 post power on self test 記憶體位址為0fff 0000 3 將硬碟第乙個扇區 0頭0道1扇區,也就是boot sector 讀入記憶體位址0000 7c00處 4 檢查 word 0000 7...

Linux引導過程

1 開機 2 加電自檢 bios,一段程式用於控制管理硬體,並決定啟動順序 所有資料 於cmos晶元 3 mbr引導 尋找啟動裝置上的mbr資訊,搜尋系統所有分割槽位置 4 grub引導 系統選擇選單 boot grub grub.conf 5 載入核心 將啟動核心載入到記憶體中 改區域不可越權訪問...