關閉mmu和cache
阿新 • • 發佈:2018-01-24
進程 software body con global ack fetch 寄存器 單元
處理器內部寄存器,訪問速度最快,但是數量少
TCM:緊耦合存儲器(Cache、主存儲器)
輔助存儲器(Flash、SD等)
Cache是一種容量小但是存取速度非常快的存儲器
它保存最近用到的存儲器中的數據的拷貝,對於程
序員來說,Cache是透明的,他自動決定保存哪些
數據、覆蓋哪些數據。按照功能劃分:
I-cache:指令Cache
D-cache:數據Cache
虛擬地址:程序中使用的地址
物理地址:物理存儲單元的實際的地址
虛擬地址可以解決地址沖突,可以是進程使用更大的空間
1、使Icache+Dcache無效
2、關閉I/D-Cache
.text .global _start _start:b reset ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used ldr pc, _irq ldr pc, _fiq _undefined_instruction: .word undefined_instruction _software_interrupt:.word software_interrupt _prefetch_abort:.word prefetch_abort _data_abort:.word data_abort _not_used:.word not_used _irq:.word irq _fiq:.word fiq undefined_instruction: nop software_interrupt: nop prefetch_abort: nop data_abort: nop not_used: nop irq: nop fiq: nop reset: bl set_svc bl disable_watchdog bl diasble_interrupt bl disable_mmumov pc, lr set_svc: mrs r0, cpsr bic r0, r0, #0x1f orr r0, r0, #0xd3 msr cpsr, r0 mov pc, lr #define pwTCON 0x53000000 disable_watchdog: ldr r0, =pwTCON mov r1, #0x0 str r1, [r0] mov pc, lr disable_interrupt mvn r1, #0x0 ldr r0, =0x4a000008 str r1,[r0] mov pc, lr disable_mmu mcr p15,0,r0,c7,c7,0 mrc p15,0,r0,c1,c0,0 bic r0,r0,#0x00000007 mcr p15,0,r0,c1,c0,0 mov pc, lr
關閉mmu和cache