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

📄 os_cpu_c.src

📁 一个关于UCOS的KEIL工程
💻 SRC
📖 第 1 页 / 共 2 页
字号:
			; SOURCE LINE # 171
	MOV  	DPTR,#09H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R1,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	XCH  	A,R1
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
;     
; 	stk				-= sizeof(void *);
			; SOURCE LINE # 173
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,#0FDH
	LCALL	?C?IILDX
; 	*(void**)stk	 = pdata;
			; SOURCE LINE # 174
	MOV  	DPTR,#06H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	PUSH 	AR3
	PUSH 	AR2
	PUSH 	AR1
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	LCALL	?C?PSTPTR
; 	
; 	*--stk			 = 7;	
			; SOURCE LINE # 176
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#07H
	LCALL	?C?CSTPTR
; 	*--stk			 = 6;
			; SOURCE LINE # 177
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#06H
	LCALL	?C?CSTPTR
; 	*--stk			 = 5;
			; SOURCE LINE # 178
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#05H
	LCALL	?C?CSTPTR
; 	*--stk			 = 4;
			; SOURCE LINE # 179
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#04H
	LCALL	?C?CSTPTR
; /*
; 	*--stk			 = 3;
; 	*--stk			 = 2;
; 	*--stk			 = 1;
; */	
; 	stk				-= sizeof(void *);
			; SOURCE LINE # 185
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,#0FDH
	LCALL	?C?IILDX
; 	*(void**)stk	 = pdata;
			; SOURCE LINE # 186
	MOV  	DPTR,#06H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	PUSH 	AR3
	PUSH 	AR2
	PUSH 	AR1
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	LCALL	?C?PSTPTR
; 	*--stk			 = 0;
			; SOURCE LINE # 187
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	CLR  	A
	LCALL	?C?CSTPTR
; 	*--stk			 = PSW;
			; SOURCE LINE # 188
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,PSW
	LCALL	?C?CSTPTR
; 	*--stk			 = 'L';
			; SOURCE LINE # 189
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#04CH
	LCALL	?C?CSTPTR
; 	*--stk			 = 'H';
			; SOURCE LINE # 190
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#048H
	LCALL	?C?CSTPTR
; 	*--stk			 = 'B';
			; SOURCE LINE # 191
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#042H
	LCALL	?C?CSTPTR
; 	*--stk			 = 'A';
			; SOURCE LINE # 192
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#041H
	LCALL	?C?CSTPTR
; 	*--stk			 = ((INT16U)task >> 8);
			; SOURCE LINE # 193
	MOV  	DPTR,#03H
	LCALL	?C?XBPOFF
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	MOV  	A,R2
	MOV  	R7,A
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,R7
	LCALL	?C?CSTPTR
; 	*--stk			 = ((INT16U)task & 0x00FF);
			; SOURCE LINE # 194
	MOV  	DPTR,#03H
	LCALL	?C?XBPOFF
	INC  	DPTR
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,R7
	LCALL	?C?CSTPTR
; 	
; 	*--stk			 = 15;
			; SOURCE LINE # 196
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#0FH
	LCALL	?C?CSTPTR
; 
;     return ((void *)stk);
			; SOURCE LINE # 198
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
; }
			; SOURCE LINE # 199
?C0007:
	MOV  	DPTR,#0EH
	LJMP 	?C?ADDXBP
; END OF _?OSTaskStkInit

; 
; /*$PAGE*/
; /*
; *********************************************************************************************************
; *                                           TASK SWITCH HOOK
; *
; * Description: This function is called when a task switch is performed.  This allows you to perform other
; *              operations during a context switch.
; *
; * Arguments  : none
; *
; * Note(s)    : 1) Interrupts are disabled during this call.
; *              2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
; *                 will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the 
; *                 task being switched out (i.e. the preempted task).
; *********************************************************************************************************
; */
; #if OS_CPU_HOOKS_EN > 0 
; void  OSTaskSwHook (void) KCREENTRANT

	RSEG  ?PR?_?OSTaskSwHook?OS_CPU_C
_?OSTaskSwHook:
			; SOURCE LINE # 218
; {
; }
			; SOURCE LINE # 220
	RET  	
; END OF _?OSTaskSwHook

; #endif
; 
; /*
; *********************************************************************************************************
; *                                           OSTCBInit() HOOK
; *
; * Description: This function is called by OS_TCBInit() after setting up most of the TCB.
; *
; * Arguments  : ptcb    is a pointer to the TCB of the task being created.
; *
; * Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
; *********************************************************************************************************
; */
; #if OS_CPU_HOOKS_EN > 0 && OS_VERSION > 203
; void  OSTCBInitHook (OS_TCB *ptcb) KCREENTRANT

	RSEG  ?PR?_?OSTCBInitHook?OS_CPU_C
_?OSTCBInitHook:
	USING	0
			; SOURCE LINE # 235
	MOV  	DPTR,#0FFFDH
	LCALL	?C?ADDXBP
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
; {
;     ptcb = ptcb;                                           /* Prevent Compiler warning                 */
			; SOURCE LINE # 237
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R1,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	XCH  	A,R1
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
; }
			; SOURCE LINE # 238
	MOV  	DPTR,#03H
	LJMP 	?C?ADDXBP
; END OF _?OSTCBInitHook

; #endif
; 
; 
; /*
; *********************************************************************************************************
; *                                               TICK HOOK
; *
; * Description: This function is called every tick.
; *
; * Arguments  : none
; *
; * Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
; *********************************************************************************************************
; */
; #if OS_CPU_HOOKS_EN > 0 
; void  OSTimeTickHook (void) KCREENTRANT

	RSEG  ?PR?_?OSTimeTickHook?OS_CPU_C
_?OSTimeTickHook:
			; SOURCE LINE # 254
; {
; }
			; SOURCE LINE # 256
	RET  	
; END OF _?OSTimeTickHook

	END

⌨️ 快捷键说明

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