1. 程式人生 > >關閉mmu和cache

關閉mmu和cache

進程 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_mmu
mov 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