📄 app.lis
字号:
00E4 _AppTaskCreate:
00E4 2397 sbiw R28,3
00E6 .dbline -1
00E6 .dbline 155
00E6 ;
00E6 ; //OSTaskSuspend(5);
00E6 ; //OSTaskDel(4);
00E6 ; while (TRUE) { /* Task body, always written as an infinite loop. */
00E6 ; LED_Toggle(1);
00E6 ; OSTimeDly(OS_TICKS_PER_SEC / 50); //10
00E6 ;
00E6 ; }
00E6 ; }
00E6 ;
00E6 ;
00E6 ; /*
00E6 ; *********************************************************************************************************
00E6 ; * CREATE APPLICATION TASKS
00E6 ; *
00E6 ; * Description : This function creates the application tasks.
00E6 ; *
00E6 ; * Arguments : p_arg is the argument passed to 'AppStartTask()' by 'OSTaskCreate()'.
00E6 ; *
00E6 ; * Notes : 1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
00E6 ; * used. The compiler should not generate any code for this statement.
00E6 ; *********************************************************************************************************
00E6 ; */
00E6 ;
00E6 ; static void AppTaskCreate (void)
00E6 ; {
00E6 .dbline 157
00E6 ; /*---- Task initialization code goes HERE! --------------------------------------------------------*/
00E6 ; OSTaskStkSize = OS_TASK_1_STK_SIZE; /* Setup the default stack size */
00E6 80E0 ldi R24,256
00E8 91E0 ldi R25,1
00EA 90930100 sts _OSTaskStkSize+1,R25
00EE 80930000 sts _OSTaskStkSize,R24
00F2 .dbline 158
00F2 ; OSTaskHardStkSize = OS_TASK_1_HARD_STK_SIZE; /* Setup the default hardware stack size */
00F2 80E4 ldi R24,64
00F4 90E0 ldi R25,0
00F6 90930100 sts _OSTaskHardStkSize+1,R25
00FA 80930000 sts _OSTaskHardStkSize,R24
00FE .dbline 159
00FE ; OSTaskCreate(AppTask1, (void *)0, (OS_STK *)&AppTask1Stk[OSTaskStkSize - 1], 5);
00FE 85E0 ldi R24,5
0100 8A83 std y+2,R24
0102 80E0 ldi R24,<_AppTask1Stk
0104 90E0 ldi R25,>_AppTask1Stk
0106 E0910000 lds R30,_OSTaskStkSize
010A F0910100 lds R31,_OSTaskStkSize+1
010E 3197 sbiw R30,1
0110 E80F add R30,R24
0112 F91F adc R31,R25
0114 F983 std y+1,R31
0116 E883 std y+0,R30
0118 2227 clr R18
011A 3327 clr R19
011C 00E0 ldi R16,<PL_AppTask1
011E 10E0 ldi R17,>PL_AppTask1
0120 0E940000 xcall _OSTaskCreate
0124 .dbline 161
0124 ;
0124 ; OSTaskStkSize = OS_TASK_2_STK_SIZE; /* Setup the default stack size */
0124 80E0 ldi R24,256
0126 91E0 ldi R25,1
0128 90930100 sts _OSTaskStkSize+1,R25
012C 80930000 sts _OSTaskStkSize,R24
0130 .dbline 162
0130 ; OSTaskHardStkSize = OS_TASK_2_HARD_STK_SIZE; /* Setup the default hardware stack size */
0130 80E4 ldi R24,64
0132 90E0 ldi R25,0
0134 90930100 sts _OSTaskHardStkSize+1,R25
0138 80930000 sts _OSTaskHardStkSize,R24
013C .dbline 163
013C ; OSTaskCreate(AppTask2, (void *)0, (OS_STK *)&AppTask2Stk[OSTaskStkSize - 1], 6);
013C 86E0 ldi R24,6
013E 8A83 std y+2,R24
0140 80E0 ldi R24,<_AppTask2Stk
0142 90E0 ldi R25,>_AppTask2Stk
0144 E0910000 lds R30,_OSTaskStkSize
0148 F0910100 lds R31,_OSTaskStkSize+1
014C 3197 sbiw R30,1
014E E80F add R30,R24
0150 F91F adc R31,R25
0152 F983 std y+1,R31
0154 E883 std y+0,R30
0156 2227 clr R18
0158 3327 clr R19
015A 00E0 ldi R16,<PL_AppTask2
015C 10E0 ldi R17,>PL_AppTask2
015E 0E940000 xcall _OSTaskCreate
0162 .dbline -2
0162 L6:
0162 2396 adiw R28,3
0164 .dbline 0 ; func end
0164 0895 ret
0166 .dbend
0166 .dbfunc s AppTask1 _AppTask1 fV
0166 ; err -> y+2
0166 ; p_arg -> R20,R21
.even
0166 _AppTask1:
0166 0E940000 xcall push_gset1
016A A801 movw R20,R16
016C 2397 sbiw R28,3
016E .dbline -1
016E .dbline 173
016E ; }
016E ;
016E ; /*
016E ; *********************************************************************************************************
016E ; * TASK #1
016E ; *********************************************************************************************************
016E ; */
016E ;
016E ; static void AppTask1(void *p_arg)
016E ; {
016E .dbline 175
016E ; INT8U err;
016E ; p_arg = p_arg;
016E 1AC0 xjmp L9
0170 L8:
0170 .dbline 179
0170 .dbline 180
0170 02E0 ldi R16,2
0172 5FD0 xcall _LED_Toggle
0174 .dbline 182
0174 CE01 movw R24,R28
0176 0296 adiw R24,2
0178 9983 std y+1,R25
017A 8883 std y+0,R24
017C 2227 clr R18
017E 3327 clr R19
0180 00910000 lds R16,_testsem1
0184 10910100 lds R17,_testsem1+1
0188 0E940000 xcall _OSSemPend
018C .dbline 183
018C 00910200 lds R16,_testsem
0190 10910300 lds R17,_testsem+1
0194 0E940000 xcall _OSSemPost
0198 .dbline 184
0198 02E0 ldi R16,2
019A 4BD0 xcall _LED_Toggle
019C .dbline 185
019C 01E0 ldi R16,1
019E 10E0 ldi R17,0
01A0 0E940000 xcall _OSTimeDly
01A4 .dbline 186
01A4 L9:
01A4 .dbline 179
01A4 E5CF xjmp L8
01A6 X1:
01A6 .dbline -2
01A6 L7:
01A6 2396 adiw R28,3
01A8 0E940000 xcall pop_gset1
01AC .dbline 0 ; func end
01AC 0895 ret
01AE .dbsym l err 2 c
01AE .dbsym r p_arg 20 pV
01AE .dbend
01AE .dbfunc s AppTask2 _AppTask2 fV
01AE ; err -> y+2
01AE ; p_arg -> R20,R21
.even
01AE _AppTask2:
01AE 0E940000 xcall push_gset1
01B2 A801 movw R20,R16
01B4 2397 sbiw R28,3
01B6 .dbline -1
01B6 .dbline 196
01B6 ;
01B6 ;
01B6 ;
01B6 ; while (TRUE) {
01B6 ; LED_Toggle(2);
01B6 ;
01B6 ; OSSemPend(testsem1,0,&err);
01B6 ; OSSemPost( testsem );
01B6 ; LED_Toggle(2);
01B6 ; OSTimeDly(OS_TICKS_PER_SEC / 50); //5
01B6 ; }
01B6 ; }
01B6 ;
01B6 ; /*
01B6 ; *********************************************************************************************************
01B6 ; * TASK #2
01B6 ; *********************************************************************************************************
01B6 ; */
01B6 ;
01B6 ; static void AppTask2(void *p_arg)
01B6 ; {
01B6 .dbline 198
01B6 ; INT8U err;
01B6 ; p_arg = p_arg;
01B6 1AC0 xjmp L13
01B8 L12:
01B8 .dbline 202
01B8 .dbline 203
01B8 03E0 ldi R16,3
01BA 3BD0 xcall _LED_Toggle
01BC .dbline 205
01BC CE01 movw R24,R28
01BE 0296 adiw R24,2
01C0 9983 std y+1,R25
01C2 8883 std y+0,R24
01C4 2227 clr R18
01C6 3327 clr R19
01C8 00910200 lds R16,_testsem
01CC 10910300 lds R17,_testsem+1
01D0 0E940000 xcall _OSSemPend
01D4 .dbline 206
01D4 00910000 lds R16,_testsem1
01D8 10910100 lds R17,_testsem1+1
01DC 0E940000 xcall _OSSemPost
01E0 .dbline 207
01E0 03E0 ldi R16,3
01E2 27D0 xcall _LED_Toggle
01E4 .dbline 208
01E4 01E0 ldi R16,1
01E6 10E0 ldi R17,0
01E8 0E940000 xcall _OSTimeDly
01EC .dbline 209
01EC L13:
01EC .dbline 202
01EC E5CF xjmp L12
01EE X2:
01EE .dbline -2
01EE L11:
01EE 2396 adiw R28,3
01F0 0E940000 xcall pop_gset1
01F4 .dbline 0 ; func end
01F4 0895 ret
01F6 .dbsym l err 2 c
01F6 .dbsym r p_arg 20 pV
01F6 .dbend
01F6 .dbfunc s AppTask3 _AppTask3 fV
01F6 ; err -> <dead>
01F6 ; p_arg -> R20,R21
.even
01F6 _AppTask3:
01F6 0E940000 xcall push_gset1
01FA A801 movw R20,R16
01FC .dbline -1
01FC .dbline 218
01FC ;
01FC ;
01FC ;
01FC ; while (TRUE) {
01FC ; LED_Toggle(3);
01FC ;
01FC ; OSSemPend(testsem,0,&err);
01FC ; OSSemPost( testsem1 );
01FC ; LED_Toggle(3);
01FC ; OSTimeDly(OS_TICKS_PER_SEC / 50); //2
01FC ; }
01FC ; }
01FC ; /*
01FC ; *********************************************************************************************************
01FC ; * TASK #2
01FC ; *********************************************************************************************************
01FC ; */
01FC ;
01FC ; static void AppTask3(void *p_arg)
01FC ; {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -