?? uart.s79
字號:
//////////////////////////////////////////////////////////////////////////////
// /
// 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\D /
// ebug\List\" -lA "D:\lilian\STR71X\application /
// note\IAP using UART\an2078_IAR(forum)\an2078\IAP_V2 /
// .0\user\Debug\List\" -o "D:\lilian\STR71X\applicati /
// on 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\applicati /
// on 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\L /
// ist\uart.s79 /
// /
// /
//////////////////////////////////////////////////////////////////////////////
NAME uart
RTMODEL "StackAlign4", "USED"
RTMODEL "__cpu_mode", "__pcs__arm"
RTMODEL "__data_model", "absolute"
RTMODEL "__endian", "little"
RTMODEL "__rt_version", "6"
RSEG CSTACK:DATA:NOROOT(2)
EXTERN ??divu32_a
MULTWEAK ??RCCU_FrequencyValue??rA
MULTWEAK ??UART_ModeConfig??rA
MULTWEAK ??UART_ParityConfig??rA
MULTWEAK ??UART_StopBitsConfig??rA
MULTWEAK ??rA??divu32_a
PUBLIC UART_BaudRateConfig
FUNCTION UART_BaudRateConfig,0203H
LOCFRAME CSTACK, 12, STACK
PUBLIC UART_ByteSend
FUNCTION UART_ByteSend,0203H
PUBLIC UART_Config
FUNCTION UART_Config,0203H
LOCFRAME CSTACK, 24, STACK
PUBLIC UART_FifoConfig
FUNCTION UART_FifoConfig,0203H
PUBLIC UART_FifoReset
FUNCTION UART_FifoReset,0203H
PUBLIC UART_LoopBackConfig
FUNCTION UART_LoopBackConfig,0203H
PUBWEAK UART_ModeConfig
FUNCTION UART_ModeConfig,0203H
PUBLIC UART_OnOffConfig
FUNCTION UART_OnOffConfig,0203H
PUBWEAK UART_ParityConfig
FUNCTION UART_ParityConfig,0203H
PUBLIC UART_RxConfig
FUNCTION UART_RxConfig,0203H
PUBWEAK UART_StopBitsConfig
FUNCTION UART_StopBitsConfig,0203H
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
RCCU_FrequencyValue SYMBOL "RCCU_FrequencyValue"
??RCCU_FrequencyValue??rA SYMBOL "??rA", RCCU_FrequencyValue
UART_ModeConfig SYMBOL "UART_ModeConfig"
??UART_ModeConfig??rA SYMBOL "??rA", UART_ModeConfig
UART_ParityConfig SYMBOL "UART_ParityConfig"
??UART_ParityConfig??rA SYMBOL "??rA", UART_ParityConfig
UART_StopBitsConfig SYMBOL "UART_StopBitsConfig"
??UART_StopBitsConfig??rA SYMBOL "??rA", UART_StopBitsConfig
EXTERN RCCU_FrequencyValue
FUNCTION RCCU_FrequencyValue,0202H
// 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"
RSEG CODE_Flash:CODE:NOROOT(2)
CFI Block cfiBlock0 Using cfiCommon0
CFI Function UART_ModeConfig
ARM
// __??Code32?? __code __arm __atpcs void UART_ModeConfig(struct <unnamed> volatile *, enum <unnamed>)
UART_ModeConfig:
LDRH R2,[R0, #+12]
MOV R3,#+248
ORR R3,R3,#0xFF00
ANDS R2,R3,R2
MOVS R3,R1
ORRS R2,R3,R2
STRH R2,[R0, #+12]
MOV PC,LR ;; return
CFI EndBlock cfiBlock0
RSEG CODE_Flash:CODE:NOROOT(2)
CFI Block cfiBlock1 Using cfiCommon0
CFI Function UART_ParityConfig
ARM
// __??Code32?? __code __arm __atpcs void UART_ParityConfig(struct <unnamed> volatile *, enum <unnamed>)
UART_ParityConfig:
LDRH R2,[R0, #+12]
MOV R3,#+223
ORR R3,R3,#0xFF00
ANDS R2,R3,R2
MOVS R3,R1
ORRS R2,R3,R2
STRH R2,[R0, #+12]
MOV PC,LR ;; return
CFI EndBlock cfiBlock1
RSEG CODE_Flash:CODE:NOROOT(2)
CFI Block cfiBlock2 Using cfiCommon0
CFI Function UART_StopBitsConfig
ARM
// __??Code32?? __code __arm __atpcs void UART_StopBitsConfig(struct <unnamed> volatile *, enum <unnamed>)
UART_StopBitsConfig:
LDRH R2,[R0, #+12]
MOV R3,#+231
ORR R3,R3,#0xFF00
ANDS R2,R3,R2
MOVS R3,R1
ORRS R2,R3,R2
STRH R2,[R0, #+12]
MOV PC,LR ;; return
CFI EndBlock cfiBlock2
// 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 *******************************************************************************/
RSEG CODE_Flash:CODE:NOROOT(2)
CFI Block cfiBlock3 Using cfiCommon0
CFI Function UART_BaudRateConfig
ARM
// 30 void UART_BaudRateConfig(UART_TypeDef *UARTx, u32 BaudRate)
// 31 {
UART_BaudRateConfig:
PUSH {R4,R5,LR}
CFI ?RET Frame(CFA, -4)
CFI R5 Frame(CFA, -8)
CFI R4 Frame(CFA, -12)
CFI CFA R13+12
MOVS R4,R0
MOVS R5,R1
// 32 UARTx->BR = (u16)(RCCU_FrequencyValue(RCCU_FCLK)/(16*BaudRate));
MOV R0,#+4
_BLF RCCU_FrequencyValue,??RCCU_FrequencyValue??rA
MOV R2,#+16
MULS R1,R2,R5
_BLF ??divu32_a,??rA??divu32_a
STRH R1,[R4, #+0]
// 33 }
POP {R4,R5,PC} ;; return
CFI EndBlock cfiBlock3
// 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 *******************************************************************************/
RSEG CODE_Flash:CODE:NOROOT(2)
CFI Block cfiBlock4 Using cfiCommon0
CFI Function UART_Config
ARM
// 47 void UART_Config(UART_TypeDef *UARTx, u32 BaudRate, UARTParity_TypeDef Parity,
// 48 UARTStopBits_TypeDef StopBits, UARTMode_TypeDef Mode)
// 49 {
UART_Config:
PUSH {R4-R8,LR}
CFI ?RET Frame(CFA, -4)
CFI R8 Frame(CFA, -8)
CFI R7 Frame(CFA, -12)
CFI R6 Frame(CFA, -16)
CFI R5 Frame(CFA, -20)
CFI R4 Frame(CFA, -24)
CFI CFA R13+24
MOVS R4,R0
MOVS R5,R1
MOVS R6,R2
MOVS R7,R3
LDRB R8,[SP, #+24]
// 50 UART_ModeConfig(UARTx, Mode);
MOVS R1,R8
MOVS R0,R4
_BLF UART_ModeConfig,??UART_ModeConfig??rA
// 51 UART_BaudRateConfig(UARTx, BaudRate);
MOVS R1,R5
MOVS R0,R4
BL UART_BaudRateConfig
// 52 UART_ParityConfig(UARTx, Parity);
MOVS R1,R6
MOVS R0,R4
_BLF UART_ParityConfig,??UART_ParityConfig??rA
// 53 UART_StopBitsConfig(UARTx, StopBits);
MOVS R1,R7
MOVS R0,R4
_BLF UART_StopBitsConfig,??UART_StopBitsConfig??rA
// 54 }
POP {R4-R8,PC} ;; return
CFI EndBlock cfiBlock4
// 55
// 56
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -