⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cleandclines.s

📁 Windows CE 6.0 BSP for VOIPAC Board (PXA270) Version 2b.
💻 S
字号:
;
; Copyright (c) Microsoft Corporation.  All rights reserved.
;
;
; Use of this source code is subject to the terms of the Microsoft end-user
; license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
; If you did not accept the terms of the EULA, you are not authorized to use
; this source code. For a copy of the EULA, please see the LICENSE.RTF on your
; install media.
;

    OPT     2       ; disable listing
    INCLUDE kxarm.h
    INCLUDE xscalecsp.inc	; bcm
    OPT     1       ; reenable listing
    OPT     128     ; disable listing of macro expansions
    INCLUDE armmacros.s

    TEXTAREA

    LEAF_ENTRY	XScaleCleanDCacheLines
;++
; Routine Description:
;    Clean some number of Data Cache lines
;
; Syntax:
;	void XScaleCleanDCacheLines(PVOID pAddr, DWORD dwLength, DWORD dwLineLength);
;
; Arguments:
;	pAddr -- virtual address at which to start cleaning, on dwLineLength-byte 
;            alignment
;	dwLength -- number of bytes to cleaning, must be > zero
;   dwLineLength -- number of bytes in a cache line
;
; Return Value:
;	-- none --
; r0..r2 junk
; CC flags junk	
;--

    ; invalidate the range of lines
10
    mcr 	p15, 0, r0, c7, c10, 1  ; clean each entry
    add     r0, r0, r2              ; on to the next line
    subs	r1, r1, r2              ; reduce the number of bytes left
    bgt     %b10                    ; loop while > 0 bytes left

    ; load parameter for write buffer drain
    mcr     p15, 0, r2, c7, c10, 4      ; drain write buffer
    

    ;  bcm:  since you do not call XScaleDrainWriteBuffer, need to deal with sighting
    
    ; Deal with Sighting #22271: Drain write buffer may be ignored if no outstanding memory requests
    ;  exist within the core.
    ;
    ;  I will deal with this by doing an arbitrary read from c=b=0 space (i.e. uncached, nonbuffered),
    ;   forcing the drain.
    ;
    ldr 	r2, =SDRAM_BASE_U_VIRTUAL
    mcr 	p15, 0, r0, c7, c10, 4	; drain the write buffer
    ldr 	r1, [r2]                    
   
    
    
    RETURN
    
    END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -