icache.s

来自「Windows CE 6.0 BSP for the Beagle Board.」· S 代码 · 共 52 行

S
52
字号
;-------------------------------------------------------------------------------
;
;  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 + =
减小字号Ctrl + -
显示快捷键?