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

📄 bsp_ser.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   0000006A   2520               MOVS     R0,#+37
   \   0000006C   ........           BL       BSP_PeriphEn
    167              BSP_PeriphEn(BSP_PERIPH_ID_AFIO);
   \   00000070   2020               MOVS     R0,#+32
   \   00000072   ........           BL       BSP_PeriphEn
    168              GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
   \   00000076   0121               MOVS     R1,#+1
   \   00000078   0820               MOVS     R0,#+8
   \   0000007A   ........           BL       GPIO_PinRemapConfig
    169                                                                          /* ----------------- SETUP USART2 GPIO ---------------- */
    170                                                                          /* Configure GPIOD.5 as push-pull.                      */
    171              gpio_init.GPIO_Pin   = GPIO_Pin_5;
   \   0000007E   2020               MOVS     R0,#+32
   \   00000080   ADF80000           STRH     R0,[SP, #+0]
    172              gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
   \   00000084   0320               MOVS     R0,#+3
   \   00000086   8DF80200           STRB     R0,[SP, #+2]
    173              gpio_init.GPIO_Mode  = GPIO_Mode_AF_PP;
   \   0000008A   1820               MOVS     R0,#+24
   \   0000008C   8DF80300           STRB     R0,[SP, #+3]
    174              GPIO_Init(GPIOD, &gpio_init);
   \   00000090   00A9               ADD      R1,SP,#+0
   \   00000092   ....               LDR.N    R0,??DataTable10_3  ;; 0x40011400
   \   00000094   ........           BL       GPIO_Init
    175          
    176                                                                          /* Configure GPIOD.6 as input floating.                 */
    177              gpio_init.GPIO_Pin   = GPIO_Pin_6;
   \   00000098   4020               MOVS     R0,#+64
   \   0000009A   ADF80000           STRH     R0,[SP, #+0]
    178              gpio_init.GPIO_Mode  = GPIO_Mode_IN_FLOATING;
   \   0000009E   0420               MOVS     R0,#+4
   \   000000A0   8DF80300           STRB     R0,[SP, #+3]
    179              GPIO_Init(GPIOD, &gpio_init);
   \   000000A4   00A9               ADD      R1,SP,#+0
   \   000000A6   ....               LDR.N    R0,??DataTable10_3  ;; 0x40011400
   \   000000A8   ........           BL       GPIO_Init
    180          
    181                                                                          /* ------------------ SETUP USART2 -------------------- */
    182              USART_Init(USART2, &usart_init);
   \   000000AC   03A9               ADD      R1,SP,#+12
   \   000000AE   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   000000B0   ........           BL       USART_Init
    183              USART_ClockInit(USART2, &usart_clk_init);
   \   000000B4   01A9               ADD      R1,SP,#+4
   \   000000B6   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   000000B8   ........           BL       USART_ClockInit
    184              USART_Cmd(USART2, ENABLE);
   \   000000BC   0121               MOVS     R1,#+1
   \   000000BE   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   000000C0   ........           BL       USART_Cmd
    185              
    186              USART_ITConfig(USART2, USART_IT_TC, DISABLE);
   \   000000C4   0022               MOVS     R2,#+0
   \   000000C6   40F22661           MOVW     R1,#+1574
   \   000000CA   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   000000CC   ........           BL       USART_ITConfig
    187              USART_ITConfig(USART2, USART_IT_TXE, DISABLE);
   \   000000D0   0022               MOVS     R2,#+0
   \   000000D2   40F22771           MOVW     R1,#+1831
   \   000000D6   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   000000D8   ........           BL       USART_ITConfig
    188              tc_status  = USART_GetFlagStatus(USART2, USART_FLAG_TC);
   \   000000DC   4021               MOVS     R1,#+64
   \   000000DE   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   000000E0   ........           BL       USART_GetFlagStatus
   \   000000E4   0500               MOVS     R5,R0
    189              
    190              while (tc_status == SET) {
   \                     ??BSP_Ser_Init_0:
   \   000000E6   EDB2               UXTB     R5,R5            ;; ZeroExt  R5,R5,#+24,#+24
   \   000000E8   012D               CMP      R5,#+1
   \   000000EA   12D1               BNE.N    ??BSP_Ser_Init_1
    191                  USART_ClearITPendingBit(USART2, USART_IT_TC);
   \   000000EC   40F22661           MOVW     R1,#+1574
   \   000000F0   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   000000F2   ........           BL       USART_ClearITPendingBit
    192                  USART_ClearFlag(USART2, USART_IT_TC);
   \   000000F6   40F22661           MOVW     R1,#+1574
   \   000000FA   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   000000FC   ........           BL       USART_ClearFlag
    193                  BSP_OS_TimeDlyMs(10);
   \   00000100   0A20               MOVS     R0,#+10
   \   00000102   ........           BL       BSP_OS_TimeDlyMs
    194                  tc_status = USART_GetFlagStatus(USART2, USART_FLAG_TC);        
   \   00000106   4021               MOVS     R1,#+64
   \   00000108   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   0000010A   ........           BL       USART_GetFlagStatus
   \   0000010E   0500               MOVS     R5,R0
   \   00000110   E9E7               B.N      ??BSP_Ser_Init_0
    195              }
    196                     
    197              BSP_IntVectSet(BSP_INT_ID_USART2, BSP_Ser_ISR_Handler);
   \                     ??BSP_Ser_Init_1:
   \   00000112   ....               LDR.N    R1,??DataTable10_5
   \   00000114   2620               MOVS     R0,#+38
   \   00000116   ........           BL       BSP_IntVectSet
    198              BSP_IntEn(BSP_INT_ID_USART2);
   \   0000011A   2620               MOVS     R0,#+38
   \   0000011C   ........           BL       BSP_IntEn
    199          }
   \   00000120   07B0               ADD      SP,SP,#+28
   \   00000122   30BD               POP      {R4,R5,PC}       ;; return
    200          
    201          
    202          /*
    203          *********************************************************************************************************
    204          *                                         BSP_Ser_ISR_Handler()
    205          *
    206          * Description : Serial ISR.
    207          *
    208          * Argument(s) : none.
    209          *
    210          * Return(s)   : none.
    211          *
    212          * Caller(s)   : This is an ISR.
    213          *
    214          * Note(s)     : none.
    215          *********************************************************************************************************
    216          */
    217          

   \                                 In section .text, align 2, keep-with-next
    218          void  BSP_Ser_ISR_Handler (void)
    219          {
   \                     BSP_Ser_ISR_Handler:
   \   00000000   38B5               PUSH     {R3-R5,LR}
    220              FlagStatus tc_status;
    221              FlagStatus rxne_status;
    222          
    223          
    224              rxne_status = USART_GetFlagStatus(USART2, USART_FLAG_RXNE);
   \   00000002   2021               MOVS     R1,#+32
   \   00000004   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   00000006   ........           BL       USART_GetFlagStatus
   \   0000000A   0500               MOVS     R5,R0
    225              if (rxne_status == SET) {
   \   0000000C   EDB2               UXTB     R5,R5            ;; ZeroExt  R5,R5,#+24,#+24
   \   0000000E   012D               CMP      R5,#+1
   \   00000010   0CD1               BNE.N    ??BSP_Ser_ISR_Handler_0
    226                  BSP_SerRxData = USART_ReceiveData(USART2) & 0xFF;       /* Read one byte from the receive data register.      */
   \   00000012   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   00000014   ........           BL       USART_ReceiveData
   \   00000018   ....               LDR.N    R1,??DataTable10_6
   \   0000001A   0870               STRB     R0,[R1, #+0]
    227                  USART_ClearITPendingBit(USART2, USART_IT_RXNE);         /* Clear the USART2 receive interrupt.                */
   \   0000001C   40F22551           MOVW     R1,#+1317
   \   00000020   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   00000022   ........           BL       USART_ClearITPendingBit
    228                  BSP_OS_SemPost(&BSP_SerRxWait);                         /* Post to the sempahore                              */
   \   00000026   ....               LDR.N    R0,??DataTable10_1
   \   00000028   ........           BL       BSP_OS_SemPost
    229              }
    230          
    231              tc_status = USART_GetFlagStatus(USART2, USART_FLAG_TC);
   \                     ??BSP_Ser_ISR_Handler_0:
   \   0000002C   4021               MOVS     R1,#+64
   \   0000002E   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   00000030   ........           BL       USART_GetFlagStatus
   \   00000034   0400               MOVS     R4,R0
    232              if (tc_status == SET) {
   \   00000036   E4B2               UXTB     R4,R4            ;; ZeroExt  R4,R4,#+24,#+24
   \   00000038   012C               CMP      R4,#+1
   \   0000003A   0DD1               BNE.N    ??BSP_Ser_ISR_Handler_1
    233                  USART_ITConfig(USART2, USART_IT_TC, DISABLE);
   \   0000003C   0022               MOVS     R2,#+0
   \   0000003E   40F22661           MOVW     R1,#+1574
   \   00000042   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   00000044   ........           BL       USART_ITConfig
    234                  USART_ClearITPendingBit(USART2, USART_IT_TC);           /* Clear the USART2 receive interrupt.                */
   \   00000048   40F22661           MOVW     R1,#+1574
   \   0000004C   ....               LDR.N    R0,??DataTable10_4  ;; 0x40004400
   \   0000004E   ........           BL       USART_ClearITPendingBit
    235                  BSP_OS_SemPost(&BSP_SerTxWait);                         /* Post to the semaphore                              */
   \   00000052   ....               LDR.N    R0,??DataTable10
   \   00000054   ........           BL       BSP_OS_SemPost
    236              }
    237          }
   \                     ??BSP_Ser_ISR_Handler_1:
   \   00000058   31BD               POP      {R0,R4,R5,PC}    ;; return
    238          
    239          
    240          /*
    241          *********************************************************************************************************
    242          *                                           BSP_Ser_Printf()
    243          *
    244          * Description : Print formatted data to the output serial port.
    245          *
    246          * Argument(s) : format      String that contains the text to be written.
    247          *
    248          * Return(s)   : none.
    249          *
    250          * Caller(s)   : Application.
    251          *
    252          * Note(s)     : (1) This function output a maximum of BSP_SER_PRINTF_STR_BUF_SIZE number of bytes to the
    253          *                   serial port.  The calling function hence has to make sure the formatted string will
    254          *                   be able fit into this string buffer or hence the output string will be truncated.
    255          *********************************************************************************************************
    256          */
    257          

   \                                 In section .text, align 2, keep-with-next
    258          void  BSP_Ser_Printf (CPU_CHAR  *format, ...)
    259          {
   \                     BSP_Ser_Printf:
   \   00000000   0EB4               PUSH     {R1-R3}
   \   00000002   70B5               PUSH     {R4-R6,LR}
   \   00000004   95B0               SUB      SP,SP,#+84
   \   00000006   0400               MOVS     R4,R0
    260              CPU_CHAR  buf_str[BSP_SER_PRINTF_STR_BUF_SIZE + 1u];
    261              va_list   v_args;
    262          
    263          
    264              va_start(v_args, format);
   \   00000008   19A8               ADD      R0,SP,#+100
   \   0000000A   0500               MOVS     R5,R0
    265             (void)vsnprintf((char       *)&buf_str[0],
    266                             (size_t      ) sizeof(buf_str),
    267                             (char const *) format,
    268                                            v_args);
   \   0000000C   2B00               MOVS     R3,R5
   \   0000000E   2200               MOVS     R2,R4
   \   00000010   5121               MOVS     R1,#+81
   \   00000012   00A8               ADD      R0,SP,#+0
   \   00000014   ........           BL       vsnprintf
   \   00000018   0600               MOVS     R6,R0
    269              va_end(v_args);
    270          
    271              BSP_Ser_WrStr(buf_str);
   \   0000001A   00A8               ADD      R0,SP,#+0
   \   0000001C   ........           BL       BSP_Ser_WrStr
    272          }
   \   00000020   15B0               ADD      SP,SP,#+84
   \   00000022   70BC               POP      {R4-R6}
   \   00000024   5DF810FB           LDR      PC,[SP], #+16    ;; return
    273          
    274          
    275          /*
    276          *********************************************************************************************************
    277          *                                                BSP_Ser_RdByte()
    278          *
    279          * Description : Receive a single byte.
    280          *
    281          * Argument(s) : none.
    282          *
    283          * Return(s)   : The received byte.
    284          *
    285          * Caller(s)   : Application.
    286          *
    287          * Note(s)     : (1) This functions blocks until a data is received.
    288          *
    289          *               (2) It can not be called from an ISR.
    290          *********************************************************************************************************
    291          */
    292          

   \                                 In section .text, align 2, keep-with-next
    293          CPU_INT08U  BSP_Ser_RdByte (void)
    294          {
   \                     BSP_Ser_RdByte:
   \   00000000   10B5               PUSH     {R4,LR}
    295              CPU_INT08U  rx_byte;
    296          
    297          
    298              BSP_OS_SemWait(&BSP_SerLock, 0);                            /* Obtain access to the serial interface.             */
   \   00000002   0021               MOVS     R1,#+0

⌨️ 快捷键说明

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