armutil.s

来自「Sirf/Centrality公司GPS平台AtlasIII芯片AT640的Nb」· S 代码 · 共 60 行

S
60
字号
;
; Copyright (c) 2002 Palmmicro Communications Inc.  All rights reserved.
;
; --------------------------------------------------------------------
; Module Name:
;	
;   armutil.s
;	  
; Abstract:
;	
;   This file contains the utilities for ARM CPU written in assembly
;

        INCLUDE at4x0f.inc
        
        AREA ArmUtil, CODE, READONLY

        EXPORT InterruptEnable

;  Enable interrupt
InterruptEnable
        mrs     r0, cpsr	                    ; (r0) = current status
        bic     r1, r0, #0x80                   ; clear interrupt disable bit
        msr     cpsr_cxsf, r1                   ; update status register
        mrs     r0, cpsr	                    ; (r0) = current status        
        mov     pc, lr

        EXPORT InterruptDisable

;  Disable interrupt
InterruptDisable
        mrs     r0, cpsr	                    ; (r0) = current status
        orr     r1, r0, #0x80                   ; set interrupt disable bit
        msr     cpsr_cxsf, r1                        ; update status register
        mrs     r0, cpsr	                    ; (r0) = current status        
        mov     pc, lr

        EXPORT CpuSetAsyncMode
CpuSetAsyncMode
        MRC      p15, 0, r0, c1, c0, 0
    	ORR 	 r0, r0, #0xc0000000
    	MCR      p15, 0, r0, c1, c0, 0
        MOV     pc, lr
        
        EXPORT CpuSetSyncMode
CpuSetSyncMode
        MRC      p15, 0, r0, c1, c0, 0
        BIC      r0, r0, #0xc0000000
    	ORR 	 r0, r0, #0x40000000
    	MCR      p15, 0, r0, c1, c0, 0
        MOV     pc, lr

        EXPORT CpuSetFastbusMode
CpuSetFastbusMode
        MRC      p15, 0, r0, c1, c0, 0
        BIC      r0, r0, #0xc0000000
    	MCR      p15, 0, r0, c1, c0, 0
        MOV     pc, lr
        
        END

⌨️ 快捷键说明

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