?? uart.lst
字號:
##############################################################################
# #
# 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 + -