?? mmu_a.s
字號:
;
; MMU Cache/TLB/etc on/off functions
;
R1_I EQU (1<<12)
R1_C EQU (1<<2)
R1_A EQU (1<<1)
R1_M EQU (1)
R1_iA EQU (1<<31)
R1_nF EQU (1<<30)
AREA mmu_a, CODE, READONLY, ALIGN=4
CODE32
EXPORT MMU_EnableICache
; void MMU_EnableICache(void)
MMU_EnableICache
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #R1_I
mcr p15, 0, r0, c1, c0, 0
mov pc, lr
EXPORT MMU_DisableICache
; void MMU_DisableICache(void)
MMU_DisableICache
mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #R1_I
mcr p15, 0, r0, c1, c0, 0
mov pc, lr
EXPORT MMU_EnableDCache
; void MMU_EnableDCache(void)
MMU_EnableDCache
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #R1_C
mcr p15, 0, r0, c1, c0, 0
mov pc, lr
EXPORT MMU_DisableDCache
; void MMU_DisableDCache(void)
MMU_DisableDCache
mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #R1_C
mcr p15, 0, r0, c1, c0, 0
mov pc, lr
EXPORT MMU_EnableAlignFault
; void MMU_EnableAlignFault(void)
MMU_EnableAlignFault
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #R1_A
mcr p15, 0, r0, c1, c0, 0
mov pc, lr
EXPORT MMU_DisableAlignFault
; void MMU_DisableAlignFault(void)
MMU_DisableAlignFault
mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #R1_A
mcr p15, 0, r0, c1, c0, 0
mov pc, lr
EXPORT MMU_EnableMMU
; void MMU_EnableMMU(void)
MMU_EnableMMU
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #R1_M
mcr p15, 0, r0, c1, c0, 0
mov pc, lr
EXPORT MMU_DisableMMU
; void MMU_DisableMMU(void)
MMU_DisableMMU
mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #R1_M
mcr p15, 0, r0, c1, c0, 0
mov pc, lr
EXPORT MMU_SetFastBusMode
; void MMU_SetFastBusMode(void) FCLK:HCLK = 1:1
MMU_SetFastBusMode
mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #R1_iA:OR:R1_nF
mcr p15, 0, r0, c1, c0, 0
mov pc, lr
EXPORT MMU_SetAsyncBusMode
; void MMU_SetAsyncBusMode(void) FCLK:HCLK = 1:2
MMU_SetAsyncBusMode
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #R1_nF:OR:R1_iA
mcr p15, 0, r0, c1, c0, 0
mov pc, lr
EXPORT MMU_SetTTBase
; void MMU_SetTTBase(int base)
MMU_SetTTBase
mcr p15, 0, r0, c2, c0, 0
mov pc, lr
EXPORT MMU_SetDomain
; void MMU_SetDomain(int domain)
MMU_SetDomain
mcr p15, 0, r0, c3, c0, 0
mov pc, lr
EXPORT MMU_InvalidateIDCache
; void MMU_InvalidateIDCache(void)
MMU_InvalidateIDCache
mcr p15, 0, r0, c7, c7, 0
mov pc, lr
EXPORT MMU_InvalidateICache
; void MMU_InvalidateICache(void)
MMU_InvalidateICache
mcr p15, 0, r0, c7, c5, 0
mov pc, lr
EXPORT MMU_InvalidateICacheMVA
; void MMU_InvalidateICacheMVA(unsigned int mva)
MMU_InvalidateICacheMVA
mcr p15, 0, r0, c7, c5, 1
mov pc, lr
EXPORT MMU_PrefetchICacheMVA
; void MMU_PrefetchICacheMVA(unsigned int mva)
MMU_PrefetchICacheMVA
mcr p15, 0, r0, c7, c13, 1
mov pc, lr
EXPORT MMU_InvalidateDCache
; void MMU_InvalidateDCache(void)
MMU_InvalidateDCache
mcr p15, 0, r0, c7, c6, 0
mov pc, lr
EXPORT MMU_InvalidateDCacheMVA
; void MMU_InvalidateDCacheMVA(unsigned int mva)
MMU_InvalidateDCacheMVA
mcr p15, 0, r0, c7, c6, 1
mov pc, lr
EXPORT MMU_CleanDCacheMVA
; void MMU_CleanDCacheMVA(unsigned int mva)
MMU_CleanDCacheMVA
mcr p15, 0, r0, c7, c10, 1
mov pc, lr
EXPORT MMU_CleanInvalidateDCacheMVA
; void MMU_CleanInvalidateDCacheMVA(unsigned int mva)
MMU_CleanInvalidateDCacheMVA
mcr p15, 0, r0, c7, c14, 1
mov pc, lr
EXPORT MMU_CleanDCacheIndex
; void MMU_CleanDCacheIndex(unsigned int index)
MMU_CleanDCacheIndex
mcr p15, 0, r0, c7, c10, 2
mov pc, lr
EXPORT MMU_CleanInvalidateDCacheIndex
; void MMU_CleanInvalidateDCacheIndex(unsigned int index)
MMU_CleanInvalidateDCacheIndex
mcr p15, 0, r0, c7, c14, 2
mov pc, lr
EXPORT MMU_WaitForInterrupt
; void MMU_WaitForInterrupt(void)
MMU_WaitForInterrupt
mcr p15, 0, r0, c7, c0, 4
mov pc, lr
EXPORT MMU_InvalidateTLB
; voic MMU_InvalidateTLB(void)
MMU_InvalidateTLB
mcr p15, 0, r0, c8, c7, 0
mov pc, lr
EXPORT MMU_InvalidateITLB
; void MMU_InvalidateITLB(void)
MMU_InvalidateITLB
mcr p15, 0, r0, c8, c5, 0
mov pc, lr
EXPORT MMU_InvalidateITLBMVA
; void MMU_InvalidateITLBMVA(unsigned int mva)
MMU_InvalidateITLBMVA
mcr p15, 0, r0, c8, c5, 1
mov pc, lr
EXPORT MMU_InvalidateDTLB
; void MMU_InvalidateDTLB(void)
MMU_InvalidateDTLB
mcr p15, 0, r0, c8, c6, 0
mov pc, lr
EXPORT MMU_InvalidateDTLBMVA
; void MMU_InvalidateDTLBMVA(unsigned int mva)
MMU_InvalidateDTLBMVA
mcr p15, 0, r0, c8, c6, 1
mov pc, lr
EXPORT MMU_SetDCacheLockdownBase
; void MMU_SetDCacheLockdownBase(unsigned int base)
MMU_SetDCacheLockdownBase
mcr p15, 0, r0, c9, c0, 0
mov pc, lr
EXPORT MMU_SetICacheLockdownBase
; void MMU_SetICacheLockdownBase(unsigned int base)
MMU_SetICacheLockdownBase
mcr p15, 0, r0, c9, c0, 1
mov pc, lr
EXPORT MMU_SetDTLBLockdown
; void MMU_SetDTLBLockdown(unsigned int baseVictim)
MMU_SetDTLBLockdown
mcr p15, 0, r0, c10, c0, 0
mov pc, lr
EXPORT MMU_SetITLBLockdown
; void MMU_SetITLBLockdown(unsigned int baseVictim)
MMU_SetITLBLockdown
mcr p15, 0, r0, c10, c0, 1
mov pc, lr
EXPORT MMU_SetProcessId
; void MMU_SetProcessId(unsigned int pid)
MMU_SetProcessId
mcr p15, 0, r0, c13, c0, 0
mov pc, lr
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -