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

📄 os_cpu_c.src

📁 ucos2 程序代码!!!!!可用与51单片机
💻 SRC
📖 第 1 页 / 共 2 页
字号:
?C0016:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	CLR  	A
	MOVX 	@DPTR,A
;     *stk++ = 0x00;                              /* R0		*/
			; SOURCE LINE # 87
	MOV  	R0,?C_IBP
	INC  	R0
	INC  	@R0
	MOV  	A,@R0
	DEC  	R0
	MOV  	AR6,@R0
	JNZ  	?C0017
	INC  	@R0
?C0017:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	CLR  	A
	MOVX 	@DPTR,A
;     *stk++ = 0x01;                              /* R1		*/
			; SOURCE LINE # 88
	MOV  	R0,?C_IBP
	INC  	R0
	INC  	@R0
	MOV  	A,@R0
	DEC  	R0
	MOV  	AR6,@R0
	JNZ  	?C0018
	INC  	@R0
?C0018:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	A,#01H
	MOVX 	@DPTR,A
;     *stk++ = 0x02;                              /* R2		*/
			; SOURCE LINE # 89
	MOV  	R0,?C_IBP
	INC  	R0
	INC  	@R0
	MOV  	A,@R0
	DEC  	R0
	MOV  	AR6,@R0
	JNZ  	?C0019
	INC  	@R0
?C0019:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	A,#02H
	MOVX 	@DPTR,A
;     *stk++ = 0x03;                              /* R3		*/
			; SOURCE LINE # 90
	MOV  	R0,?C_IBP
	INC  	R0
	INC  	@R0
	MOV  	A,@R0
	DEC  	R0
	MOV  	AR6,@R0
	JNZ  	?C0020
	INC  	@R0
?C0020:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	A,#03H
	MOVX 	@DPTR,A
;     *stk++ = 0x04;                              /* R4		*/
			; SOURCE LINE # 91
	MOV  	R0,?C_IBP
	INC  	R0
	INC  	@R0
	MOV  	A,@R0
	DEC  	R0
	MOV  	AR6,@R0
	JNZ  	?C0021
	INC  	@R0
?C0021:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	A,#04H
	MOVX 	@DPTR,A
;     *stk++ = 0x05;                              /* R5		*/
			; SOURCE LINE # 92
	MOV  	R0,?C_IBP
	INC  	R0
	INC  	@R0
	MOV  	A,@R0
	DEC  	R0
	MOV  	AR6,@R0
	JNZ  	?C0022
	INC  	@R0
?C0022:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	A,#05H
	MOVX 	@DPTR,A
;     *stk++ = 0x06;                              /* R6		*/
			; SOURCE LINE # 93
	MOV  	R0,?C_IBP
	INC  	R0
	INC  	@R0
	MOV  	A,@R0
	DEC  	R0
	MOV  	AR6,@R0
	JNZ  	?C0023
	INC  	@R0
?C0023:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	A,#06H
	MOVX 	@DPTR,A
;     *stk++ = 0x07;                              /* R7		*/
			; SOURCE LINE # 94
	MOV  	R0,?C_IBP
	INC  	R0
	INC  	@R0
	MOV  	A,@R0
	DEC  	R0
	MOV  	AR6,@R0
	JNZ  	?C0024
	INC  	@R0
?C0024:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	A,#07H
	MOVX 	@DPTR,A
;                                                 
;     return ((void DT_XDATA *)ptos);				/* note return ptos, not stk */
			; SOURCE LINE # 96
	MOV  	R7,AR5
	MOV  	R6,AR4
; }
			; SOURCE LINE # 97
?C0001:
	MOV  	A,?C_IBP
	ADD  	A,#0AH
	MOV  	?C_IBP,A
	RET  	
; END OF _?OSTaskStkInit

CSEG	AT	0000BH
	LJMP	OSTickISR

; 
; /*
; *********************************************************************************************************
; *                                          OS Time ISR
; *
; * Description: use T0.
; *
; * Arguments  : 
; *
; * Note(s)    : in default, OSTickISR using register bank 0. Register pushing code will added by keilC.
; *********************************************************************************************************
; */
; void OSTickISR() interrupt 1

	RSEG  ?PR?OSTickISR?OS_CPU_C
	USING	0
OSTickISR:
	PUSH 	ACC
	PUSH 	B
	PUSH 	DPH
	PUSH 	DPL
	PUSH 	PSW
	MOV  	PSW,#00H
	PUSH 	AR0
	PUSH 	AR1
	PUSH 	AR2
	PUSH 	AR3
	PUSH 	AR4
	PUSH 	AR5
	PUSH 	AR6
	PUSH 	AR7
	USING	0
			; SOURCE LINE # 110
; {
; 	TL0 = TIMER_24M_25MS_L;
			; SOURCE LINE # 112
	MOV  	TL0,#0AAH
; 	TH0 = TIMER_24M_25MS_H;
			; SOURCE LINE # 113
	MOV  	TH0,#03CH
; 
; 	OSIntEnter();
			; SOURCE LINE # 115
	LCALL	_?OSIntEnter
; 	OSTimeTick();
			; SOURCE LINE # 116
	LCALL	_?OSTimeTick
; 	OSIntExit();
			; SOURCE LINE # 117
	LCALL	_?OSIntExit
; }
			; SOURCE LINE # 118
	POP  	AR7
	POP  	AR6
	POP  	AR5
	POP  	AR4
	POP  	AR3
	POP  	AR2
	POP  	AR1
	POP  	AR0
	POP  	PSW
	POP  	DPL
	POP  	DPH
	POP  	B
	POP  	ACC
	RETI 	
; END OF OSTickISR

; 
; 
; /*$PAGE*/
; #if OS_CPU_HOOKS_EN
; /*
; *********************************************************************************************************
; *                                          TASK CREATION HOOK
; *
; * Description: This function is called when a task is created.
; *
; * Arguments  : ptcb   is a pointer to the task control block of the task being created.
; *
; * Note(s)    : 1) Interrupts are disabled during this call.
; *********************************************************************************************************
; */
; void OSTaskCreateHook (OS_TCB DT_XDATA *ptcb) REENTRANT

	RSEG  ?PR?_?OSTaskCreateHook?OS_CPU_C
_?OSTaskCreateHook:
	USING	0
			; SOURCE LINE # 134
	DEC  	?C_IBP
	DEC  	?C_IBP
	MOV  	R0,?C_IBP
	MOV  	@R0,AR6
	INC  	R0
	MOV  	@R0,AR7
; {
;     ptcb = ptcb;                       /* Prevent compiler warning                                     */
			; SOURCE LINE # 136
	MOV  	R0,?C_IBP
	MOV  	A,@R0
	MOV  	R6,A
	INC  	R0
	MOV  	A,@R0
	MOV  	R7,A
	MOV  	R0,?C_IBP
	MOV  	@R0,AR6
	INC  	R0
	MOV  	@R0,AR7
; }
			; SOURCE LINE # 137
	INC  	?C_IBP
	INC  	?C_IBP
	RET  	
; END OF _?OSTaskCreateHook

; 
; 
; /*
; *********************************************************************************************************
; *                                           TASK DELETION HOOK
; *
; * Description: This function is called when a task is deleted.
; *
; * Arguments  : ptcb   is a pointer to the task control block of the task being deleted.
; *
; * Note(s)    : 1) Interrupts are disabled during this call.
; *********************************************************************************************************
; */
; void OSTaskDelHook (OS_TCB DT_XDATA *ptcb) REENTRANT

	RSEG  ?PR?_?OSTaskDelHook?OS_CPU_C
_?OSTaskDelHook:
	USING	0
			; SOURCE LINE # 151
	DEC  	?C_IBP
	DEC  	?C_IBP
	MOV  	R0,?C_IBP
	MOV  	@R0,AR6
	INC  	R0
	MOV  	@R0,AR7
; {
;     ptcb = ptcb;                       /* Prevent compiler warning                                     */
			; SOURCE LINE # 153
	MOV  	R0,?C_IBP
	MOV  	A,@R0
	MOV  	R6,A
	INC  	R0
	MOV  	A,@R0
	MOV  	R7,A
	MOV  	R0,?C_IBP
	MOV  	@R0,AR6
	INC  	R0
	MOV  	@R0,AR7
; }
			; SOURCE LINE # 154
	INC  	?C_IBP
	INC  	?C_IBP
	RET  	
; END OF _?OSTaskDelHook

; 
; /*
; *********************************************************************************************************
; *                                           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).
; *********************************************************************************************************
; */
; void OSTaskSwHook (void) REENTRANT

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

; 
; /*
; *********************************************************************************************************
; *                                           STATISTIC TASK HOOK
; *
; * Description: This function is called every second by uC/OS-II's statistics task.  This allows your 
; *              application to add functionality to the statistics task.
; *
; * Arguments  : none
; *********************************************************************************************************
; */
; void OSTaskStatHook (void) REENTRANT

	RSEG  ?PR?_?OSTaskStatHook?OS_CPU_C
_?OSTaskStatHook:
			; SOURCE LINE # 185
; {
; }
			; SOURCE LINE # 187
	RET  	
; END OF _?OSTaskStatHook

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

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

	END

⌨️ 快捷键说明

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