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

📄 app.lst

📁 针对STM32F103的UCOS移植
💻 LST
📖 第 1 页 / 共 5 页
字号:
    376              pstate = 1;
   \   00000014   2C00               MOVS     R4,R5
   \   00000016   01E0               B.N      ??AppTaskUserIF_0
    377          
    378          
    379              while (DEF_TRUE) {
    380                  msg = (CPU_INT08U *)(OSMboxPend(AppUserIFMbox, OS_TICKS_PER_SEC / 10, &err));
    381                  if (err == OS_NO_ERR) {
    382                      nstate = (CPU_INT32U)msg;
    383                  }
    384          
    385                  if (nstate != pstate) {
    386                      LCD_Clear();
    387                      pstate  = nstate;
    388                  }
    389          
    390                  switch (nstate) {
    391                      case 2:
    392                          AppDispScr_TaskNames();
   \                     ??AppTaskUserIF_1:
   \   00000018   ........           BL       AppDispScr_TaskNames
   \                     ??AppTaskUserIF_0:
   \   0000001C   6A46               MOV      R2,SP
   \   0000001E   0A21               MOVS     R1,#+10
   \   00000020   ....               LDR.N    R0,??DataTable1  ;; Probe_B1 + 8
   \   00000022   0068               LDR      R0,[R0, #+0]
   \   00000024   ........           _BLF     OSMboxPend,??OSMboxPend??rT
   \   00000028   9DF80010           LDRB     R1,[SP, #+0]
   \   0000002C   0029               CMP      R1,#+0
   \   0000002E   00D1               BNE.N    ??AppTaskUserIF_2
   \   00000030   0500               MOVS     R5,R0
   \                     ??AppTaskUserIF_2:
   \   00000032   A542               CMP      R5,R4
   \   00000034   02D0               BEQ.N    ??AppTaskUserIF_3
   \   00000036   ........           _BLF     LCD_Clear,??LCD_Clear??rT
   \   0000003A   2C00               MOVS     R4,R5
   \                     ??AppTaskUserIF_3:
   \   0000003C   2800               MOVS     R0,R5
   \   0000003E   0228               CMP      R0,#+2
   \   00000040   EAD0               BEQ.N    ??AppTaskUserIF_1
    393                          break;
    394          
    395                      case 1:
    396                      default:
    397                          AppDispScr_SignOn();
   \   00000042   ........           BL       AppDispScr_SignOn
   \   00000046   E9E7               B.N      ??AppTaskUserIF_0
    398                          break;
    399                  }
    400              }
    401          }
    402          
    403          
    404          /*
    405          *********************************************************************************************************
    406          *                                    KEYBOARD RESPONSE TASK
    407          *
    408          * Description : This task monitors the state of the push buttons and passes messages to AppTaskUserIF()
    409          *
    410          * Arguments   : p_arg   is the argument passed to 'AppStartKbd()' by 'OSTaskCreate()'.
    411          *
    412          * Returns     : none
    413          *********************************************************************************************************
    414          */
    415          

   \                                 In segment CODE, align 4, keep-with-next
    416          static  void  AppTaskKbd (void *p_arg)
    417          {
   \                     AppTaskKbd:
   \   00000000   F0B5               PUSH     {R4-R7,LR}
    418              CPU_BOOLEAN  b1_prev;
    419              CPU_BOOLEAN  b1;
    420              CPU_INT08U   key;
    421          
    422          
    423              (void)p_arg;
    424          
    425              b1_prev = DEF_FALSE;
   \   00000002   0027               MOVS     R7,#+0
    426              key     = 1;
   \   00000004   0124               MOVS     R4,#+1
   \   00000006   2600               MOVS     R6,R4
   \   00000008   0DE0               B.N      ??AppTaskKbd_0
    427          
    428              while (DEF_TRUE) {
    429                  b1 = PB_GetStatus(1);
    430          
    431                  if (b1 == DEF_TRUE && b1_prev == DEF_FALSE) {
    432                      if (key == 2) {
    433                          key = 1;
    434                      } else {
    435                          key++;
   \                     ??AppTaskKbd_1:
   \   0000000A   761C               ADDS     R6,R6,#+1
   \   0000000C   F6B2               UXTB     R6,R6
    436                      }
    437          
    438                      OSMboxPost(AppUserIFMbox, (void *)key);
   \                     ??AppTaskKbd_2:
   \   0000000E   3100               MOVS     R1,R6
   \   00000010   ....               LDR.N    R0,??DataTable1  ;; Probe_B1 + 8
   \   00000012   0068               LDR      R0,[R0, #+0]
   \   00000014   ........           _BLF     OSMboxPost,??OSMboxPost??rT
    439                  }
    440          
    441                  b1_prev = b1;
   \                     ??AppTaskKbd_3:
   \   00000018   2F00               MOVS     R7,R5
    442          
    443                  OSTimeDlyHMSM(0, 0, 0, 20);
   \   0000001A   1423               MOVS     R3,#+20
   \   0000001C   0022               MOVS     R2,#+0
   \   0000001E   1146               MOV      R1,R2
   \   00000020   0846               MOV      R0,R1
   \   00000022   ........           _BLF     OSTimeDlyHMSM,??OSTimeDlyHMSM??rT
   \                     ??AppTaskKbd_0:
   \   00000026   2046               MOV      R0,R4
   \   00000028   ........           _BLF     PB_GetStatus,??PB_GetStatus??rT
   \   0000002C   0500               MOVS     R5,R0
   \   0000002E   0128               CMP      R0,#+1
   \   00000030   F2D1               BNE.N    ??AppTaskKbd_3
   \   00000032   002F               CMP      R7,#+0
   \   00000034   F0D1               BNE.N    ??AppTaskKbd_3
   \   00000036   3000               MOVS     R0,R6
   \   00000038   0228               CMP      R0,#+2
   \   0000003A   E6D1               BNE.N    ??AppTaskKbd_1
   \   0000003C   2600               MOVS     R6,R4
   \   0000003E   E6E7               B.N      ??AppTaskKbd_2
    444              }
    445          }
    446          
    447          
    448          /*
    449          *********************************************************************************************************
    450          *                                    PRINT SYSTEM INFORMATION ON LCD
    451          *
    452          * Description: This function displays uC/OS-II system information on the LCD.
    453          *
    454          * Argument(s): None
    455          *
    456          * Returns    : None
    457          *********************************************************************************************************
    458          */
    459          

   \                                 In segment CODE, align 4, keep-with-next
    460          static  void  AppDispScr_SignOn (void)
    461          {
   \                     AppDispScr_SignOn:
   \   00000000   2DE9F043           PUSH     {R4-R9,LR}
    462              CPU_INT32U  value;
    463          
    464          
    465              Str_Copy(AppLCDLine0, "  Micrium uC/OS-II  ");
   \   00000004   ....               LDR.N    R4,??DataTable7  ;; AppLCDLine3
   \   00000006   ....               LDR.N    R5,??DataTable8  ;; `?<Constant "  CPU Usage:xx %    ">`
   \   00000008   2900               MOVS     R1,R5
   \   0000000A   1831               ADDS     R1,R1,#+24
   \   0000000C   2000               MOVS     R0,R4
   \   0000000E   1830               ADDS     R0,R0,#+24
   \   00000010   ........           _BLF     Str_Copy,??Str_Copy??rT
    466              Str_Copy(AppLCDLine1, "ST STM32 (Cortex-M3)");
   \   00000014   2900               MOVS     R1,R5
   \   00000016   D831               ADDS     R1,R1,#+216
   \   00000018   2000               MOVS     R0,R4
   \   0000001A   3030               ADDS     R0,R0,#+48
   \   0000001C   ........           _BLF     Str_Copy,??Str_Copy??rT
    467          
    468              Str_Copy(AppLCDLine2, "                    ");
   \   00000020   05F2C008           ADDW     R8,R5,#+192
   \   00000024   4146               MOV      R1,R8
   \   00000026   2000               MOVS     R0,R4
   \   00000028   4830               ADDS     R0,R0,#+72
   \   0000002A   ........           _BLF     Str_Copy,??Str_Copy??rT
    469          
    470              Str_Copy(AppLCDLine3, "  uC/OS-II:  Vx.yy  ");
   \   0000002E   2900               MOVS     R1,R5
   \   00000030   A831               ADDS     R1,R1,#+168
   \   00000032   2000               MOVS     R0,R4
   \   00000034   ........           _BLF     Str_Copy,??Str_Copy??rT
    471              value           = (CPU_INT32U)OSVersion();
   \   00000038   ........           _BLF     OSVersion,??OSVersion??rT
   \   0000003C   0200               MOVS     R2,R0
    472              AppLCDLine3[14] = value / 100 + '0';
   \   0000003E   6420               MOVS     R0,#+100
   \   00000040   B2FBF0F0           UDIV     R0,R2,R0
   \   00000044   3030               ADDS     R0,R0,#+48
   \   00000046   A073               STRB     R0,[R4, #+14]
    473              AppLCDLine3[16] = (value % 100) / 10 + '0';
   \   00000048   1000               MOVS     R0,R2
   \   0000004A   6421               MOVS     R1,#+100
   \   0000004C   ........           _BLF     ??divu32_t,??rT??divu32_t
   \   00000050   0A21               MOVS     R1,#+10
   \   00000052   B0FBF1F0           UDIV     R0,R0,R1
   \   00000056   3030               ADDS     R0,R0,#+48
   \   00000058   2074               STRB     R0,[R4, #+16]
    474              AppLCDLine3[17] = (value %  10) + '0';
   \   0000005A   1000               MOVS     R0,R2
   \   0000005C   ........           _BLF     ??divu32_t,??rT??divu32_t
   \   00000060   3030               ADDS     R0,R0,#+48
   \   00000062   6074               STRB     R0,[R4, #+17]
    475          
    476              Str_Copy(AppLCDLine4, "  TickRate:   xxxx  ");
   \   00000064   2900               MOVS     R1,R5
   \   00000066   9031               ADDS     R1,R1,#+144
   \   00000068   2000               MOVS     R0,R4
   \   0000006A   6030               ADDS     R0,R0,#+96
   \   0000006C   ........           _BLF     Str_Copy,??Str_Copy??rT
    477              value = (CPU_INT32U)OS_TICKS_PER_SEC;
    478              AppFormatDec(&AppLCDLine4[14], value, 4);
   \   00000070   0422               MOVS     R2,#+4
   \   00000072   6421               MOVS     R1,#+100
   \   00000074   2000               MOVS     R0,R4
   \   00000076   6E30               ADDS     R0,R0,#+110
   \   00000078   ........           BL       AppFormatDec
    479          
    480              Str_Copy(AppLCDLine5, "  CPU Usage:xx %    ");
   \   0000007C   ....               LDR.N    R6,??DataTable11  ;; AppLCDLine5
   \   0000007E   2900               MOVS     R1,R5
   \   00000080   3000               MOVS     R0,R6
   \   00000082   ........           _BLF     Str_Copy,??Str_Copy??rT
    481              value           = (CPU_INT32U)OSCPUUsage;
   \   00000086   3948               LDR.N    R0,??AppDispScr_SignOn_0  ;; OSCPUUsage
   \   00000088   90F90000           LDRSB    R0,[R0, #+0]
    482              AppLCDLine5[12] = (value / 10) + '0';
   \   0000008C   0A21               MOVS     R1,#+10
   \   0000008E   B0FBF1F1           UDIV     R1,R0,R1
   \   00000092   3031               ADDS     R1,R1,#+48
   \   00000094   3173               STRB     R1,[R6, #+12]
    483              AppLCDLine5[13] = (value % 10) + '0';
   \   00000096   0A21               MOVS     R1,#+10
   \   00000098   ........           _BLF     ??divu32_t,??rT??divu32_t
   \   0000009C   3030               ADDS     R0,R0,#+48
   \   0000009E   7073               STRB     R0,[R6, #+13]
    484          
    485              Str_Copy(AppLCDLine6, "  CPU Speed:xx MHz  ");
   \   000000A0   ....               LDR.N    R7,??DataTable9  ;; AppLCDLine6
   \   000000A2   2900               MOVS     R1,R5

⌨️ 快捷键说明

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