嵌入式系統(tǒng)快速重啟的研究
在將代碼復(fù)制完之后將地址為0x0000_0000處的復(fù)位中斷跳轉(zhuǎn)矢量改為跳轉(zhuǎn)到0x3000_0000,如圖2中3所示。
然后程序跳轉(zhuǎn)到SDRAM中,地址為相對于0x3000_0000的一個偏移量,這個偏移量為當(dāng)前地址距0x0000_0000的偏移量,如圖2中4所示。
在圖2中5中,如果用戶使用了Reset按鍵,重新啟動系統(tǒng),我們就可以從地址為0x0000_00000處直接跳轉(zhuǎn)到0x3000_0000這個位置,開始進(jìn)行硬件初始化等工作,這次就不會有代碼拷貝的過程了。
快速重啟軟件流程
下面是系統(tǒng)自開機(jī)開始, 程序修改復(fù)位跳轉(zhuǎn)指令的流程圖,在修改0x0000_0000處的跳轉(zhuǎn)指令可用如下數(shù)據(jù)替代:
使用LDR PC, =0x3000_0000指令,反匯編后得到的32位指令數(shù)據(jù)是0xE3A0_F5C0,將其放到0x0000_0000處即可。
而修改0x0000_0000處的數(shù)據(jù),可用如下指令:
程序經(jīng)過以上配置,就可以實現(xiàn)系統(tǒng)的快速重啟。
結(jié)論
系統(tǒng)的快速重啟,應(yīng)用將非常廣泛。即使是嵌入式系統(tǒng)慢慢的也將變得很復(fù)雜,系統(tǒng)所占的空間也在慢慢的變大,這樣一個復(fù)制過程將嚴(yán)重影響很多設(shè)備的使用,最簡單的就是數(shù)碼相機(jī)了。本文引用地址:http://2s4d.com/article/202491.htm
評論