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

📄 app.lis

📁 ucos在mage128上的应用
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -