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

📄 uart.lst

📁 IAPBootLoader源程序是单片机ARM的在系统编程方法1
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.40A/W32               17/Jan/2007  16:16:24 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  arm                                                  #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  D:\lilian\STR71X\application note\IAP using          #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\source\uart.c #
#    Command line    =  "D:\lilian\STR71X\application note\IAP using         #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\source\uart.c #
#                       " -lC "D:\lilian\STR71X\application note\IAP using   #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\Debug\Li #
#                       st\" -lA "D:\lilian\STR71X\application note\IAP      #
#                       using UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\De #
#                       bug\List\" -o "D:\lilian\STR71X\application          #
#                       note\IAP using UART\an2078_IAR(forum)\an2078\IAP_V2. #
#                       0\user\Debug\Obj\" -z2 --no_cse --no_unroll          #
#                       --no_inline --no_code_motion --no_tbaa               #
#                       --no_clustering --no_scheduling --debug --cpu_mode   #
#                       arm --endian little --cpu ARM7TDMI --stack_align 4   #
#                       -e --fpu None --dlib_config "C:\Program Files\IAR    #
#                       Systems\Embedded Workbench                           #
#                       4.0\arm\LIB\dl4tpannl8n.h" --segment                 #
#                       code=CODE_Flash -I "D:\lilian\STR71X\application     #
#                       note\IAP using UART\an2078_IAR(forum)\an2078\IAP_V2. #
#                       0\user\..\include\" -I "D:\lilian\STR71X\application #
#                        note\IAP using UART\an2078_IAR(forum)\an2078\IAP_V2 #
#                       .0\user\..\common\" -I "C:\Program Files\IAR         #
#                       Systems\Embedded Workbench 4.0\arm\INC\"             #
#    List file       =  D:\lilian\STR71X\application note\IAP using          #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\Debug\Li #
#                       st\uart.lst                                          #
#    Object file     =  D:\lilian\STR71X\application note\IAP using          #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\Debug\Ob #
#                       j\uart.r79                                           #
#                                                                            #
#                                                                            #
##############################################################################

D:\lilian\STR71X\application note\IAP using UART\an2078_IAR(forum)\an2078\IAP_V2.0\source\uart.c
      1          /******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
      2          * File Name          : uart.c
      3          * Author             : MCD Application Team
      4          * Date First Issued  : 08/06/2003
      5          * Description        : This file provides all the UART software functions.
      6          ********************************************************************************
      7          * History:
      8          *  02/01/2006 : IAP Version 2.0
      9          *  11/24/2004 : IAP Version 1.0
     10          ********************************************************************************
     11          THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH
     12          CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A 
     13          RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR 
     14          CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF SUCH 
     15          SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN
     16          IN CONNECTION WITH THEIR PRODUCTS.
     17          ********************************************************************************/
     18          
     19          #include "uart.h"

   \                                 In segment CODE_Flash, align 4, keep-with-next
   \   __??Code32?? __code __arm __atpcs void UART_ModeConfig(struct <unnamed> volatile *, enum <unnamed>)
   \                     UART_ModeConfig:
   \   00000000   BC20D0E1           LDRH     R2,[R0, #+12]
   \   00000004   F830A0E3           MOV      R3,#+248
   \   00000008   FF3C83E3           ORR      R3,R3,#0xFF00
   \   0000000C   022013E0           ANDS     R2,R3,R2
   \   00000010   0130B0E1           MOVS     R3,R1
   \   00000014   022093E1           ORRS     R2,R3,R2
   \   00000018   BC20C0E1           STRH     R2,[R0, #+12]
   \   0000001C   0EF0A0E1           MOV      PC,LR            ;; return

   \                                 In segment CODE_Flash, align 4, keep-with-next
   \   __??Code32?? __code __arm __atpcs void UART_ParityConfig(struct <unnamed> volatile *, enum <unnamed>)
   \                     UART_ParityConfig:
   \   00000000   BC20D0E1           LDRH     R2,[R0, #+12]
   \   00000004   DF30A0E3           MOV      R3,#+223
   \   00000008   FF3C83E3           ORR      R3,R3,#0xFF00
   \   0000000C   022013E0           ANDS     R2,R3,R2
   \   00000010   0130B0E1           MOVS     R3,R1
   \   00000014   022093E1           ORRS     R2,R3,R2
   \   00000018   BC20C0E1           STRH     R2,[R0, #+12]
   \   0000001C   0EF0A0E1           MOV      PC,LR            ;; return

   \                                 In segment CODE_Flash, align 4, keep-with-next
   \   __??Code32?? __code __arm __atpcs void UART_StopBitsConfig(struct <unnamed> volatile *, enum <unnamed>)
   \                     UART_StopBitsConfig:
   \   00000000   BC20D0E1           LDRH     R2,[R0, #+12]
   \   00000004   E730A0E3           MOV      R3,#+231
   \   00000008   FF3C83E3           ORR      R3,R3,#0xFF00
   \   0000000C   022013E0           ANDS     R2,R3,R2
   \   00000010   0130B0E1           MOVS     R3,R1
   \   00000014   022093E1           ORRS     R2,R3,R2
   \   00000018   BC20C0E1           STRH     R2,[R0, #+12]
   \   0000001C   0EF0A0E1           MOV      PC,LR            ;; return
     20          
     21          
     22          /*******************************************************************************
     23          * Function Name  : UART_BaudRateConfig
     24          * Description    : This function configures the baud rate of the selected UART.
     25          * Input 1        : UARTx (x can be 0,1, 2 or 3) the desired UART
     26          * Input 2        : The baudrate value
     27          * Output         : None
     28          * Return         : None
     29          *******************************************************************************/

   \                                 In segment CODE_Flash, align 4, keep-with-next
     30          void UART_BaudRateConfig(UART_TypeDef *UARTx, u32 BaudRate)
     31          {
   \                     UART_BaudRateConfig:
   \   00000000   30402DE9           PUSH     {R4,R5,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
   \   00000008   0150B0E1           MOVS     R5,R1
     32            UARTx->BR = (u16)(RCCU_FrequencyValue(RCCU_FCLK)/(16*BaudRate));
   \   0000000C   0400A0E3           MOV      R0,#+4
   \   00000010   ........           _BLF     RCCU_FrequencyValue,??RCCU_FrequencyValue??rA
   \   00000014   1020A0E3           MOV      R2,#+16
   \   00000018   920511E0           MULS     R1,R2,R5
   \   0000001C   ........           _BLF     ??divu32_a,??rA??divu32_a
   \   00000020   B010C4E1           STRH     R1,[R4, #+0]
     33          }
   \   00000024   3080BDE8           POP      {R4,R5,PC}       ;; return
     34          
     35          /*******************************************************************************
     36          * Function Name  : UART_Config
     37          * Description    : This function configures the baudrate, the mode, the data
     38          *                  parity and the number of stop bits of the selected UART.
     39          * Input 1        : UARTx (x can be 0,1, 2 or 3) the desired UART
     40          * Input 2        : The baudrate value
     41          * Input 3        : The parity type
     42          * Input 4        : The number of stop bits
     43          * Input 5        : The UART mode
     44          * Output         : None
     45          * Return         : None
     46          *******************************************************************************/

   \                                 In segment CODE_Flash, align 4, keep-with-next
     47          void UART_Config(UART_TypeDef *UARTx, u32 BaudRate, UARTParity_TypeDef Parity,
     48                           UARTStopBits_TypeDef StopBits, UARTMode_TypeDef Mode)
     49          {
   \                     UART_Config:
   \   00000000   F0412DE9           PUSH     {R4-R8,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
   \   00000008   0150B0E1           MOVS     R5,R1
   \   0000000C   0260B0E1           MOVS     R6,R2
   \   00000010   0370B0E1           MOVS     R7,R3
   \   00000014   1880DDE5           LDRB     R8,[SP, #+24]
     50            UART_ModeConfig(UARTx, Mode);
   \   00000018   0810B0E1           MOVS     R1,R8
   \   0000001C   0400B0E1           MOVS     R0,R4
   \   00000020   ........           _BLF     UART_ModeConfig,??UART_ModeConfig??rA
     51            UART_BaudRateConfig(UARTx, BaudRate);
   \   00000024   0510B0E1           MOVS     R1,R5
   \   00000028   0400B0E1           MOVS     R0,R4
   \   0000002C   ........           BL       UART_BaudRateConfig
     52            UART_ParityConfig(UARTx, Parity);
   \   00000030   0610B0E1           MOVS     R1,R6
   \   00000034   0400B0E1           MOVS     R0,R4
   \   00000038   ........           _BLF     UART_ParityConfig,??UART_ParityConfig??rA
     53            UART_StopBitsConfig(UARTx, StopBits);
   \   0000003C   0710B0E1           MOVS     R1,R7
   \   00000040   0400B0E1           MOVS     R0,R4
   \   00000044   ........           _BLF     UART_StopBitsConfig,??UART_StopBitsConfig??rA
     54          }
   \   00000048   F081BDE8           POP      {R4-R8,PC}       ;; return
     55          
     56          
     57          /*******************************************************************************
     58          * Function Name  : UART_FifoConfig
     59          * Description    : This function enables or disables the Rx and Tx FIFOs of
     60          *                  the selected UART.
     61          * Input 1        : UARTx (x can be 0,1, 2 or 3) the desired UART
     62          * Input 2        : ENABLE or DISABLE
     63          * Output         : None
     64          * Return         : None
     65          *******************************************************************************/

   \                                 In segment CODE_Flash, align 4, keep-with-next
     66          void UART_FifoConfig(UART_TypeDef *UARTx, FunctionalState NewStatus)
     67          {
     68            if (NewStatus==ENABLE) UARTx->CR|=0x0400; else UARTx->CR&=~0x0400;
   \                     UART_FifoConfig:
   \   00000000   010051E3           CMP      R1,#+1
   \   00000004   0300001A           BNE      ??UART_FifoConfig_0
   \   00000008   BC20D0E1           LDRH     R2,[R0, #+12]
   \   0000000C   402E92E3           ORRS     R2,R2,#0x400
   \   00000010   BC20C0E1           STRH     R2,[R0, #+12]
   \   00000014   040000EA           B        ??UART_FifoConfig_1
   \                     ??UART_FifoConfig_0:
   \   00000018   BC20D0E1           LDRH     R2,[R0, #+12]
   \   0000001C   FF30A0E3           MOV      R3,#+255
   \   00000020   FB3C83E3           ORR      R3,R3,#0xFB00
   \   00000024   022013E0           ANDS     R2,R3,R2
   \   00000028   BC20C0E1           STRH     R2,[R0, #+12]
     69          }
   \                     ??UART_FifoConfig_1:
   \   0000002C   0EF0A0E1           MOV      PC,LR            ;; return
     70          
     71          /*******************************************************************************

⌨️ 快捷键说明

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