ARM的存儲(chǔ)器映射與存儲(chǔ)器重映射
2.存儲(chǔ)器重映射:重新修改局部(64字節(jié)異常向量表);可選操作,穩(wěn)定運(yùn)行時(shí)由用戶需要進(jìn)行改變(用戶程序)。
本文引用地址:http://butianyuan.cn/article/201611/317247.htmMEMMAP=0:開(kāi)機(jī)默認(rèn)值,Boot裝載模式----向量表(0x00000000-0x0000003c)映射的是BootBlock中的0x7FFFE000-0x7FFFF03c中的值;芯片復(fù)位時(shí),啟動(dòng)boot裝載程序,boot裝載程序檢查P0.14口的狀態(tài)和用戶的異常向量,判斷是進(jìn)入ISP狀態(tài)還是啟動(dòng)用戶程序,若啟動(dòng)用戶程序,則自動(dòng)設(shè)置MEMMAP=1(片內(nèi)flash啟動(dòng))或3(片外程序存儲(chǔ)器啟動(dòng))。
MEMMAP=1:中斷向量表就在片內(nèi)flash中,地址就是0x00000000-0x0000003c,相當(dāng)于沒(méi)有映射;
MEMMAP=2:最為主要的設(shè)置,即是重映射的關(guān)鍵之所在,當(dāng)設(shè)置MEMMAP=2 時(shí),中斷向量表(0x00000000-0x0000003c)映射的是片內(nèi)SRAM中的0x40000000-0x4000003c中的值,而因?yàn)槭荢RAM,所以在程序運(yùn)行的過(guò)程中是可以改變的,這樣就可以達(dá)到重映射的目的啦(中斷向量表可以隨時(shí)修改)。
MEMMAP=3:中斷向量表就在片外flash中,中斷向量表(0x00000000-0x0000003c)映射到是片外flash中的0x80000000-0x8000003c中的值;功能上與MEMMAP=1時(shí)的差不多,因?yàn)橐坏┏绦蚬袒絝lash中,即為只讀,只是數(shù)值映射而已。
評(píng)論