📄 icache.s
字号:
;-------------------------------------------------------------------------------
;
; File: icache.s
;
;
INCLUDE kxarm.h
INCLUDE armmacros.s
INCLUDE oal_cache.inc
IMPORT g_oalCacheInfo
TEXTAREA
;-------------------------------------------------------------------------------
;
; Function: OALFlushICache
;
LEAF_ENTRY OALFlushICache
mov r0, #0
mcr p15, 0, r0, c7, c5, 0 ; invalidate all instruction caches
mov r2, #0
mcr p15, 0, r2, c7, c5, 4 ; flush the prefetch buffer
mcr p15, 0, r2, c7, c5, 6 ; flush entire branch target cache
RETURN
ENTRY_END OALFlushICache
;-------------------------------------------------------------------------------
;
; Function: OALFlushICacheLines
;
LEAF_ENTRY OALFlushICacheLines
ldr r2, =g_oalCacheInfo
ldr r3, [r2, #L1ILineSize]
10 mcr p15, 0, r0, c7, c5, 1 ; invalidate line from icache
add r0, r0, r3 ; move to next entry
subs r1, r1, r3
bgt %b10 ; loop while > 0 bytes left
mov r2, #0
mcr p15, 0, r2, c7, c5, 4 ; flush the prefetch buffer
mcr p15, 0, r2, c7, c5, 6 ; flush entire branch target cache
RETURN
ENTRY_END OALFlushICacheLines
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -