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

📄 uart.lst

📁 IAPBootLoader源程序是单片机ARM的在系统编程方法1
💻 LST
📖 第 1 页 / 共 2 页
字号:
     72          * Function Name  : UART_FifoReset
     73          * Description    : This function resets the Rx and the Tx FIFOs of the
     74          *                  selected UART.
     75          * Input 1        : UARTx (x can be 0,1, 2 or 3) the desired UART
     76          * Input 2        : UART_RxFIFO or UART_TxFIFO
     77          * Output         : None
     78          * Return         : None
     79          *******************************************************************************/

   \                                 In segment CODE_Flash, align 4, keep-with-next
     80          void UART_FifoReset(UART_TypeDef *UARTx, UARTFIFO_TypeDef FIFO)
     81          {
     82            if (FIFO==UART_RxFIFO) UARTx->RxRSTR=0xFFFF; else UARTx->TxRSTR=0xFFFF;
   \                     UART_FifoReset:
   \   00000000   000051E3           CMP      R1,#+0
   \   00000004   0300001A           BNE      ??UART_FifoReset_0
   \   00000008   FF20A0E3           MOV      R2,#+255
   \   0000000C   FF2C82E3           ORR      R2,R2,#0xFF00
   \   00000010   B422C0E1           STRH     R2,[R0, #+36]
   \   00000014   020000EA           B        ??UART_FifoReset_1
   \                     ??UART_FifoReset_0:
   \   00000018   FF20A0E3           MOV      R2,#+255
   \   0000001C   FF2C82E3           ORR      R2,R2,#0xFF00
   \   00000020   B022C0E1           STRH     R2,[R0, #+32]
     83          }
   \                     ??UART_FifoReset_1:
   \   00000024   0EF0A0E1           MOV      PC,LR            ;; return
     84          
     85          /*******************************************************************************
     86          * Function Name  : UART_LoopBackConfig
     87          * Description    : This function enables or disables the loop back mode of
     88          *                  the selected UART.
     89          * Input 1        : UARTx (x can be 0,1, 2 or 3) the desired UART
     90          * Input 2        : ENABLE or DISABLE
     91          * Output         : None
     92          * Return         : None
     93          *******************************************************************************/

   \                                 In segment CODE_Flash, align 4, keep-with-next
     94          void UART_LoopBackConfig(UART_TypeDef *UARTx, FunctionalState NewStatus)
     95          {
     96            if (NewStatus==ENABLE) UARTx->CR|=0x0040; else UARTx->CR&=~0x0040;
   \                     UART_LoopBackConfig:
   \   00000000   010051E3           CMP      R1,#+1
   \   00000004   0300001A           BNE      ??UART_LoopBackConfig_0
   \   00000008   BC20D0E1           LDRH     R2,[R0, #+12]
   \   0000000C   402092E3           ORRS     R2,R2,#0x40
   \   00000010   BC20C0E1           STRH     R2,[R0, #+12]
   \   00000014   040000EA           B        ??UART_LoopBackConfig_1
   \                     ??UART_LoopBackConfig_0:
   \   00000018   BC20D0E1           LDRH     R2,[R0, #+12]
   \   0000001C   BF30A0E3           MOV      R3,#+191
   \   00000020   FF3C83E3           ORR      R3,R3,#0xFF00
   \   00000024   022013E0           ANDS     R2,R3,R2
   \   00000028   BC20C0E1           STRH     R2,[R0, #+12]
     97          }
   \                     ??UART_LoopBackConfig_1:
   \   0000002C   0EF0A0E1           MOV      PC,LR            ;; return
     98          
     99          /*******************************************************************************
    100          * Function Name  : UART_RxConfig
    101          * Description    : This function enables or disables the UART data reception.
    102          * Input 1        : UARTx (x can be 0,1, 2 or 3) the desired UART
    103          * Input 2        : ENABLE or DISABLE
    104          * Output         : None
    105          * Return         : None
    106          *******************************************************************************/

   \                                 In segment CODE_Flash, align 4, keep-with-next
    107          void UART_RxConfig(UART_TypeDef *UARTx, FunctionalState NewStatus)
    108          {
    109            if (NewStatus==ENABLE) UARTx->CR|=0x0100; else UARTx->CR&=~0x0100;
   \                     UART_RxConfig:
   \   00000000   010051E3           CMP      R1,#+1
   \   00000004   0300001A           BNE      ??UART_RxConfig_0
   \   00000008   BC20D0E1           LDRH     R2,[R0, #+12]
   \   0000000C   402F92E3           ORRS     R2,R2,#0x100
   \   00000010   BC20C0E1           STRH     R2,[R0, #+12]
   \   00000014   040000EA           B        ??UART_RxConfig_1
   \                     ??UART_RxConfig_0:
   \   00000018   BC20D0E1           LDRH     R2,[R0, #+12]
   \   0000001C   FF30A0E3           MOV      R3,#+255
   \   00000020   FE3C83E3           ORR      R3,R3,#0xFE00
   \   00000024   022013E0           ANDS     R2,R3,R2
   \   00000028   BC20C0E1           STRH     R2,[R0, #+12]
    110          }
   \                     ??UART_RxConfig_1:
   \   0000002C   0EF0A0E1           MOV      PC,LR            ;; return
    111          
    112          /*******************************************************************************
    113          * Function Name  : UART_OnOffConfig
    114          * Description    : This function sets On/Off the selected UART.
    115          * Input 1        : UARTx (x can be 0,1, 2 or 3) the desired UART
    116          * Input 2        : ENABLE or DISABLE
    117          * Output         : None
    118          * Return         : None
    119          *******************************************************************************/

   \                                 In segment CODE_Flash, align 4, keep-with-next
    120          void UART_OnOffConfig(UART_TypeDef *UARTx, FunctionalState NewStatus)
    121          {
    122            if (NewStatus==ENABLE) UARTx->CR|=0x0080; else UARTx->CR&=~0x0080;
   \                     UART_OnOffConfig:
   \   00000000   010051E3           CMP      R1,#+1
   \   00000004   0300001A           BNE      ??UART_OnOffConfig_0
   \   00000008   BC20D0E1           LDRH     R2,[R0, #+12]
   \   0000000C   802092E3           ORRS     R2,R2,#0x80
   \   00000010   BC20C0E1           STRH     R2,[R0, #+12]
   \   00000014   040000EA           B        ??UART_OnOffConfig_1
   \                     ??UART_OnOffConfig_0:
   \   00000018   BC20D0E1           LDRH     R2,[R0, #+12]
   \   0000001C   7F30A0E3           MOV      R3,#+127
   \   00000020   FF3C83E3           ORR      R3,R3,#0xFF00
   \   00000024   022013E0           ANDS     R2,R3,R2
   \   00000028   BC20C0E1           STRH     R2,[R0, #+12]
    123          }
   \                     ??UART_OnOffConfig_1:
   \   0000002C   0EF0A0E1           MOV      PC,LR            ;; return
    124          
    125          /*******************************************************************************
    126          * Function Name  : UART_ByteSend
    127          * Description    : This function sends a data byte to the selected UART.
    128          * Input 1        : UARTx (x can be 0,1, 2 or 3) the desired UART
    129          * Input 2        : A pointer to the data byte to send
    130          * Output         : None
    131          * Return         : None
    132          *******************************************************************************/

   \                                 In segment CODE_Flash, align 4, keep-with-next
    133          void UART_ByteSend(UART_TypeDef *UARTx, u8 *Data)
    134          {
    135            if (UARTx->CR & (0x0001<<UART_FIFOEnableBit))// if FIFO ENABLED
   \                     UART_ByteSend:
   \   00000000   BC20D0E1           LDRH     R2,[R0, #+12]
   \   00000004   400E12E3           TST      R2,#0x400
   \   00000008   0300000A           BEQ      ??UART_ByteSend_0
    136              while((UARTx->SR & UART_TxFull)); // while the UART_TxFIFO contain 16 characters.
   \                     ??UART_ByteSend_1:
   \   0000000C   B421D0E1           LDRH     R2,[R0, #+20]
   \   00000010   800F12E3           TST      R2,#0x200
   \   00000014   FCFFFF1A           BNE      ??UART_ByteSend_1
   \   00000018   020000EA           B        ??UART_ByteSend_2
    137            else                  // if FIFO DISABLED
    138              while (!(UARTx->SR & UART_TxEmpty)); // while the transmit shift register not empty
   \                     ??UART_ByteSend_0:
   \   0000001C   B421D0E1           LDRH     R2,[R0, #+20]
   \   00000020   020012E3           TST      R2,#0x2
   \   00000024   FCFFFF0A           BEQ      ??UART_ByteSend_0
    139            UARTx->TxBUFR = *Data;
   \                     ??UART_ByteSend_2:
   \   00000028   0020D1E5           LDRB     R2,[R1, #+0]
   \   0000002C   B420C0E1           STRH     R2,[R0, #+4]
    140          }
   \   00000030   0EF0A0E1           MOV      PC,LR            ;; return
    141          
    142          
    143          /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/

   Maximum stack usage in bytes:

     Function            CSTACK
     --------            ------
     UART_BaudRateConfig    12
     UART_ByteSend           0
     UART_Config            24
     UART_FifoConfig         0
     UART_FifoReset          0
     UART_LoopBackConfig     0
     UART_ModeConfig         0
     UART_OnOffConfig        0
     UART_ParityConfig       0
     UART_RxConfig           0
     UART_StopBitsConfig     0


   Segment part sizes:

     Function/Label      Bytes
     --------------      -----
     UART_ModeConfig       32
     UART_ParityConfig     32
     UART_StopBitsConfig   32
     UART_BaudRateConfig   40
     UART_Config           76
     UART_FifoConfig       48
     UART_FifoReset        40
     UART_LoopBackConfig   48
     UART_RxConfig         48
     UART_OnOffConfig      48
     UART_ByteSend         52
      Others               60

 
 556 bytes in segment CODE_Flash
 
 400 bytes of CODE memory (+ 156 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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