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

📄 main.s79

📁 IAPBootLoader源程序是单片机ARM的在系统编程方法1
💻 S79
📖 第 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\L /
//                       ist\" -lA "D:\lilian\STR71X\application note\IAP    /
//                       using UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\D /
//                       ebug\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\..\incl /
//                       ude\" -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\L /
//                       ist\main.s79                                        /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME main

        RTMODEL "StackAlign4", "USED"
        RTMODEL "__cpu_mode", "__pcs__arm"
        RTMODEL "__data_model", "absolute"
        RTMODEL "__dlib_file_descriptor", "0"
        RTMODEL "__endian", "little"
        RTMODEL "__rt_version", "6"

        RSEG CSTACK:DATA:NOROOT(2)

        MULTWEAK ??GPIO_Config??rA
        MULTWEAK ??Main_Menu??rA
        MULTWEAK ??RCCU_Div2Config??rA
        MULTWEAK ??RCCU_FlagStatus??rA
        MULTWEAK ??RCCU_PLL1Config??rA
        MULTWEAK ??RCCU_RCLKSourceConfig??rA
        MULTWEAK ??SerialPutString??rA
        MULTWEAK ??UART_Config??rA
        MULTWEAK ??UART_FifoConfig??rA
        MULTWEAK ??UART_FifoReset??rA
        MULTWEAK ??UART_LoopBackConfig??rA
        MULTWEAK ??UART_OnOffConfig??rA
        MULTWEAK ??UART_RxConfig??rA
        FUNCTION IAP_Init,0203H
        LOCFRAME CSTACK, 8, STACK
        PUBWEAK RCCU_Div2Config
        FUNCTION RCCU_Div2Config,0203H
        PUBWEAK RCCU_FlagStatus
        FUNCTION RCCU_FlagStatus,0203H
        PUBLIC main
        FUNCTION main,0a03H
        LOCFRAME CSTACK, 4, STACK
        
        CFI Names cfiNames0
        CFI StackFrame CFA R13 HUGEDATA
        CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32
        CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, CPSR:32, R13:32
        CFI Resource R14:32, SPSR:32
        CFI VirtualResource ?RET:32
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 4
        CFI DataAlign 4
        CFI ReturnAddress ?RET CODE
        CFI CFA R13+0
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 Undefined
        CFI CPSR SameValue
        CFI R14 Undefined
        CFI SPSR SameValue
        CFI ?RET R14
        CFI EndCommon cfiCommon0
        
GPIO_Config         SYMBOL "GPIO_Config"
Main_Menu           SYMBOL "Main_Menu"
RCCU_PLL1Config     SYMBOL "RCCU_PLL1Config"
RCCU_RCLKSourceConfig SYMBOL "RCCU_RCLKSourceConfig"
SerialPutString     SYMBOL "SerialPutString"
UART_Config         SYMBOL "UART_Config"
UART_FifoConfig     SYMBOL "UART_FifoConfig"
UART_FifoReset      SYMBOL "UART_FifoReset"
UART_LoopBackConfig SYMBOL "UART_LoopBackConfig"
UART_OnOffConfig    SYMBOL "UART_OnOffConfig"
UART_RxConfig       SYMBOL "UART_RxConfig"
??GPIO_Config??rA   SYMBOL "??rA", GPIO_Config
??Main_Menu??rA     SYMBOL "??rA", Main_Menu
RCCU_Div2Config     SYMBOL "RCCU_Div2Config"
??RCCU_Div2Config??rA SYMBOL "??rA", RCCU_Div2Config
RCCU_FlagStatus     SYMBOL "RCCU_FlagStatus"
??RCCU_FlagStatus??rA SYMBOL "??rA", RCCU_FlagStatus
??RCCU_PLL1Config??rA SYMBOL "??rA", RCCU_PLL1Config
??RCCU_RCLKSourceConfig??rA SYMBOL "??rA", RCCU_RCLKSourceConfig
??SerialPutString??rA SYMBOL "??rA", SerialPutString
??UART_Config??rA   SYMBOL "??rA", UART_Config
??UART_FifoConfig??rA SYMBOL "??rA", UART_FifoConfig
??UART_FifoReset??rA SYMBOL "??rA", UART_FifoReset
??UART_LoopBackConfig??rA SYMBOL "??rA", UART_LoopBackConfig
??UART_OnOffConfig??rA SYMBOL "??rA", UART_OnOffConfig
??UART_RxConfig??rA SYMBOL "??rA", UART_RxConfig

        EXTERN GPIO_Config
        FUNCTION GPIO_Config,0202H
        EXTERN Main_Menu
        FUNCTION Main_Menu,0202H
        EXTERN RCCU_PLL1Config
        FUNCTION RCCU_PLL1Config,0202H
        EXTERN RCCU_RCLKSourceConfig
        FUNCTION RCCU_RCLKSourceConfig,0202H
        EXTERN SerialPutString
        FUNCTION SerialPutString,0202H
        EXTERN UART_Config
        FUNCTION UART_Config,0202H
        EXTERN UART_FifoConfig
        FUNCTION UART_FifoConfig,0202H
        EXTERN UART_FifoReset
        FUNCTION UART_FifoReset,0202H
        EXTERN UART_LoopBackConfig
        FUNCTION UART_LoopBackConfig,0202H
        EXTERN UART_OnOffConfig
        FUNCTION UART_OnOffConfig,0202H
        EXTERN UART_RxConfig
        FUNCTION UART_RxConfig,0202H

// 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"

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function RCCU_Div2Config
        ARM
// __??Code32?? __code __arm __atpcs void RCCU_Div2Config(enum <unnamed>)
RCCU_Div2Config:
        CMP      R0,#+1
        BNE      ??RCCU_Div2Config_0
        MOV      R1,#-1610612728
        MOV      R2,#-1610612728
        LDR      R2,[R2, #+0]
        ORRS     R2,R2,#0x8000
        STR      R2,[R1, #+0]
        B        ??RCCU_Div2Config_1
??RCCU_Div2Config_0:
        MOV      R1,#-1610612728
        MOV      R2,#-1610612728
        LDR      R2,[R2, #+0]
        BICS     R2,R2,#0x8000
        STR      R2,[R1, #+0]
??RCCU_Div2Config_1:
        MOV      PC,LR            ;; return
        CFI EndBlock cfiBlock0

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function RCCU_FlagStatus
        ARM
// __??Code32?? __code __arm __atpcs FlagStatus RCCU_FlagStatus(RCCU_Flags)
RCCU_FlagStatus:
        MOV      R1,#-1610612728
        LDR      R1,[R1, #+0]
        TST      R0,R1
        BNE      ??RCCU_FlagStatus_0
        MOV      R0,#+0
        B        ??RCCU_FlagStatus_1
??RCCU_FlagStatus_0:
        MOV      R0,#+1
??RCCU_FlagStatus_1:
        MOV      PC,LR            ;; return
        CFI EndBlock cfiBlock1
//   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 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function IAP_Init
        ARM
//   31 static void IAP_Init(void)
//   32 {
IAP_Init:
        PUSH     {LR}
        CFI ?RET Frame(CFA, -4)
        CFI CFA R13+4
//   33   /* Set Main Freq to 32MHz */
//   34   RCCU_Div2Config(ENABLE);
        MOV      R0,#+1
        _BLF     RCCU_Div2Config,??RCCU_Div2Config??rA
//   35   RCCU_PLL1Config(RCCU_PLL1_Mul_12,RCCU_Div_3);
        MOV      R1,#+2
        MOV      R0,#+1
        _BLF     RCCU_PLL1Config,??RCCU_PLL1Config??rA
//   36   /* Wait PLL to lock */
//   37   while(RCCU_FlagStatus(RCCU_PLL1_LOCK)==RESET);
??IAP_Init_0:
        MOV      R0,#+2
        _BLF     RCCU_FlagStatus,??RCCU_FlagStatus??rA
        CMP      R0,#+0
        BEQ      ??IAP_Init_0
//   38   /* Select the PLL1 as clock source */
//   39   RCCU_RCLKSourceConfig(RCCU_PLL1_Output);
        MOV      R0,#+0
        _BLF     RCCU_RCLKSourceConfig,??RCCU_RCLKSourceConfig??rA
//   40   /* Configure the GPIO0 pins */
//   41   GPIO_Config(GPIO0, UART0_Rx_Pin, GPIO_IN_TRI_CMOS);
        MOV      R2,#+2
        MOV      R1,#+256
        MOV      R0,#-536870912
        ORR      R0,R0,#0x3000
        _BLF     GPIO_Config,??GPIO_Config??rA
//   42   GPIO_Config(GPIO0, UART0_Tx_Pin, GPIO_AF_PP);
        MOV      R2,#+7
        MOV      R1,#+512
        MOV      R0,#-536870912
        ORR      R0,R0,#0x3000
        _BLF     GPIO_Config,??GPIO_Config??rA
//   43   /* Configure the UART 0 */
//   44   UART_OnOffConfig(UART0, ENABLE);       /* Turn the UART0 baud generator on */
        MOV      R1,#+1
        MOV      R0,#-1073741824
        ORR      R0,R0,#0x4000
        _BLF     UART_OnOffConfig,??UART_OnOffConfig??rA
//   45   UART_FifoConfig (UART0, DISABLE);      /* Disable the FIFOs                */
        MOV      R1,#+0
        MOV      R0,#-1073741824
        ORR      R0,R0,#0x4000
        _BLF     UART_FifoConfig,??UART_FifoConfig??rA
//   46   UART_FifoReset(UART0 , UART_RxFIFO);   /* Reset the UART_RxFIFO            */
        MOV      R1,#+0
        MOV      R0,#-1073741824
        ORR      R0,R0,#0x4000
        _BLF     UART_FifoReset,??UART_FifoReset??rA
//   47   UART_FifoReset(UART0 , UART_TxFIFO);   /* Reset the UART_TxFIFO            */
        MOV      R1,#+1
        MOV      R0,#-1073741824
        ORR      R0,R0,#0x4000
        _BLF     UART_FifoReset,??UART_FifoReset??rA
//   48   UART_LoopBackConfig(UART0 , DISABLE);  /* Disable the Loop Back            */
        MOV      R1,#+0
        MOV      R0,#-1073741824
        ORR      R0,R0,#0x4000
        _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);
        MOV      R0,#+1
        PUSH     {R0}
        CFI CFA R13+8
        MOV      R3,#+8
        MOV      R2,#+33
        MOV      R1,#+65536
        ORR      R1,R1,#0xC200
        MOV      R0,#-1073741824
        ORR      R0,R0,#0x4000
        _BLF     UART_Config,??UART_Config??rA
        ADD      SP,SP,#+4        ;; stack cleaning
        CFI CFA R13+4
//   56   UART_RxConfig(UART0 ,ENABLE);
        MOV      R1,#+1
        MOV      R0,#-1073741824
        ORR      R0,R0,#0x4000

⌨️ 快捷键说明

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