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

📄 os_cpu_c.src

📁 UCOS-II.ZIP UCOS-II.ZIP UCOS-II.ZIP
💻 SRC
📖 第 1 页 / 共 2 页
字号:
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?ILDIX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#01H
	LCALL	?C?CSTPTR
;     *stk++ = 0x02;                              //R2
			; SOURCE LINE # 88
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?ILDIX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#02H
	LCALL	?C?CSTPTR
;     *stk++ = 0x03;                              //R3
			; SOURCE LINE # 89
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?ILDIX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#03H
	LCALL	?C?CSTPTR
;     *stk++ = 0x04;                              //R4
			; SOURCE LINE # 90
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?ILDIX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#04H
	LCALL	?C?CSTPTR
;     *stk++ = 0x05;                              //R5
			; SOURCE LINE # 91
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?ILDIX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#05H
	LCALL	?C?CSTPTR
;     *stk++ = 0x06;                              //R6
			; SOURCE LINE # 92
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?ILDIX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#06H
	LCALL	?C?CSTPTR
;     *stk++ = 0x07;                              //R7
			; SOURCE LINE # 93
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?ILDIX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,#07H
	LCALL	?C?CSTPTR
;                                                 //不用保存SP,任务切换时根据用户堆栈长度计算得出。    
;     *stk++ = (INT16U) (ptos+MaxStkSize) >> 8;   //?C_XBP 仿真堆栈指针高8位
			; SOURCE LINE # 95
	MOV  	DPTR,#09H
	LCALL	?C?XBPOFF
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#064H
	CLR  	A
	ADDC 	A,R2
	MOV  	R7,A
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?ILDIX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,R7
	LCALL	?C?CSTPTR
;     *stk++ = (INT16U) (ptos+MaxStkSize) & 0xFF; //?C_XBP 仿真堆栈指针低8位
			; SOURCE LINE # 96
	MOV  	DPTR,#09H
	LCALL	?C?XBPOFF
	INC  	DPTR
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#064H
	MOV  	R1,A
	MOV  	R7,AR1
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?ILDIX
	MOV  	R1,B
	MOV  	R2,A
	MOV  	A,R7
	LCALL	?C?CSTPTR
;         
;     return ((void *)ptos);
			; SOURCE LINE # 98
	MOV  	DPTR,#09H
	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
; }
			; SOURCE LINE # 99
?C0001:
	MOV  	DPTR,#0EH
	LJMP 	?C?ADDXBP
; END OF _?OSTaskStkInit

; 
; #if OS_CPU_HOOKS_EN
; /*
; *********************************************************************************************************
; *                                          任务创建钩挂函数
; *
; * 描述       : 任务创建时调用
; *
; * 参数       : ptcb是指向将被创建任务的任务控制块的指针。
; *
; * 注意       : 1) 调用期间中断被禁止
; *********************************************************************************************************
; */
; void OSTaskCreateHook (OS_TCB *ptcb) reentrant

	RSEG  ?PR?_?OSTaskCreateHook?OS_CPU_C
_?OSTaskCreateHook:
	USING	0
			; SOURCE LINE # 113
	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 # 115
	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 # 116
	MOV  	DPTR,#03H
	LJMP 	?C?ADDXBP
; END OF _?OSTaskCreateHook

; 
; 
; /*
; *********************************************************************************************************
; *                                          任务删除钩挂函数
; *
; * 描述       : 任务删除时调用
; *
; * 参数       : ptcb是指向将被删除任务的任务控制块的指针。
; *
; * 注意       : 1) 调用期间中断被禁止
; *********************************************************************************************************
; */
; void OSTaskDelHook (OS_TCB *ptcb) reentrant

	RSEG  ?PR?_?OSTaskDelHook?OS_CPU_C
_?OSTaskDelHook:
	USING	0
			; SOURCE LINE # 130
	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 # 132
	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 # 133
	MOV  	DPTR,#03H
	LJMP 	?C?ADDXBP
; END OF _?OSTaskDelHook

; 
; /*
; *********************************************************************************************************
; *                                          任务切换钩挂函数
; *
; * 描述       : 执行任务切换时调用。这允许你在上下文切换期间执行其它操作。
; *
; * 参数       : 无
; *
; * 注意       : 1) 调用期间中断被禁止
; *              2) 假定全局指针'OSTCBHighRdy'已经指向了将要被换入的任务控制块(即:最高优先级任务),并且
; *                 'OSTCBCur'指向了将被换出的任务(即:当前任务)。
; *********************************************************************************************************
; */
; void OSTaskSwHook (void) reentrant

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

; 
; /*
; *********************************************************************************************************
; *                                          统计任务钩挂函数
; *
; * 描述       : 这个函数每秒钟被uC/OS-II统计任务调用。这么做使你的应用程序可以增加统计任务的功能。
; *
; * 注意       : 无
; *********************************************************************************************************
; */
; void OSTaskStatHook (void) reentrant

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

; 
; /*
; *********************************************************************************************************
; *                                          定时钩挂函数
; *
; * 描述       : 本函数每一滴答被调用一次。
; *
; * 参数       : 无
; *
; * 注意       : 1) 在本调用期间中断可以或不可以使能。
; *********************************************************************************************************
; */
; void OSTimeTickHook (void) reentrant

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

; #endif
; 
; //初始化定时器2
; 
; void InitTimer(void) reentrant //SYS CK

	RSEG  ?PR?_?InitTimer?OS_CPU_C
_?InitTimer:
			; SOURCE LINE # 183
; {
; 	TMR3RLL = 0xDC; 
			; SOURCE LINE # 185
	MOV  	TMR3RLL,#0DCH
;     TMR3RLH = 0x00;
			; SOURCE LINE # 186
	CLR  	A
	MOV  	TMR3RLH,A
;     TMR3H 	= TMR3RLH;   
			; SOURCE LINE # 187
	MOV  	TMR3H,TMR3RLH
;     TMR3L 	= TMR3RLL;
			; SOURCE LINE # 188
	MOV  	TMR3L,TMR3RLL
;     TMR3CN 	= 0x06;	
			; SOURCE LINE # 189
	MOV  	TMR3CN,#06H
; }
			; SOURCE LINE # 190
	RET  	
; END OF _?InitTimer

; void config (void) 

	RSEG  ?PR?config?OS_CPU_C
config:
	USING	0
			; SOURCE LINE # 191
; {
			; SOURCE LINE # 192
; 
;     int n = 0;
			; SOURCE LINE # 194
;---- Variable 'n?740' assigned to Register 'R6/R7' ----
	CLR  	A
	MOV  	R7,A
	MOV  	R6,A
; 
; 	WDTCN = 0x07;	
			; SOURCE LINE # 196
	MOV  	WDTCN,#07H
;     WDTCN = 0xA5;
			; SOURCE LINE # 197
	MOV  	WDTCN,#0A5H
; //	WDTCN = 0xde;	 //STOP WDT
; // 	WDTCN = 0xad;     //false WDT  	
; 
; 
; 	XBR0 = 0x05;	
			; SOURCE LINE # 202
	MOV  	XBR0,#05H
; 	XBR1 = 0x00;	
			; SOURCE LINE # 203
	MOV  	XBR1,A
; 	XBR2 = 0x46;	
			; SOURCE LINE # 204
	MOV  	XBR2,#046H
; // Select Pin I/0
; 
;     P0MDOUT = 0x11; 
			; SOURCE LINE # 207
	MOV  	P0MDOUT,#011H
;     P1MDOUT = 0x00; 
			; SOURCE LINE # 208
	MOV  	P1MDOUT,A
;     P2MDOUT = 0x00; 
			; SOURCE LINE # 209
	MOV  	P2MDOUT,A
;     P3MDOUT = 0x00; 
			; SOURCE LINE # 210
	MOV  	P3MDOUT,A
;     P74OUT = 0x00;  
			; SOURCE LINE # 211
	MOV  	P74OUT,A
; 
;     P1MDIN = 0xFF;  
			; SOURCE LINE # 213
	MOV  	P1MDIN,#0FFH
; 
; 
; 		// Port 0
; 		// P0.0 = UART TX0        
; 		// P0.1 = UART RX0        
; 		// P0.2 = SMBus SDA       
; 		// P0.3 = SMBus SCL       
; 		// P0.4 = UART TX1        
; 		// P0.5 = UART RX1        
; 		// P0.6 = BEEP            
; 		// P0.7 = LED             
; 
; 					
; 		// Port 2		key
; 	
; 
; 		// Port 3		key
; 	EMI0TC=0xff;
			; SOURCE LINE # 231
	MOV  	EMI0TC,#0FFH
; 	
;     EMI0CF = 0x30;    
			; SOURCE LINE # 233
	MOV  	EMI0CF,#030H
; 
; 	OSCXCN = 0x67;	
			; SOURCE LINE # 235
	MOV  	OSCXCN,#067H
;     for (;n < 255; n++) ;           
			; SOURCE LINE # 236
?C0008:
	INC  	R7
	CJNE 	R7,#00H,?C0014
	INC  	R6
?C0014:
	MOV  	A,R7
	CPL  	A
	ORL  	A,R6
	JNZ  	?C0008
?C0011:
;     while ( (OSCXCN & 0x80) == 0 );	
			; SOURCE LINE # 237
	MOV  	A,OSCXCN
	JNB  	ACC.7,?C0011
?C0012:
; 
; 	OSCICN = 0x08;	
			; SOURCE LINE # 239
	MOV  	OSCICN,#08H
;     PCON = 0x00;        
			; SOURCE LINE # 240
	CLR  	A
	MOV  	PCON,A
; 
; 	SMB0CN = 0x44;	
			; SOURCE LINE # 242
	MOV  	SMB0CN,#044H
; 	SMB0ADR = 0XFE;	
			; SOURCE LINE # 243
	MOV  	SMB0ADR,#0FEH
; 	SMB0CR = -19;		//500k   syclk/(256-SMB0CR+2.5)/2
			; SOURCE LINE # 244
	MOV  	SMB0CR,#0EDH
; 
; 	
;  
; /*
;     SCON1 = 0x50;    //com1      
;     SADEN1 = 0x00;      
; 	SADDR1 = 0x00;      
; 
;     RCAP4H = RCAP2H;  
;     RCAP4L = RCAP2L; 
;     TH4    = RCAP4H;    
;     TL4    = RCAP4L;    
;     T4CON  = 0x34;   
; */
; 
;  	RCAP2H 	= 0XFF;  
			; SOURCE LINE # 260
	MOV  	RCAP2H,#0FFH
;     RCAP2L 	= 0XF4 ;   //57600  
			; SOURCE LINE # 261
	MOV  	RCAP2L,#0F4H
;     TH2 	= RCAP2H;    
			; SOURCE LINE # 262
	MOV  	TH2,RCAP2H
;     TL2 	= RCAP2L;     	
			; SOURCE LINE # 263
	MOV  	TL2,RCAP2L
;     T2CON 	= 0x34;        	    
			; SOURCE LINE # 264
	MOV  	T2CON,#034H
;     ES0 =1;
			; SOURCE LINE # 265
	SETB 	ES0
; 	SCON0=0x50;
			; SOURCE LINE # 266
	MOV  	SCON0,#050H
; 
; 	IP = 0x00;          
			; SOURCE LINE # 268
	MOV  	IP,A
; 
;     EIE1 = 0x02;        //smb int
			; SOURCE LINE # 270
	MOV  	EIE1,#02H
;     EIP1 = 0x02;       
			; SOURCE LINE # 271
	MOV  	EIP1,#02H
; 	
; 	EIE2 = 0x01;        //timer3 int
			; SOURCE LINE # 273
	MOV  	EIE2,#01H
;     EIP2 = 0x00;        
			; SOURCE LINE # 274
	MOV  	EIP2,A
; 
; }   
			; SOURCE LINE # 276
	RET  	
; END OF config

	END

⌨️ 快捷键说明

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