📄 app.s
字号:
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 + -