cn_os_cpu.s

来自「一个小的嵌入式os」· S 代码 · 共 72 行

S
72
字号
;//==============================================
;//			:Cn.oS[Operating System from China]
;//filename	:Cn_oS_cpu.s
;//description	:Enter CRITICAL,Exit CRITICAL
;//			:
;//author		:kaka(sn.kaka@yahoo.com)
;//date		:20080714
;//==============================================
;//==============================================
;//filename	:Cn_oS_cpu.s
;//description	:进入和退出临界状态下的代码
;//			:
;//author		:kaka(sn.kaka@yahoo.com)
;//date		:20080714
;//==============================================
        AREA    root_cpu_s, CODE, READONLY
        CODE32

        IMPORT  sum_critical    
        IMPORT NONE
        EXPORT  ENTER_CRITICAL
        EXPORT  EXIT_CRITICAL



;//=====================================================
;//			:Cn.oS[Operating System from China]
;//description	:Enter the Critical
;//具体工作原理我就不写出来了
;//心烦阿
;//=====================================================
ENTER_CRITICAL
 	
        STMFD   SP!,        	{R0,LR}
        MRS     	R0,         	CPSR
        ORR     	R0,         	R0, #(1<<7)
        MSR     	CPSR_c,    	R0

        ;LDR     	R0,        		 =sum_critical
        ;LDR     	R1,         	[R0]
        ;ADD     	R1,         	R1, #1
        ;STR     	R1,         	[R0]

        LDMFD   SP!,        	{R0,PC}


;//=====================================================
;//			:Cn.oS[Operating System from China]
;//description	: Exit the Critical
;//
;//
;//=====================================================
EXIT_CRITICAL
        STMFD   SP!,        	{R0,LR}

        ;LDR     	R0,         	=sum_critical
        ;LDR     	R1,         	[R0]
        ;SUBS    	R1,         	R1, #1
        ;STR     	R1,         	[R0]

        MRS     	R0,         	CPSR
        BIC   R0,         		R0, #(1<<7)
        MSR  CPSR_c,     	R0
       
        LDMFD   SP!,        	{R0,PC}
		

;//=====================================================

	 END

⌨️ 快捷键说明

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