os_cpu_a.s

来自「移植在鱼板上运行的ucos」· S 代码 · 共 52 行

S
52
字号
	GET snds.s
	AREA CPUCode,CODE,READONLY
	EXPORT OSCtxSw
OSCtxSw
	STMFD sp!,{lr}
	STMFD sp!,{r0-r12,lr}
	MRS r0,cpsr
	STMFD sp!,{r0}
	IMPORT OSTCBCur
	LDR r4,=OSTCBCur
	LDR r5,[r4]
	STR sp,[r5]
	IMPORT OSTaskSwHook
	BL OSTaskSwHook
	;OSTCBCur=OSTCBHighRdy
	IMPORT OSTCBHighRdy
	LDR r5,=OSTCBHighRdy
	LDR r5,[r5]
	STR r5,[r4] 
	IMPORT OSPrioHighRdy
	LDR r6,=OSPrioHighRdy
	LDRB r6,[r6]
	IMPORT OSPrioCur
	LDR r7,=OSPrioCur
	STRB r6,[r7]
	LDR sp,[r5]
	LDMFD sp!,{r4}
	MSR spsr_cxsf,r4
	ORR r4,r4,#LOCKOUT
	MSR cpsr_cxsf,r4
	LDR r4,=0x3FF4008
	LDR r5,[r4]
	BIC r5,r5,#0x200000
	STR r5,[r4]
	LDMFD sp!,{r0-r12,lr,pc}^
	
	EXPORT OSStartHighRdy
OSStartHighRdy
	IMPORT OSTaskSwHook
	BL OSTaskSwHook
	IMPORT OSRunning
	LDR r4,=OSRunning
	MOV r5,#1
	STRB r5,[r4]
	IMPORT OSTCBHighRdy
	LDR r4,=OSTCBHighRdy
	LDR r4,[r4]
	LDR sp,[r4]
	LDMFD sp!,{r4}
	MSR cpsr_cxsf,r4
	LDMFD sp!,{r0-r12,lr,pc}
	END

⌨️ 快捷键说明

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