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