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

📄 app.s

📁 将本站的UCOSFORAVR128V276版本升级到了280版
💻 S
📖 第 1 页 / 共 2 页
字号:
	clr R19
	lds R16,_testsem1
	lds R17,_testsem1+1
	xcall _OSSemPend
	.dbline 183
	lds R16,_testsem
	lds R17,_testsem+1
	xcall _OSSemPost
	.dbline 184
	ldi R16,2
	xcall _LED_Toggle
	.dbline 185
	ldi R16,1
	ldi R17,0
	xcall _OSTimeDly
	.dbline 186
L9:
	.dbline 179
	xjmp L8
X1:
	.dbline -2
L7:
	adiw R28,3
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym l err 2 c
	.dbsym r p_arg 20 pV
	.dbend
	.dbfunc s AppTask2 _AppTask2 fV
;            err -> y+2
;          p_arg -> R20,R21
	.even
_AppTask2:
	xcall push_gset1
	movw R20,R16
	sbiw R28,3
	.dbline -1
	.dbline 196
; 	
; 	
; 	
;     while (TRUE) {
;         LED_Toggle(2);
; 		
; 		OSSemPend(testsem1,0,&err);
; 	    OSSemPost( testsem );
; 		LED_Toggle(2);
;         OSTimeDly(OS_TICKS_PER_SEC / 50);  //5
;     }
; }
; 
; /*
; *********************************************************************************************************
; *                                              TASK #2
; *********************************************************************************************************
; */
; 
; static void  AppTask2(void *p_arg)
; {
	.dbline 198
;  INT8U  err;
;     p_arg = p_arg;
	xjmp L13
L12:
	.dbline 202
	.dbline 203
	ldi R16,3
	xcall _LED_Toggle
	.dbline 205
	movw R24,R28
	adiw R24,2
	std y+1,R25
	std y+0,R24
	clr R18
	clr R19
	lds R16,_testsem
	lds R17,_testsem+1
	xcall _OSSemPend
	.dbline 206
	lds R16,_testsem1
	lds R17,_testsem1+1
	xcall _OSSemPost
	.dbline 207
	ldi R16,3
	xcall _LED_Toggle
	.dbline 208
	ldi R16,1
	ldi R17,0
	xcall _OSTimeDly
	.dbline 209
L13:
	.dbline 202
	xjmp L12
X2:
	.dbline -2
L11:
	adiw R28,3
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym l err 2 c
	.dbsym r p_arg 20 pV
	.dbend
	.dbfunc s AppTask3 _AppTask3 fV
;            err -> <dead>
;          p_arg -> R20,R21
	.even
_AppTask3:
	xcall push_gset1
	movw R20,R16
	.dbline -1
	.dbline 218
; 	
; 	
; 	
;     while (TRUE) {
;         LED_Toggle(3);
; 		
; 		OSSemPend(testsem,0,&err);
; 	    OSSemPost( testsem1 );
; 		LED_Toggle(3);
;         OSTimeDly(OS_TICKS_PER_SEC / 50);  //2
;     }
; }
; /*
; *********************************************************************************************************
; *                                              TASK #2
; *********************************************************************************************************
; */
; 
; static void  AppTask3(void *p_arg)
; {
	.dbline 220
;  INT8U  err;
;     p_arg = p_arg;
	xjmp L17
L16:
	.dbline 223
	.dbline 224
	ldi R16,4
	xcall _LED_Toggle
	.dbline 228
	ldi R16,4
	xcall _LED_Toggle
	.dbline 229
	ldi R16,1
	ldi R17,0
	xcall _OSTimeDly
	.dbline 230
L17:
	.dbline 223
	xjmp L16
X3:
	.dbline -2
L15:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym l err 1 c
	.dbsym r p_arg 20 pV
	.dbend
	.dbfunc s AppIOInit _AppIOInit fV
	.even
_AppIOInit:
	.dbline -1
	.dbline 240
; 	
; 	
;     while (TRUE) {
;         LED_Toggle(4);
; 		
; 		//OSSemPend(testsem1,0,&err);
; 	    //OSSemPost( testsem );
; 		LED_Toggle(4);
;         OSTimeDly(OS_TICKS_PER_SEC / 50);  //2
;     }
; }
; 
; /*
; *********************************************************************************************************
; *                                            SETUP THE I/Os
; *********************************************************************************************************
; */
; 
; static void AppIOInit (void)
; {
	.dbline 241
;     DDRD        = 0xFF;                                 /* All PORTD pins are outputs                  */
	ldi R24,255
	out 0x11,R24
	.dbline 242
;     PORTD       = 0xFF;
	out 0x12,R24
	.dbline -2
L19:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e OSTickISR_Init _OSTickISR_Init fV
	.even
_OSTickISR_Init::
	.dbline -1
	.dbline 252
; }
; 
; /*
; *********************************************************************************************************
; *                                        SETUP THE TICK RATE
; *********************************************************************************************************
; */
; 
; void  OSTickISR_Init (void)
; {
	.dbline 253
;     TCCR0 = 0x07;                                       /* Set TIMER0 prescaler to CLK/1024            */
	ldi R24,7
	out 0x33,R24
	.dbline 254
;     TIMSK = 0x01;                                       /* Enable TIMER0 overflow interrupt            */
	ldi R24,1
	out 0x37,R24
	.dbline -2
L20:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e OSTickISR_Handler _OSTickISR_Handler fV
	.even
_OSTickISR_Handler::
	.dbline -1
	.dbline 265
; }
; 
; 
; /*
; *********************************************************************************************************
; *                                        SETUP THE TICK RATE
; *********************************************************************************************************
; */
; 
; void  OSTickISR_Handler (void)
; {
	.dbline 266
;     TCNT0 = 256 - (CPU_CLK_FREQ / OS_TICKS_PER_SEC / 1024);
	ldi R24,185
	out 0x32,R24
	.dbline 267
;     OSTimeTick();
	xcall _OSTimeTick
	.dbline -2
L21:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc s LED_Toggle _LED_Toggle fV
;         cpu_sr -> R20
;            led -> R22
	.even
_LED_Toggle:
	xcall push_gset2
	mov R22,R16
	.dbline -1
	.dbline 277
; }
; 
; /*
; *********************************************************************************************************
; *                                          TOGGLE LED
; *********************************************************************************************************
; */
; 
; static  void  LED_Toggle (INT8U led)
; {
	.dbline 283
; #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
;     OS_CPU_SR  cpu_sr;
; #endif
; 
; 
;     OS_ENTER_CRITICAL();
	xcall _OS_CPU_SR_Save
	mov R20,R16
	.dbline 284
	clr R23
	cpi R22,1
	ldi R30,0
	cpc R23,R30
	breq L26
	cpi R22,2
	ldi R30,0
	cpc R23,R30
	breq L27
	cpi R22,3
	ldi R30,0
	cpc R23,R30
	breq L28
	cpi R22,4
	ldi R30,0
	cpc R23,R30
	breq L29
	xjmp L23
X4:
	.dbline 284
;     switch (led) {
L26:
	.dbline 286
;         case 1:
;              PORTD ^= 0x01;
	ldi R24,1
	in R2,0x12
	eor R2,R24
	out 0x12,R2
	.dbline 287
;              break;
	xjmp L24
L27:
	.dbline 290
; 
;         case 2:
;              PORTD ^= 0x02;
	ldi R24,2
	in R2,0x12
	eor R2,R24
	out 0x12,R2
	.dbline 291
;              break;
	xjmp L24
L28:
	.dbline 294
; 
;         case 3:
;              PORTD ^= 0x04;
	ldi R24,4
	in R2,0x12
	eor R2,R24
	out 0x12,R2
	.dbline 295
;              break;
	xjmp L24
L29:
	.dbline 298
; 
;         case 4:
;              PORTD ^= 0x08;
	ldi R24,8
	in R2,0x12
	eor R2,R24
	out 0x12,R2
	.dbline 299
;              break;
L23:
L24:
	.dbline 301
;     }
;     OS_EXIT_CRITICAL();
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline -2
L22:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r cpu_sr 20 c
	.dbsym r led 22 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\ypt050912\XIAZAI\xinzai\UCOSAVR128\app.c
_testsem1::
	.blkb 2
	.dbstruct 0 8 os_event
	.dbfield 0 OSEventType c
	.dbfield 1 OSEventPtr pV
	.dbfield 3 OSEventCnt i
	.dbfield 5 OSEventGrp c
	.dbfield 6 OSEventTbl A[2:2]c
	.dbend
	.dbsym e testsem1 _testsem1 pS[os_event]
_testsem::
	.blkb 2
	.dbsym e testsem _testsem pS[os_event]
_AppTask3Stk::
	.blkb 256
	.dbsym e AppTask3Stk _AppTask3Stk A[256:256]c
_AppTask2Stk::
	.blkb 256
	.dbsym e AppTask2Stk _AppTask2Stk A[256:256]c
_AppTask1Stk::
	.blkb 256
	.dbsym e AppTask1Stk _AppTask1Stk A[256:256]c
_AppTaskStartStk::
	.blkb 256
	.dbsym e AppTaskStartStk _AppTaskStartStk A[256:256]c
	.area func_lit
PL_AppTask2:	.word `_AppTask2
PL_AppTask1:	.word `_AppTask1
PL_AppTask3:	.word `_AppTask3
PL_AppTaskStart:	.word `_AppTaskStart

⌨️ 快捷键说明

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