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

📄 main.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\user\main.c   #
#    Command line    =  "D:\lilian\STR71X\application note\IAP using         #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\main.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" -I                        #
#                       "D:\lilian\STR71X\application note\IAP using         #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\..\inclu #
#                       de\" -I "D:\lilian\STR71X\application note\IAP       #
#                       using UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\.. #
#                       \common\" -I ROJ_DIR$\ -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\main.lst                                          #
#    Object file     =  D:\lilian\STR71X\application note\IAP using          #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\Debug\Ob #
#                       j\main.r79                                           #
#                                                                            #
#                                                                            #
##############################################################################

D:\lilian\STR71X\application note\IAP using UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\main.c
      1          /******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
      2          * File Name          : main.c
      3          * Author             : MCD Application Team
      4          * Date First Issued  : 10/25/2004
      5          * Description        : The main program
      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          #include "common.h"

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code32?? __code __arm __atpcs void RCCU_Div2Config(enum <unnamed>)
   \                     RCCU_Div2Config:
   \   00000000   010050E3           CMP      R0,#+1
   \   00000004   0500001A           BNE      ??RCCU_Div2Config_0
   \   00000008   8A12A0E3           MOV      R1,#-1610612728
   \   0000000C   8A22A0E3           MOV      R2,#-1610612728
   \   00000010   002092E5           LDR      R2,[R2, #+0]
   \   00000014   802C92E3           ORRS     R2,R2,#0x8000
   \   00000018   002081E5           STR      R2,[R1, #+0]
   \   0000001C   040000EA           B        ??RCCU_Div2Config_1
   \                     ??RCCU_Div2Config_0:
   \   00000020   8A12A0E3           MOV      R1,#-1610612728
   \   00000024   8A22A0E3           MOV      R2,#-1610612728
   \   00000028   002092E5           LDR      R2,[R2, #+0]
   \   0000002C   802CD2E3           BICS     R2,R2,#0x8000
   \   00000030   002081E5           STR      R2,[R1, #+0]
   \                     ??RCCU_Div2Config_1:
   \   00000034   0EF0A0E1           MOV      PC,LR            ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code32?? __code __arm __atpcs FlagStatus RCCU_FlagStatus(RCCU_Flags)
   \                     RCCU_FlagStatus:
   \   00000000   8A12A0E3           MOV      R1,#-1610612728
   \   00000004   001091E5           LDR      R1,[R1, #+0]
   \   00000008   010010E1           TST      R0,R1
   \   0000000C   0100001A           BNE      ??RCCU_FlagStatus_0
   \   00000010   0000A0E3           MOV      R0,#+0
   \   00000014   000000EA           B        ??RCCU_FlagStatus_1
   \                     ??RCCU_FlagStatus_0:
   \   00000018   0100A0E3           MOV      R0,#+1
   \                     ??RCCU_FlagStatus_1:
   \   0000001C   0EF0A0E1           MOV      PC,LR            ;; return
     19          #include "rccu.h"
     20          
     21          
     22          #define UART0_Rx_Pin (0x0001<<8)   /* TQFP 64: pin N?63 , TQFP 144 pin N?143 */
     23          #define UART0_Tx_Pin (0x0001<<9)   /* TQFP 64: pin N?64 , TQFP 144 pin N?144 */
     24          
     25          /*******************************************************************************
     26          * Function Name  : IAP_Init
     27          * Description    : Initilize the IAP
     28          * Input          : None
     29          * Return         : None
     30          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     31          static void IAP_Init(void)
     32          {
   \                     IAP_Init:
   \   00000000   00402DE9           PUSH     {LR}
     33            /* Set Main Freq to 32MHz */
     34            RCCU_Div2Config(ENABLE);
   \   00000004   0100A0E3           MOV      R0,#+1
   \   00000008   ........           _BLF     RCCU_Div2Config,??RCCU_Div2Config??rA
     35            RCCU_PLL1Config(RCCU_PLL1_Mul_12,RCCU_Div_3);
   \   0000000C   0210A0E3           MOV      R1,#+2
   \   00000010   0100A0E3           MOV      R0,#+1
   \   00000014   ........           _BLF     RCCU_PLL1Config,??RCCU_PLL1Config??rA
     36            /* Wait PLL to lock */
     37            while(RCCU_FlagStatus(RCCU_PLL1_LOCK)==RESET);
   \                     ??IAP_Init_0:
   \   00000018   0200A0E3           MOV      R0,#+2
   \   0000001C   ........           _BLF     RCCU_FlagStatus,??RCCU_FlagStatus??rA
   \   00000020   000050E3           CMP      R0,#+0
   \   00000024   FBFFFF0A           BEQ      ??IAP_Init_0
     38            /* Select the PLL1 as clock source */
     39            RCCU_RCLKSourceConfig(RCCU_PLL1_Output);
   \   00000028   0000A0E3           MOV      R0,#+0
   \   0000002C   ........           _BLF     RCCU_RCLKSourceConfig,??RCCU_RCLKSourceConfig??rA
     40            /* Configure the GPIO0 pins */
     41            GPIO_Config(GPIO0, UART0_Rx_Pin, GPIO_IN_TRI_CMOS);
   \   00000030   0220A0E3           MOV      R2,#+2
   \   00000034   401FA0E3           MOV      R1,#+256
   \   00000038   E004A0E3           MOV      R0,#-536870912
   \   0000003C   C00D80E3           ORR      R0,R0,#0x3000
   \   00000040   ........           _BLF     GPIO_Config,??GPIO_Config??rA
     42            GPIO_Config(GPIO0, UART0_Tx_Pin, GPIO_AF_PP);
   \   00000044   0720A0E3           MOV      R2,#+7
   \   00000048   801FA0E3           MOV      R1,#+512
   \   0000004C   E004A0E3           MOV      R0,#-536870912
   \   00000050   C00D80E3           ORR      R0,R0,#0x3000
   \   00000054   ........           _BLF     GPIO_Config,??GPIO_Config??rA
     43            /* Configure the UART 0 */
     44            UART_OnOffConfig(UART0, ENABLE);       /* Turn the UART0 baud generator on */
   \   00000058   0110A0E3           MOV      R1,#+1
   \   0000005C   C004A0E3           MOV      R0,#-1073741824
   \   00000060   400C80E3           ORR      R0,R0,#0x4000
   \   00000064   ........           _BLF     UART_OnOffConfig,??UART_OnOffConfig??rA
     45            UART_FifoConfig (UART0, DISABLE);      /* Disable the FIFOs                */
   \   00000068   0010A0E3           MOV      R1,#+0
   \   0000006C   C004A0E3           MOV      R0,#-1073741824
   \   00000070   400C80E3           ORR      R0,R0,#0x4000
   \   00000074   ........           _BLF     UART_FifoConfig,??UART_FifoConfig??rA
     46            UART_FifoReset(UART0 , UART_RxFIFO);   /* Reset the UART_RxFIFO            */
   \   00000078   0010A0E3           MOV      R1,#+0
   \   0000007C   C004A0E3           MOV      R0,#-1073741824
   \   00000080   400C80E3           ORR      R0,R0,#0x4000
   \   00000084   ........           _BLF     UART_FifoReset,??UART_FifoReset??rA
     47            UART_FifoReset(UART0 , UART_TxFIFO);   /* Reset the UART_TxFIFO            */
   \   00000088   0110A0E3           MOV      R1,#+1
   \   0000008C   C004A0E3           MOV      R0,#-1073741824
   \   00000090   400C80E3           ORR      R0,R0,#0x4000
   \   00000094   ........           _BLF     UART_FifoReset,??UART_FifoReset??rA
     48            UART_LoopBackConfig(UART0 , DISABLE);  /* Disable the Loop Back            */
   \   00000098   0010A0E3           MOV      R1,#+0
   \   0000009C   C004A0E3           MOV      R0,#-1073741824
   \   000000A0   400C80E3           ORR      R0,R0,#0x4000
   \   000000A4   ........           _BLF     UART_LoopBackConfig,??UART_LoopBackConfig??rA
     49          
     50            /* Configure the UART0 as following: */
     51            /*   - Baudrate = 115200Bps          */
     52            /*   - No parity                     */
     53            /*   - 8 data bits                   */
     54            /*   - 1 stop bit                    */
     55            UART_Config(UART0,115200,UART_NO_PARITY,UART_1_StopBits,UARTM_8D);
   \   000000A8   0100A0E3           MOV      R0,#+1
   \   000000AC   01002DE9           PUSH     {R0}
   \   000000B0   0830A0E3           MOV      R3,#+8
   \   000000B4   2120A0E3           MOV      R2,#+33
   \   000000B8   401BA0E3           MOV      R1,#+65536
   \   000000BC   C21C81E3           ORR      R1,R1,#0xC200
   \   000000C0   C004A0E3           MOV      R0,#-1073741824
   \   000000C4   400C80E3           ORR      R0,R0,#0x4000
   \   000000C8   ........           _BLF     UART_Config,??UART_Config??rA
   \   000000CC   04D08DE2           ADD      SP,SP,#+4        ;; stack cleaning
     56            UART_RxConfig(UART0 ,ENABLE);
   \   000000D0   0110A0E3           MOV      R1,#+1
   \   000000D4   C004A0E3           MOV      R0,#-1073741824
   \   000000D8   400C80E3           ORR      R0,R0,#0x4000
   \   000000DC   ........           _BLF     UART_RxConfig,??UART_RxConfig??rA
     57          }
   \   000000E0   0080BDE8           POP      {PC}             ;; return
     58          /*******************************************************************************
     59          * Function Name  : main
     60          * Description    : The main program.
     61          * Input          : None
     62          * Return         : None
     63          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     64          void main(void)
     65          {
   \                     main:
   \   00000000   00402DE9           PUSH     {LR}
     66          #ifdef DEBUG

⌨️ 快捷键说明

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