📄 app.lis
字号:
00D0 .dbline 151
00D0 ; OSTaskHardStkSize = OS_TASK_2_HARD_STK_SIZE; /* Setup the default hardware stack size */
00D0 80E4 ldi R24,64
00D2 90E0 ldi R25,0
00D4 90930100 sts _OSTaskHardStkSize+1,R25
00D8 80930000 sts _OSTaskHardStkSize,R24
00DC .dbline 152
00DC ; OSTaskCreate(AppTask2, (void *)0, (OS_STK *)&AppTask2Stk[OSTaskStkSize - 1], 2);
00DC 82E0 ldi R24,2
00DE 8A83 std y+2,R24
00E0 80E0 ldi R24,<_AppTask2Stk
00E2 90E0 ldi R25,>_AppTask2Stk
00E4 E0910000 lds R30,_OSTaskStkSize
00E8 F0910100 lds R31,_OSTaskStkSize+1
00EC 3197 sbiw R30,1
00EE E80F add R30,R24
00F0 F91F adc R31,R25
00F2 F983 std y+1,R31
00F4 E883 std y+0,R30
00F6 2227 clr R18
00F8 3327 clr R19
00FA 00E0 ldi R16,<PL_AppTask2
00FC 10E0 ldi R17,>PL_AppTask2
00FE 0E940000 xcall _OSTaskCreate
0102 .dbline -2
0102 L6:
0102 .dbline 0 ; func end
0102 2396 adiw R28,3
0104 0895 ret
0106 .dbend
0106 .dbfunc s AppTask1 _AppTask1 fV
0106 ; p_arg -> <dead>
.even
0106 _AppTask1:
0106 1A93 st -y,r17
0108 0A93 st -y,r16
010A .dbline -1
010A .dbline 162
010A ; }
010A ;
010A ; /*
010A ; *********************************************************************************************************
010A ; * TASK #1
010A ; *********************************************************************************************************
010A ; */
010A ;
010A ; static void AppTask1(void *p_arg)
010A ; {
010A .dbline 163
010A ; p_arg = p_arg;
010A 06C0 xjmp L9
010C L8:
010C .dbline 164
010C ; while (TRUE) {
010C .dbline 165
010C ; LED_Toggle(2);
010C 02E0 ldi R16,2
010E 17D0 xcall _LED_Toggle
0110 .dbline 166
0110 ; OSTimeDly(OS_TICKS_PER_SEC / 5);
0110 0AE0 ldi R16,10
0112 10E0 ldi R17,0
0114 0E940000 xcall _OSTimeDly
0118 .dbline 167
0118 ; }
0118 L9:
0118 .dbline 164
0118 F9CF xjmp L8
011A X1:
011A .dbline -2
011A L7:
011A .dbline 0 ; func end
011A 2296 adiw R28,2
011C 0895 ret
011E .dbsym l p_arg 0 pV
011E .dbend
011E .dbfunc s AppTask2 _AppTask2 fV
011E ; p_arg -> <dead>
.even
011E _AppTask2:
011E 1A93 st -y,r17
0120 0A93 st -y,r16
0122 .dbline -1
0122 .dbline 177
0122 ; }
0122 ;
0122 ; /*
0122 ; *********************************************************************************************************
0122 ; * TASK #2
0122 ; *********************************************************************************************************
0122 ; */
0122 ;
0122 ; static void AppTask2(void *p_arg)
0122 ; {
0122 .dbline 178
0122 ; p_arg = p_arg;
0122 06C0 xjmp L13
0124 L12:
0124 .dbline 179
0124 ; while (TRUE) {
0124 .dbline 180
0124 ; LED_Toggle(3);
0124 03E0 ldi R16,3
0126 0BD0 xcall _LED_Toggle
0128 .dbline 181
0128 ; OSTimeDly(OS_TICKS_PER_SEC / 2);
0128 09E1 ldi R16,25
012A 10E0 ldi R17,0
012C 0E940000 xcall _OSTimeDly
0130 .dbline 182
0130 ; }
0130 L13:
0130 .dbline 179
0130 F9CF xjmp L12
0132 X2:
0132 .dbline -2
0132 L11:
0132 .dbline 0 ; func end
0132 2296 adiw R28,2
0134 0895 ret
0136 .dbsym l p_arg 0 pV
0136 .dbend
0136 .dbfunc s AppIOInit _AppIOInit fV
.even
0136 _AppIOInit:
0136 .dbline -1
0136 .dbline 192
0136 ; }
0136 ;
0136 ; /*
0136 ; *********************************************************************************************************
0136 ; * SETUP THE I/Os
0136 ; *********************************************************************************************************
0136 ; */
0136 ;
0136 ; static void AppIOInit (void)
0136 ; {
0136 .dbline 193
0136 ; DDRD = 0xFF; /* All PORTD pins are outputs */
0136 8FEF ldi R24,255
0138 81BB out 0x11,R24
013A .dbline 194
013A ; PORTD = 0xFF;
013A 82BB out 0x12,R24
013C .dbline -2
013C L15:
013C .dbline 0 ; func end
013C 0895 ret
013E .dbend
013E .dbfunc s LED_Toggle _LED_Toggle fV
013E ; cpu_sr -> R10
013E ; led -> R12
.even
013E _LED_Toggle:
013E 0E940000 xcall push_xgset303C
0142 C02E mov R12,R16
0144 .dbline -1
0144 .dbline 205
0144 ; }
0144 ;
0144 ;
0144 ; /*
0144 ; *********************************************************************************************************
0144 ; * TOGGLE LED
0144 ; *********************************************************************************************************
0144 ; */
0144 ;
0144 ; static void LED_Toggle (INT8U led)
0144 ; {
0144 .dbline 211
0144 ; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
0144 ; OS_CPU_SR cpu_sr;
0144 ; #endif
0144 ;
0144 ;
0144 ; OS_ENTER_CRITICAL();
0144 0E940000 xcall _OS_CPU_SR_Save
0148 A02E mov R10,R16
014A .dbline 212
014A ; switch (led) {
014A 4C2D mov R20,R12
014C 5527 clr R21
014E 4130 cpi R20,1
0150 E0E0 ldi R30,0
0152 5E07 cpc R21,R30
0154 69F0 breq L20
0156 X3:
0156 4230 cpi R20,2
0158 E0E0 ldi R30,0
015A 5E07 cpc R21,R30
015C 71F0 breq L21
015E X4:
015E 4330 cpi R20,3
0160 E0E0 ldi R30,0
0162 5E07 cpc R21,R30
0164 79F0 breq L22
0166 X5:
0166 4430 cpi R20,4
0168 E0E0 ldi R30,0
016A 5E07 cpc R21,R30
016C 81F0 breq L23
016E X6:
016E 13C0 xjmp L17
0170 L20:
0170 .dbline 214
0170 ; case 1:
0170 ; PORTD ^= 0x01;
0170 81E0 ldi R24,1
0172 22B2 in R2,0x12
0174 2826 eor R2,R24
0176 22BA out 0x12,R2
0178 .dbline 215
0178 ; break;
0178 0EC0 xjmp L18
017A L21:
017A .dbline 218
017A ;
017A ; case 2:
017A ; PORTD ^= 0x02;
017A 82E0 ldi R24,2
017C 22B2 in R2,0x12
017E 2826 eor R2,R24
0180 22BA out 0x12,R2
0182 .dbline 219
0182 ; break;
0182 09C0 xjmp L18
0184 L22:
0184 .dbline 222
0184 ;
0184 ; case 3:
0184 ; PORTD ^= 0x04;
0184 84E0 ldi R24,4
0186 22B2 in R2,0x12
0188 2826 eor R2,R24
018A 22BA out 0x12,R2
018C .dbline 223
018C ; break;
018C 04C0 xjmp L18
018E L23:
018E .dbline 226
018E ;
018E ; case 4:
018E ; PORTD ^= 0x08;
018E 88E0 ldi R24,8
0190 22B2 in R2,0x12
0192 2826 eor R2,R24
0194 22BA out 0x12,R2
0196 .dbline 227
0196 ; break;
0196 L17:
0196 L18:
0196 .dbline 229
0196 ; }
0196 ; OS_EXIT_CRITICAL();
0196 0A2D mov R16,R10
0198 0E940000 xcall _OS_CPU_SR_Restore
019C .dbline -2
019C L16:
019C .dbline 0 ; func end
019C 0C940000 xjmp pop_xgset303C
01A0 .dbsym r cpu_sr 10 c
01A0 .dbsym r led 12 c
01A0 .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\MICRIUM\app.c
0000 _AppTask2Stk::
0000 .blkb 256
0100 .dbsym e AppTask2Stk _AppTask2Stk A[256:256]c
0100 _AppTask1Stk::
0100 .blkb 256
0200 .dbsym e AppTask1Stk _AppTask1Stk A[256:256]c
0200 _AppTaskStartStk::
0200 .blkb 256
0300 .dbsym e AppTaskStartStk _AppTaskStartStk A[256:256]c
0300 ; }
.area func_lit
0000 8F00 PL_AppTask2: .word `_AppTask2
0002 8300 PL_AppTask1: .word `_AppTask1
0004 3200 PL_AppTaskStart: .word `_AppTaskStart
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -