remap(地址重映射)机制
? ? ? ? ? ? ? ? ? ? ? ?remap(地址重映射)機(jī)制
(1)在系統(tǒng)復(fù)位之后,ARM將從地址0處開始執(zhí)行指令,因此地址0x0處必須是ROM之類的在掉電之后數(shù)據(jù)不會天失的存儲介質(zhì),而且存放的必須是E確的可執(zhí)行的指令。
(2)在ARM的體系結(jié)構(gòu)中,異常和中斷的入口地址(即中斷向最表),位于存儲介質(zhì)的0x0-0x20的區(qū)域,每當(dāng)有異常或者中斷發(fā)生的時候,ARM將會跳轉(zhuǎn)到該區(qū)域內(nèi)的某個地址,去執(zhí)行異常處理程序。
(3)這樣,按照前面的講述,異常處理的中斷向量表將存放在ROM內(nèi)。這會帶來兩個問題,一是中斷向量表在程序運(yùn)行時無法動態(tài)地改變,降低了系統(tǒng)的靈活性:二是ROM相對RAM來說,在速度和數(shù)據(jù)寬度等性能上目前還存在不小的差距。因此,ARM提供了Remap (地址重映射)機(jī)制來解決這一矛盾。
(4)remap機(jī)制是這樣的:在復(fù)位初期,0x0地址映射到ROM所在的存儲空園。保障系統(tǒng)的正常運(yùn)行,在系統(tǒng)啟動完畢并且在執(zhí)行
某些初始化操作之后,RAM執(zhí)行一條remap命令,將0x0地址映射到RAM所在的存儲區(qū),并將中斷向量表復(fù)制到此時的0x0-0x20地址范圍內(nèi),即0x0地址在程序加載時位與ROM內(nèi),而在程序運(yùn)行時處于RAM內(nèi)。這樣既能保證程序的正確加載,又能夠以更高的速度響應(yīng)異常事件,并且允許中斷向量表的動態(tài)改變。
?
總結(jié)
以上是生活随笔為你收集整理的remap(地址重映射)机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式软件开发的特点、设计流程、嵌入式软
- 下一篇: 嵌入式ARM启动代码的工作