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

📄 app.lst

📁 IARSOURCECODE是基于LPC2478嵌入式软件IAR EWARM V4.42的应用实例代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
    130              (void)p_arg;
    131          
    132              BSP_Init();                                                 /* Initialize BSP functions                                 */
   \   00000008   ........           _BLF     BSP_Init,??BSP_Init??rA
    133          
    134          #if OS_TASK_STAT_EN > 0
    135              OSStatInit();                                               /* Determine CPU capacity                                   */
   \   0000000C   ........           _BLF     OSStatInit,??OSStatInit??rA
    136          #endif
    137          
    138          #if OS_VIEW_MODULE > 0
    139              OSView_Init(115200);                                        /* OSView Init, baud rate = 115200                          */
   \   00000010   400BA0E3           MOV      R0,#+65536
   \   00000014   C20C80E3           ORR      R0,R0,#0xC200
   \   00000018   ........           _BLF     OSView_Init,??OSView_Init??rA
    140              OSView_TerminalRxSetCallback(AppTerminalRx);
   \   0000001C   C8019FE5           LDR      R0,??AppTaskStart_0  ;; AppTerminalRx
   \   00000020   ........           _BLF     OSView_TerminalRxSetCallback,??OSView_TerminalRxSetCallback??rA
    141              OSView_RxIntEn();                                           /* Enable Rx Interrupts                                     */
   \   00000024   ........           _BLF     OSView_RxIntEn,??OSView_RxIntEn??rA
    142          #endif
    143          
    144              LED_Off(0);                                                 /* Turn OFF all the LEDs                                    */
   \   00000028   0000A0E3           MOV      R0,#+0
   \   0000002C   ........           _BLF     LED_Off,??LED_Off??rA
    145          
    146          
    147              AppKbdQ         = OSQCreate(AppKbdQStorage, 16);            /* Create Q for communication between Kbd and Ser           */
   \   00000030   1010A0E3           MOV      R1,#+16
   \   00000034   B4019FE5           LDR      R0,??AppTaskStart_0+0x4  ;; AppKbdQStorage
   \   00000038   ........           _BLF     OSQCreate,??OSQCreate??rA
   \   0000003C   ........           LDR      R1,??DataTable5  ;; AppKbdQ
   \   00000040   000081E5           STR      R0,[R1, #+0]
    148              AppTaskCreate();                                            /* Create application tasks                                 */
   \   00000044   ........           BL       AppTaskCreate
    149          
    150          
    151              while (DEF_TRUE) {                                          /* Task body, always written as an infinite loop.           */
    152          
    153                  for (i = 1; i <= 4; i++) {                              /* Turn on each LED, one by one, delaying between           */
   \                     ??AppTaskStart_1:
   \   00000048   0150A0E3           MOV      R5,#+1
   \   0000004C   140000EA           B        ??AppTaskStart_2
    154                      LED_On(i);
   \                     ??AppTaskStart_3:
   \   00000050   0500B0E1           MOVS     R0,R5
   \   00000054   FF0010E2           ANDS     R0,R0,#0xFF      ;; Zero extend
   \   00000058   ........           _BLF     LED_On,??LED_On??rA
    155                      delay0  = ADC_GetStatus(0) + 32;
   \   0000005C   0000A0E3           MOV      R0,#+0
   \   00000060   ........           _BLF     ADC_GetStatus,??ADC_GetStatus??rA
   \   00000064   202090E2           ADDS     R2,R0,#+32
    156                      OSTimeDlyHMSM(0, 0, delay0 / 1000, delay0 % 1000);
   \   00000068   0200B0E1           MOVS     R0,R2
   \   0000006C   FA1FA0E3           MOV      R1,#+1000
   \   00000070   ........           _BLF     ??divu32_a,??rA??divu32_a
   \   00000074   0030B0E1           MOVS     R3,R0
   \   00000078   0338A0E1           MOV      R3,R3, LSL #+16
   \   0000007C   2338B0E1           MOVS     R3,R3, LSR #+16
   \   00000080   0200B0E1           MOVS     R0,R2
   \   00000084   FA1FA0E3           MOV      R1,#+1000
   \   00000088   ........           _BLF     ??divu32_a,??rA??divu32_a
   \   0000008C   0120B0E1           MOVS     R2,R1
   \   00000090   FF2012E2           ANDS     R2,R2,#0xFF      ;; Zero extend
   \   00000094   0010A0E3           MOV      R1,#+0
   \   00000098   0000A0E3           MOV      R0,#+0
   \   0000009C   ........           _BLF     OSTimeDlyHMSM,??OSTimeDlyHMSM??rA
    157                  }
   \   000000A0   015095E2           ADDS     R5,R5,#+1
   \                     ??AppTaskStart_2:
   \   000000A4   FF5015E2           ANDS     R5,R5,#0xFF      ;; Zero extend
   \   000000A8   050055E3           CMP      R5,#+5
   \   000000AC   E7FFFF3A           BCC      ??AppTaskStart_3
    158          
    159                  LED_Off(0);                                             /* Turn off all LEDs                                        */
   \   000000B0   0000A0E3           MOV      R0,#+0
   \   000000B4   ........           _BLF     LED_Off,??LED_Off??rA
    160                  delay0      = ADC_GetStatus(0) + 32;
   \   000000B8   0000A0E3           MOV      R0,#+0
   \   000000BC   ........           _BLF     ADC_GetStatus,??ADC_GetStatus??rA
   \   000000C0   202090E2           ADDS     R2,R0,#+32
    161                  OSTimeDlyHMSM(0, 0, delay0 / 1000, delay0 % 1000);      /* Delay                                                    */
   \   000000C4   0200B0E1           MOVS     R0,R2
   \   000000C8   FA1FA0E3           MOV      R1,#+1000
   \   000000CC   ........           _BLF     ??divu32_a,??rA??divu32_a
   \   000000D0   0030B0E1           MOVS     R3,R0
   \   000000D4   0338A0E1           MOV      R3,R3, LSL #+16
   \   000000D8   2338B0E1           MOVS     R3,R3, LSR #+16
   \   000000DC   0200B0E1           MOVS     R0,R2
   \   000000E0   FA1FA0E3           MOV      R1,#+1000
   \   000000E4   ........           _BLF     ??divu32_a,??rA??divu32_a
   \   000000E8   0120B0E1           MOVS     R2,R1
   \   000000EC   FF2012E2           ANDS     R2,R2,#0xFF      ;; Zero extend
   \   000000F0   0010A0E3           MOV      R1,#+0
   \   000000F4   0000A0E3           MOV      R0,#+0
   \   000000F8   ........           _BLF     OSTimeDlyHMSM,??OSTimeDlyHMSM??rA
    162          
    163                                                                          /* Determine what buttons have been pressed                 */
    164                  leds        = 0;
   \   000000FC   0040A0E3           MOV      R4,#+0
   \   00000100   010000EA           B        ??AppTaskStart_4
    165                  while (1) {
    166                      msg     = OSQAccept(AppKbdQ, &err);
    167          
    168                      if (err == OS_Q_EMPTY || msg == (void *)0) {
    169                          break;
    170                      }
    171          
    172                      led     = (CPU_INT32U)msg;
    173          
    174                      if (led > 4) {
    175                          break;
    176                      }
    177          
    178                      leds   |= (1 << led);
   \                     ??AppTaskStart_5:
   \   00000104   0110A0E3           MOV      R1,#+1
   \   00000108   114094E1           ORRS     R4,R4,R1, LSL R0
   \                     ??AppTaskStart_4:
   \   0000010C   0D10B0E1           MOVS     R1,SP
   \   00000110   ........           LDR      R0,??DataTable5  ;; AppKbdQ
   \   00000114   000090E5           LDR      R0,[R0, #+0]
   \   00000118   ........           _BLF     OSQAccept,??OSQAccept??rA
   \   0000011C   0010DDE5           LDRB     R1,[SP, #+0]
   \   00000120   1F0051E3           CMP      R1,#+31
   \   00000124   0400000A           BEQ      ??AppTaskStart_6
   \   00000128   000050E3           CMP      R0,#+0
   \   0000012C   0200000A           BEQ      ??AppTaskStart_6
   \   00000130   FF0010E2           ANDS     R0,R0,#0xFF      ;; Zero extend
   \   00000134   050050E3           CMP      R0,#+5
   \   00000138   F1FFFF3A           BCC      ??AppTaskStart_5
    179                  }
    180          
    181                                                                          /* If no buttons have been pressed, continue at beginning   */
    182                  if (leds == 0) {
   \                     ??AppTaskStart_6:
   \   0000013C   000054E3           CMP      R4,#+0
   \   00000140   C0FFFF0A           BEQ      ??AppTaskStart_1
    183                      continue;
    184                  }
    185          
    186                                                                          /* Otherwise, blink LEDs that were pressed 20 times         */
    187                  for (j = 0; j < 20; j++) {
   \   00000144   0060A0E3           MOV      R6,#+0
   \   00000148   220000EA           B        ??AppTaskStart_7
    188                      for (i = 1; i <= 4; i++) {
    189                          if ((leds & (1 << i)) == (1 << i)) {
   \                     ??AppTaskStart_8:
   \   0000014C   0100A0E3           MOV      R0,#+1
   \   00000150   100514E0           ANDS     R0,R4,R0, LSL R5
   \   00000154   0110A0E3           MOV      R1,#+1
   \   00000158   110550E1           CMP      R0,R1, LSL R5
   \   0000015C   0200001A           BNE      ??AppTaskStart_9
    190                              LED_Toggle(i);
   \   00000160   0500B0E1           MOVS     R0,R5
   \   00000164   FF0010E2           ANDS     R0,R0,#0xFF      ;; Zero extend
   \   00000168   ........           _BLF     LED_Toggle,??LED_Toggle??rA
    191                          }
    192                      }
   \                     ??AppTaskStart_9:
   \   0000016C   015095E2           ADDS     R5,R5,#+1
   \                     ??AppTaskStart_10:
   \   00000170   FF5015E2           ANDS     R5,R5,#0xFF      ;; Zero extend
   \   00000174   050055E3           CMP      R5,#+5
   \   00000178   F3FFFF3A           BCC      ??AppTaskStart_8
    193                      delay1  = (ADC_GetStatus(1) >> 2) + 32;
   \   0000017C   0100A0E3           MOV      R0,#+1
   \   00000180   ........           _BLF     ADC_GetStatus,??ADC_GetStatus??rA
   \   00000184   0008A0E1           MOV      R0,R0, LSL #+16
   \   00000188   2008B0E1           MOVS     R0,R0, LSR #+16
   \   0000018C   2001B0E1           LSRS     R0,R0,#+2
   \   00000190   0008A0E1           MOV      R0,R0, LSL #+16
   \   00000194   2008B0E1           MOVS     R0,R0, LSR #+16
   \   00000198   202090E2           ADDS     R2,R0,#+32
    194                      OSTimeDlyHMSM(0, 0, delay1 / 1000, delay1 % 1000);
   \   0000019C   0200B0E1           MOVS     R0,R2
   \   000001A0   FA1FA0E3           MOV      R1,#+1000
   \   000001A4   ........           _BLF     ??divu32_a,??rA??divu32_a
   \   000001A8   0030B0E1           MOVS     R3,R0
   \   000001AC   0338A0E1           MOV      R3,R3, LSL #+16
   \   000001B0   2338B0E1           MOVS     R3,R3, LSR #+16
   \   000001B4   0200B0E1           MOVS     R0,R2
   \   000001B8   FA1FA0E3           MOV      R1,#+1000
   \   000001BC   ........           _BLF     ??divu32_a,??rA??divu32_a
   \   000001C0   0120B0E1           MOVS     R2,R1
   \   000001C4   FF2012E2           ANDS     R2,R2,#0xFF      ;; Zero extend
   \   000001C8   0010A0E3           MOV      R1,#+0
   \   000001CC   0000A0E3           MOV      R0,#+0
   \   000001D0   ........           _BLF     OSTimeDlyHMSM,??OSTimeDlyHMSM??rA
   \   000001D4   016096E2           ADDS     R6,R6,#+1
   \                     ??AppTaskStart_7:
   \   000001D8   FF6016E2           ANDS     R6,R6,#0xFF      ;; Zero extend
   \   000001DC   140056E3           CMP      R6,#+20
   \   000001E0   98FFFF2A           BCS      ??AppTaskStart_1
   \   000001E4   0150A0E3           MOV      R5,#+1
   \   000001E8   E0FFFFEA           B        ??AppTaskStart_10
   \                     ??AppTaskStart_0:
   \   000001EC   ........           DC32     AppTerminalRx
   \   000001F0   ........           DC32     AppKbdQStorage
    195                  }
    196              }
    197          }
    198          
    199          /*
    200          *********************************************************************************************************
    201          *                                    KEYBOARD RESPONSE TASK
    202          *
    203          * Description : This task monitors the state of the push buttons and passes messages to AppTaskStart()
    204          *
    205          * Arguments   : p_arg   is the argument passed to 'AppStartKbd()' by 'OSTaskCreate()'.
    206          *
    207          * Returns     : none
    208          *********************************************************************************************************
    209          */
    210          

   \                                 In segment CODE, align 4, keep-with-next
    211          static  void  AppTaskKbd (void *p_arg)
    212          {
   \                     AppTaskKbd:
   \   00000000   F04F2DE9           PUSH     {R4-R11,LR}
    213              CPU_BOOLEAN  b1;                                            /* State of Push Button #1                                  */
    214              CPU_BOOLEAN  b1_prev;
    215              CPU_BOOLEAN  b2;                                            /* State of Push Button #2                                  */
    216              CPU_BOOLEAN  b2_prev;
    217              CPU_BOOLEAN  b3;                                            /* State of Push Button #3                                  */
    218              CPU_BOOLEAN  b3_prev;
    219              CPU_BOOLEAN  b4;                                            /* State of Push Button #4                                  */
    220              CPU_BOOLEAN  b4_prev;
    221          
    222          
    223              (void)p_arg;
    224          
    225              b1_prev     = DEF_FALSE;
   \   00000004   00B0A0E3           MOV      R11,#+0
    226              b2_prev     = DEF_FALSE;
   \   00000008   0040A0E3           MOV      R4,#+0
    227              b3_prev     = DEF_FALSE;
   \   0000000C   0050A0E3           MOV      R5,#+0
    228              b4_prev     = DEF_FALSE;
   \   00000010   0060A0E3           MOV      R6,#+0
    229          
    230              while (DEF_TRUE) {

⌨️ 快捷键说明

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