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

📄 bsp.lst

📁 针对STM32F103的UCOS移植
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   00000002   0121               MOVS     R1,#+1
   \   00000004   6020               MOVS     R0,#+96
   \   00000006   ........           _BLF     RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
    315          
    316                                                                          /* Configure JOY_UP, JOY_SEL, JOY_DOWN                      */
    317              gpio_init.GPIO_Pin  = GPIOD_JOY_UP | GPIOD_JOY_SEL | GPIOD_JOY_DOWN;
   \   0000000A   5FF4A240           MOVS     R0,#+20736
   \   0000000E   ADF80000           STRH     R0,[SP, #+0]
    318              gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
   \   00000012   0424               MOVS     R4,#+4
   \   00000014   8DF80340           STRB     R4,[SP, #+3]
    319              GPIO_Init(GPIOD, &gpio_init);
   \   00000018   6946               MOV      R1,SP
   \   0000001A   ....               LDR.N    R0,??DataTable5  ;; 0x40011400
   \   0000001C   ........           _BLF     GPIO_Init,??GPIO_Init??rT
    320          
    321                                                                          /* Configure JOY_LEFT & JOY_RIGHT                           */
    322              gpio_init.GPIO_Pin  = GPIOE_JOY_LEFT | GPIOE_JOY_RIGHT;
   \   00000020   0320               MOVS     R0,#+3
   \   00000022   ADF80000           STRH     R0,[SP, #+0]
    323              gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
   \   00000026   8DF80340           STRB     R4,[SP, #+3]
    324              GPIO_Init(GPIOE, &gpio_init);
   \   0000002A   6946               MOV      R1,SP
   \   0000002C   ....               LDR.N    R0,??DataTable4  ;; 0x40011800
   \   0000002E   ........           _BLF     GPIO_Init,??GPIO_Init??rT
    325          }
   \   00000032   11BD               POP      {R0,R4,PC}       ;; return
    326          
    327          /*
    328          *********************************************************************************************************
    329          *                                         GET JOYSTICK STATUS
    330          *
    331          * Description : This function is used to get the status of the joystick on the board.
    332          *
    333          * Arguments   : none
    334          *
    335          * Returns     : JOYSTICK_CENTER     if the joystick is being pressed.
    336          *               JOYSTICK_LEFT       if the joystick is toggled left.
    337          *               JOYSTICK_RIGHT      if the joystick is toggled right.
    338          *               JOYSTICK_UP         if the joystick is toggled up.
    339          *               JOYSTICK_DOWN       if the joystick is toggled down.
    340          *
    341          *********************************************************************************************************
    342          */
    343          

   \                                 In segment CODE, align 4, keep-with-next
    344          CPU_INT32U  Joystick_GetStatus (void)
    345          {
   \                     Joystick_GetStatus:
   \   00000000   30B5               PUSH     {R4,R5,LR}
    346              CPU_BOOLEAN  pin;
    347              CPU_BOOLEAN  status;
    348          
    349              status = 0;
   \   00000002   0024               MOVS     R4,#+0
    350          
    351              pin    = GPIO_ReadInputDataBit(GPIOE, GPIOE_JOY_RIGHT);
   \   00000004   ....               LDR.N    R5,??DataTable4  ;; 0x40011800
   \   00000006   0221               MOVS     R1,#+2
   \   00000008   2800               MOVS     R0,R5
   \   0000000A   ........           _BLF     GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
    352              if (pin == 0) {
   \   0000000E   0028               CMP      R0,#+0
   \   00000010   00D1               BNE.N    ??Joystick_GetStatus_0
    353                  status |=  JOYSTICK_LEFT;
   \   00000012   0424               MOVS     R4,#+4
    354              }
    355          
    356              pin    = GPIO_ReadInputDataBit(GPIOE, GPIOE_JOY_LEFT);
   \                     ??Joystick_GetStatus_0:
   \   00000014   0121               MOVS     R1,#+1
   \   00000016   2800               MOVS     R0,R5
   \   00000018   ........           _BLF     GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
    357              if (pin == 0) {
   \   0000001C   0028               CMP      R0,#+0
   \   0000001E   01D1               BNE.N    ??Joystick_GetStatus_1
    358                  status |=  JOYSTICK_RIGHT;
   \   00000020   54F00804           ORRS     R4,R4,#0x8
    359              }
    360          
    361              pin    = GPIO_ReadInputDataBit(GPIOD, GPIOD_JOY_UP);
   \                     ??Joystick_GetStatus_1:
   \   00000024   ....               LDR.N    R5,??DataTable5  ;; 0x40011400
   \   00000026   A90D               LSRS     R1,R5,#+22
   \   00000028   2800               MOVS     R0,R5
   \   0000002A   ........           _BLF     GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
    362              if (pin == 0) {
   \   0000002E   0028               CMP      R0,#+0
   \   00000030   02D1               BNE.N    ??Joystick_GetStatus_2
    363                  status |=  JOYSTICK_UP;
   \   00000032   54F00104           ORRS     R4,R4,#0x1
   \   00000036   E4B2               UXTB     R4,R4
    364              }
    365          
    366              pin    = GPIO_ReadInputDataBit(GPIOD, GPIOD_JOY_DOWN);
   \                     ??Joystick_GetStatus_2:
   \   00000038   5FF48041           MOVS     R1,#+16384
   \   0000003C   2800               MOVS     R0,R5
   \   0000003E   ........           _BLF     GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
    367              if (pin == 0) {
   \   00000042   0028               CMP      R0,#+0
   \   00000044   02D1               BNE.N    ??Joystick_GetStatus_3
    368                  status |=  JOYSTICK_DOWN;
   \   00000046   54F00204           ORRS     R4,R4,#0x2
   \   0000004A   E4B2               UXTB     R4,R4
    369              }
    370          
    371              pin    = GPIO_ReadInputDataBit(GPIOD, GPIOD_JOY_SEL);
   \                     ??Joystick_GetStatus_3:
   \   0000004C   A90C               LSRS     R1,R5,#+18
   \   0000004E   2800               MOVS     R0,R5
   \   00000050   ........           _BLF     GPIO_ReadInputDataBit,??GPIO_ReadInputDataBit??rT
    372              if (pin == 0) {
   \   00000054   0028               CMP      R0,#+0
   \   00000056   02D1               BNE.N    ??Joystick_GetStatus_4
    373                  status |=  JOYSTICK_CENTER;
   \   00000058   54F01004           ORRS     R4,R4,#0x10
   \   0000005C   E4B2               UXTB     R4,R4
    374              }
    375          
    376              return (status);
   \                     ??Joystick_GetStatus_4:
   \   0000005E   2000               MOVS     R0,R4
   \   00000060   30BD               POP      {R4,R5,PC}       ;; return
    377          }
    378          
    379          /*
    380          *********************************************************************************************************
    381          *                                         LED INITIALIZATION
    382          *
    383          * Description : This function initializes the board's LEDs
    384          *
    385          * Arguments   : none
    386          *
    387          * Returns     : none
    388          *********************************************************************************************************
    389          */
    390          

   \                                 In segment CODE, align 4, keep-with-next
    391          static  void  LED_Init (void)
    392          {
   \                     LED_Init:
   \   00000000   01B5               PUSH     {R0,LR}
    393              GPIO_InitTypeDef  gpio_init;
    394          
    395          
    396              RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
   \   00000002   0121               MOVS     R1,#+1
   \   00000004   1020               MOVS     R0,#+16
   \   00000006   ........           _BLF     RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
    397          
    398              gpio_init.GPIO_Pin   = GPIOC_LED1 | GPIOC_LED2 | GPIOC_LED3 | GPIOC_LED4;
   \   0000000A   5FF47070           MOVS     R0,#+960
   \   0000000E   ADF80000           STRH     R0,[SP, #+0]
    399              gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
   \   00000012   0320               MOVS     R0,#+3
   \   00000014   8DF80200           STRB     R0,[SP, #+2]
    400              gpio_init.GPIO_Mode  = GPIO_Mode_Out_PP;
   \   00000018   1020               MOVS     R0,#+16
   \   0000001A   8DF80300           STRB     R0,[SP, #+3]
    401              GPIO_Init(GPIOC, &gpio_init);
   \   0000001E   6946               MOV      R1,SP
   \   00000020   ....               LDR.N    R0,??DataTable9  ;; 0x40011000
   \   00000022   ........           _BLF     GPIO_Init,??GPIO_Init??rT
    402          }
   \   00000026   01BD               POP      {R0,PC}          ;; return
    403          
    404          
    405          /*
    406          *********************************************************************************************************
    407          *                                             LED ON
    408          *
    409          * Description : This function is used to control any or all the LEDs on the board.
    410          *
    411          * Arguments   : led    is the number of the LED to control
    412          *                      0    indicates that you want ALL the LEDs to be ON
    413          *                      1    turns ON user LED on the board
    414          *
    415          * Returns     : none
    416          *********************************************************************************************************
    417          */
    418          

   \                                 In segment CODE, align 4, keep-with-next
    419          void  LED_On (CPU_INT08U led)
    420          {
   \                     LED_On:
   \   00000000   00B5               PUSH     {LR}
   \   00000002   0100               MOVS     R1,R0
    421              switch (led) {
   \   00000004   ....               LDR.N    R0,??DataTable9  ;; 0x40011000
   \   00000006   0429               CMP      R1,#+4
   \   00000008   18D8               BHI.N    ??LED_On_1
   \   0000000A   DFE801F0           TBB      [PC, R1]
   \                     ??LED_On_0:
   \   0000000E   03080C10           DC8      +3,+8,+12,+16
   \   00000012   1400               DC8      +20,+0
    422                  case 0:
    423                       GPIO_SetBits(GPIOC, GPIOC_LED1 | GPIOC_LED2 | GPIOC_LED3 | GPIOC_LED4);
   \                     ??LED_On_2:
   \   00000014   5FF47071           MOVS     R1,#+960
   \   00000018   ........           _BLF     GPIO_SetBits,??GPIO_SetBits??rT
   \   0000001C   00BD               POP      {PC}
    424                       break;
    425          
    426                  case 1:
    427                       GPIO_SetBits(GPIOC, GPIOC_LED1);
   \                     ??LED_On_3:
   \   0000001E   4021               MOVS     R1,#+64
   \   00000020   ........           _BLF     GPIO_SetBits,??GPIO_SetBits??rT
   \   00000024   00BD               POP      {PC}
    428                       break;
    429          
    430                  case 2:
    431                       GPIO_SetBits(GPIOC, GPIOC_LED2);
   \                     ??LED_On_4:
   \   00000026   8021               MOVS     R1,#+128
   \   00000028   ........           _BLF     GPIO_SetBits,??GPIO_SetBits??rT
   \   0000002C   00BD               POP      {PC}
    432                       break;
    433          
    434                  case 3:
    435                       GPIO_SetBits(GPIOC, GPIOC_LED3);
   \                     ??LED_On_5:
   \   0000002E   810D               LSRS     R1,R0,#+22
   \   00000030   ........           _BLF     GPIO_SetBits,??GPIO_SetBits??rT
   \   00000034   00BD               POP      {PC}
    436                       break;
    437          
    438                  case 4:
    439                       GPIO_SetBits(GPIOC, GPIOC_LED4);
   \                     ??LED_On_6:
   \   00000036   410D               LSRS     R1,R0,#+21

⌨️ 快捷键说明

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