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