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

📄 app.lis

📁 基于mega128的ucos参考源码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0106 0895              ret
 0108                   .dbend
 0108                   .dbfunc s AppTask1 _AppTask1 fV
 0108           ;          p_arg -> R20,R21
                        .even
 0108           _AppTask1:
 0108 0E940000          xcall push_gset1
 010C A801              movw R20,R16
 010E                   .dbline -1
 010E                   .dbline 157
 010E           ; }
 010E           ; 
 010E           ; /*
 010E           ; *********************************************************************************************************
 010E           ; *                                              TASK #1
 010E           ; *********************************************************************************************************
 010E           ; */
 010E           ; 
 010E           ; static void  AppTask1(void *p_arg)
 010E           ; {
 010E                   .dbline 158
 010E           ;     p_arg = p_arg;
 010E 06C0              xjmp L9
 0110           L8:
 0110                   .dbline 159
 0110                   .dbline 160
 0110 02E0              ldi R16,2
 0112 24D0              xcall _LED_Toggle
 0114                   .dbline 161
 0114 0AE0              ldi R16,10
 0116 10E0              ldi R17,0
 0118 0E940000          xcall _OSTimeDly
 011C                   .dbline 162
 011C           L9:
 011C                   .dbline 159
 011C F9CF              xjmp L8
 011E           X1:
 011E                   .dbline -2
 011E           L7:
 011E 0E940000          xcall pop_gset1
 0122                   .dbline 0 ; func end
 0122 0895              ret
 0124                   .dbsym r p_arg 20 pV
 0124                   .dbend
 0124                   .dbfunc s AppTask2 _AppTask2 fV
 0124           ;          p_arg -> R20,R21
                        .even
 0124           _AppTask2:
 0124 0E940000          xcall push_gset1
 0128 A801              movw R20,R16
 012A                   .dbline -1
 012A                   .dbline 172
 012A           ;     while (TRUE) {
 012A           ;         LED_Toggle(2);
 012A           ;         OSTimeDly(OS_TICKS_PER_SEC / 5);
 012A           ;     }
 012A           ; }
 012A           ; 
 012A           ; /*
 012A           ; *********************************************************************************************************
 012A           ; *                                              TASK #2
 012A           ; *********************************************************************************************************
 012A           ; */
 012A           ; 
 012A           ; static void  AppTask2(void *p_arg)
 012A           ; {
 012A                   .dbline 173
 012A           ;     p_arg = p_arg;
 012A 06C0              xjmp L13
 012C           L12:
 012C                   .dbline 174
 012C                   .dbline 175
 012C 03E0              ldi R16,3
 012E 16D0              xcall _LED_Toggle
 0130                   .dbline 176
 0130 09E1              ldi R16,25
 0132 10E0              ldi R17,0
 0134 0E940000          xcall _OSTimeDly
 0138                   .dbline 177
 0138           L13:
 0138                   .dbline 174
 0138 F9CF              xjmp L12
 013A           X2:
 013A                   .dbline -2
 013A           L11:
 013A 0E940000          xcall pop_gset1
 013E                   .dbline 0 ; func end
 013E 0895              ret
 0140                   .dbsym r p_arg 20 pV
 0140                   .dbend
 0140                   .dbfunc s AppIOInit _AppIOInit fV
                        .even
 0140           _AppIOInit:
 0140                   .dbline -1
 0140                   .dbline 187
 0140           ;     while (TRUE) {
 0140           ;         LED_Toggle(3);
 0140           ;         OSTimeDly(OS_TICKS_PER_SEC / 2);
 0140           ;     }
 0140           ; }
 0140           ; 
 0140           ; /*
 0140           ; *********************************************************************************************************
 0140           ; *                                            SETUP THE I/Os
 0140           ; *********************************************************************************************************
 0140           ; */
 0140           ; 
 0140           ; static void AppIOInit (void)
 0140           ; {
 0140                   .dbline 188
 0140           ;     DDRD        = 0xFF;                                 /* All PORTD pins are outputs                  */
 0140 8FEF              ldi R24,255
 0142 81BB              out 0x11,R24
 0144                   .dbline 189
 0144           ;     PORTD       = 0xFF;
 0144 82BB              out 0x12,R24
 0146                   .dbline -2
 0146           L15:
 0146                   .dbline 0 ; func end
 0146 0895              ret
 0148                   .dbend
 0148                   .dbfunc e OSTickISR_Init _OSTickISR_Init fV
                        .even
 0148           _OSTickISR_Init::
 0148                   .dbline -1
 0148                   .dbline 199
 0148           ; }
 0148           ; 
 0148           ; /*
 0148           ; *********************************************************************************************************
 0148           ; *                                        SETUP THE TICK RATE
 0148           ; *********************************************************************************************************
 0148           ; */
 0148           ; 
 0148           ; void  OSTickISR_Init (void)
 0148           ; {
 0148                   .dbline 200
 0148           ;     TCCR0 = 0x07;                                       /* Set TIMER0 prescaler to CLK/1024            */
 0148 87E0              ldi R24,7
 014A 83BF              out 0x33,R24
 014C                   .dbline 201
 014C           ;     TIMSK = 0x01;                                       /* Enable TIMER0 overflow interrupt            */
 014C 81E0              ldi R24,1
 014E 87BF              out 0x37,R24
 0150                   .dbline -2
 0150           L16:
 0150                   .dbline 0 ; func end
 0150 0895              ret
 0152                   .dbend
 0152                   .dbfunc e OSTickISR_Handler _OSTickISR_Handler fV
                        .even
 0152           _OSTickISR_Handler::
 0152                   .dbline -1
 0152                   .dbline 212
 0152           ; }
 0152           ; 
 0152           ; 
 0152           ; /*
 0152           ; *********************************************************************************************************
 0152           ; *                                        SETUP THE TICK RATE
 0152           ; *********************************************************************************************************
 0152           ; */
 0152           ; 
 0152           ; void  OSTickISR_Handler (void)
 0152           ; {
 0152                   .dbline 213
 0152           ;     TCNT0 = 256 - (CPU_CLK_FREQ / OS_TICKS_PER_SEC / 1024);
 0152 89EB              ldi R24,185
 0154 82BF              out 0x32,R24
 0156                   .dbline 214
 0156           ;     OSTimeTick();
 0156 0E940000          xcall _OSTimeTick
 015A                   .dbline -2
 015A           L17:
 015A                   .dbline 0 ; func end
 015A 0895              ret
 015C                   .dbend
 015C                   .dbfunc s LED_Toggle _LED_Toggle fV
 015C           ;         cpu_sr -> R20
 015C           ;            led -> R22
                        .even
 015C           _LED_Toggle:
 015C 0E940000          xcall push_gset2
 0160 602F              mov R22,R16
 0162                   .dbline -1
 0162                   .dbline 224
 0162           ; }
 0162           ; 
 0162           ; /*
 0162           ; *********************************************************************************************************
 0162           ; *                                          TOGGLE LED
 0162           ; *********************************************************************************************************
 0162           ; */
 0162           ; 
 0162           ; static  void  LED_Toggle (INT8U led)
 0162           ; {
 0162                   .dbline 230
 0162           ; #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
 0162           ;     OS_CPU_SR  cpu_sr;
 0162           ; #endif
 0162           ; 
 0162           ; 
 0162           ;     OS_ENTER_CRITICAL();
 0162 0E940000          xcall _OS_CPU_SR_Save
 0166 402F              mov R20,R16
 0168                   .dbline 231
 0168 7727              clr R23
 016A 6130              cpi R22,1
 016C E0E0              ldi R30,0
 016E 7E07              cpc R23,R30
 0170 69F0              breq L22
 0172 6230              cpi R22,2
 0174 E0E0              ldi R30,0
 0176 7E07              cpc R23,R30
 0178 71F0              breq L23
 017A 6330              cpi R22,3
 017C E0E0              ldi R30,0
 017E 7E07              cpc R23,R30
 0180 79F0              breq L24
 0182 6430              cpi R22,4
 0184 E0E0              ldi R30,0
 0186 7E07              cpc R23,R30
 0188 81F0              breq L25
 018A 13C0              xjmp L19
 018C           X3:
 018C                   .dbline 231
 018C           ;     switch (led) {
 018C           L22:
 018C                   .dbline 233
 018C           ;         case 1:
 018C           ;              PORTD ^= 0x01;
 018C 81E0              ldi R24,1
 018E 22B2              in R2,0x12
 0190 2826              eor R2,R24
 0192 22BA              out 0x12,R2
 0194                   .dbline 234
 0194           ;              break;
 0194 0EC0              xjmp L20
 0196           L23:
 0196                   .dbline 237
 0196           ; 
 0196           ;         case 2:
 0196           ;              PORTD ^= 0x02;
 0196 82E0              ldi R24,2
 0198 22B2              in R2,0x12
 019A 2826              eor R2,R24
 019C 22BA              out 0x12,R2
 019E                   .dbline 238
 019E           ;              break;
 019E 09C0              xjmp L20
 01A0           L24:
 01A0                   .dbline 241
 01A0           ; 
 01A0           ;         case 3:
 01A0           ;              PORTD ^= 0x04;
 01A0 84E0              ldi R24,4
 01A2 22B2              in R2,0x12
 01A4 2826              eor R2,R24
 01A6 22BA              out 0x12,R2
 01A8                   .dbline 242
 01A8           ;              break;
 01A8 04C0              xjmp L20
 01AA           L25:
 01AA                   .dbline 245
 01AA           ; 
 01AA           ;         case 4:
 01AA           ;              PORTD ^= 0x08;
 01AA 88E0              ldi R24,8
 01AC 22B2              in R2,0x12
 01AE 2826              eor R2,R24
 01B0 22BA              out 0x12,R2
 01B2                   .dbline 246
 01B2           ;              break;
 01B2           L19:
 01B2           L20:
 01B2                   .dbline 248
 01B2           ;     }
 01B2           ;     OS_EXIT_CRITICAL();
 01B2 042F              mov R16,R20
 01B4 0E940000          xcall _OS_CPU_SR_Restore
 01B8                   .dbline -2
 01B8           L18:
 01B8 0E940000          xcall pop_gset2
 01BC                   .dbline 0 ; func end
 01BC 0895              ret
 01BE                   .dbsym r cpu_sr 20 c
 01BE                   .dbsym r led 22 c
 01BE                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\MYDOCU~1\doc_ucosii_data_m128_iccavr_by_zhifeng\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
                        .area func_lit
 0000 9200      PL_AppTask2:    .word `_AppTask2
 0002 8400      PL_AppTask1:    .word `_AppTask1
 0004 3200      PL_AppTaskStart:        .word `_AppTaskStart

⌨️ 快捷键说明

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