os_cpu_a.s43

来自「uc/os操作系统在msp430单片机上的移植」· S43 代码 · 共 84 行

S43
84
字号
;//=================================================
;//:os_cpu_a.s43
;//		----
;//--MSP430移植 
;//--2007/09	by zhaoert
;//==================================================
        
	PUBLIC OSCtxSw
	PUBLIC OSStartRdy
        
	EXTERN OSPrioCur
	EXTERN OSPrioHighRdy
	EXTERN OSTaskStkPtr
 
;//----------------------------------------------------------------------
;//-----------------------OSCtxSw( ),OSStartRdy()------------------------
;
       ORG     0E000h

OSCtxSw:	
	;PUSHRS				; Save current task's context	
	;//PUSH    R3
	PUSH	R4
	PUSH	R5
	PUSH	R6
	PUSH	R7
	PUSH	R8
	PUSH	R9
	PUSH	R10
	PUSH	R11
	PUSH	R12
	PUSH	R13
	PUSH	R14
	PUSH	R15
	PUSH	SR
        
	;save TaskStackPtr to OSTaskStkPtr[OSPrioCur]
	MOV #OSTaskStkPtr, R7
	MOV.B OSPrioCur, R8
	ADD R8, R7
	ADD R8, R7
         
	;MOV  SP, @R7 
	PUSH SP
	POP  0(R7)
	ADD  #2, 0(R7)
        
OSStartRdy:
	;OSPrioCur<=OSPrioHighRdy
	MOV.B OSPrioHighRdy, R7
	MOV.B R7, OSPrioCur
	;get TaskStackPtr from OSTaskStkPtr[OSPrioCur]
	MOV #OSTaskStkPtr, R7
	MOV.B OSPrioCur, R8
	ADD R8, R7
	ADD R8, R7
       
	MOV @R7, SP
        
	;POPRS
	POP      SR
	POP      R15
 	POP      R14
 	POP      R13
 	POP      R12
 	POP      R11
 	POP      R10
 	POP      R9
 	POP      R8
 	POP      R7
 	POP      R6
	POP      R5
	POP      R4
	;//POP      R3
        
	EINT
	RET
        
;------------------------------------------------------
        
	END
;//:~

⌨️ 快捷键说明

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