?? stm32f10x_usart.s79
字號:
//////////////////////////////////////////////////////////////////////////////
// /
// IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 10/Nov/2008 11:44:05 /
// Copyright 1999-2005 IAR Systems. All rights reserved. /
// /
// Cpu mode = thumb /
// Endian = little /
// Stack alignment = 4 /
// Source file = D:\資料\ST\ST\usb\FWLib\library\src\stm32f10x_usart /
// .c /
// Command line = D:\資料\ST\ST\usb\FWLib\library\src\stm32f10x_usart /
// .c -D VECT_TAB_FLASH -D USE_STM3210E_EVAL -lA /
// D:\資料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
// ject\EWARMv4\STM3210E-EVAL\List\ -o /
// D:\資料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
// ject\EWARMv4\STM3210E-EVAL\Obj\ -z9 --debug /
// --cpu_mode thumb --endian little --cpu cortex-M3 /
// --stack_align 4 --require_prototypes --fpu None /
// --dlib_config "C:\Program Files\IAR /
// Systems\Embedded Workbench 4.0 /
// Evaluation\arm\LIB\dl7mptnnl8f.h" -I /
// D:\資料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
// ject\EWARMv4\..\..\include\ -I /
// D:\資料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
// ject\EWARMv4\..\..\..\..\library\inc\ -I /
// D:\資料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
// ject\EWARMv4\..\..\..\..\..\FWLib\library\inc\ -I /
// "C:\Program Files\IAR Systems\Embedded Workbench /
// 4.0 Evaluation\arm\INC\" --inline_threshold=2 /
// List file = D:\資料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
// ject\EWARMv4\STM3210E-EVAL\List\stm32f10x_usart.s79 /
// /
// /
//////////////////////////////////////////////////////////////////////////////
NAME stm32f10x_usart
RTMODEL "StackAlign4", "USED"
RTMODEL "__cpu_mode", "__pcs__thumb"
RTMODEL "__data_model", "absolute"
RTMODEL "__endian", "little"
RTMODEL "__rt_version", "6"
RSEG CSTACK:DATA:NOROOT(2)
??DataTable0 EQU 0
??DataTable2 EQU 0
??DataTable3 EQU 0
MULTWEAK ??RCC_APB1PeriphResetCmd??rT
MULTWEAK ??RCC_APB2PeriphResetCmd??rT
MULTWEAK ??RCC_GetClocksFreq??rT
PUBLIC USART_ClearFlag
FUNCTION USART_ClearFlag,0203H
PUBLIC USART_ClearITPendingBit
FUNCTION USART_ClearITPendingBit,0203H
PUBLIC USART_ClockInit
FUNCTION USART_ClockInit,0203H
PUBLIC USART_ClockStructInit
FUNCTION USART_ClockStructInit,0203H
PUBLIC USART_Cmd
FUNCTION USART_Cmd,0203H
PUBLIC USART_DMACmd
FUNCTION USART_DMACmd,0203H
PUBLIC USART_DeInit
FUNCTION USART_DeInit,0203H
LOCFRAME CSTACK, 4, STACK
PUBLIC USART_GetFlagStatus
FUNCTION USART_GetFlagStatus,0203H
LOCFRAME CSTACK, 4, STACK
PUBLIC USART_GetITStatus
FUNCTION USART_GetITStatus,0203H
LOCFRAME CSTACK, 8, STACK
PUBLIC USART_HalfDuplexCmd
FUNCTION USART_HalfDuplexCmd,0203H
PUBLIC USART_ITConfig
FUNCTION USART_ITConfig,0203H
LOCFRAME CSTACK, 8, STACK
PUBLIC USART_Init
FUNCTION USART_Init,0203H
LOCFRAME CSTACK, 32, STACK
PUBLIC USART_IrDACmd
FUNCTION USART_IrDACmd,0203H
PUBLIC USART_IrDAConfig
FUNCTION USART_IrDAConfig,0203H
PUBLIC USART_LINBreakDetectLengthConfig
FUNCTION USART_LINBreakDetectLengthConfig,0203H
PUBLIC USART_LINCmd
FUNCTION USART_LINCmd,0203H
PUBLIC USART_ReceiveData
FUNCTION USART_ReceiveData,0203H
PUBLIC USART_ReceiverWakeUpCmd
FUNCTION USART_ReceiverWakeUpCmd,0203H
PUBLIC USART_SendBreak
FUNCTION USART_SendBreak,0203H
PUBLIC USART_SendData
FUNCTION USART_SendData,0203H
PUBLIC USART_SetAddress
FUNCTION USART_SetAddress,0203H
PUBLIC USART_SetGuardTime
FUNCTION USART_SetGuardTime,0203H
PUBLIC USART_SetPrescaler
FUNCTION USART_SetPrescaler,0203H
PUBLIC USART_SmartCardCmd
FUNCTION USART_SmartCardCmd,0203H
PUBLIC USART_SmartCardNACKCmd
FUNCTION USART_SmartCardNACKCmd,0203H
PUBLIC USART_StructInit
FUNCTION USART_StructInit,0203H
PUBLIC USART_WakeUpConfig
FUNCTION USART_WakeUpConfig,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, R13:32, R14:32
CFI VirtualResource ?RET:32
CFI EndNames cfiNames0
CFI Common cfiCommon0 Using cfiNames0
CFI CodeAlign 2
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 R14 Undefined
CFI ?RET R14
CFI EndCommon cfiCommon0
RCC_APB1PeriphResetCmd SYMBOL "RCC_APB1PeriphResetCmd"
RCC_APB2PeriphResetCmd SYMBOL "RCC_APB2PeriphResetCmd"
RCC_GetClocksFreq SYMBOL "RCC_GetClocksFreq"
??RCC_APB1PeriphResetCmd??rT SYMBOL "??rT", RCC_APB1PeriphResetCmd
??RCC_APB2PeriphResetCmd??rT SYMBOL "??rT", RCC_APB2PeriphResetCmd
??RCC_GetClocksFreq??rT SYMBOL "??rT", RCC_GetClocksFreq
EXTERN RCC_APB1PeriphResetCmd
FUNCTION RCC_APB1PeriphResetCmd,0202H
EXTERN RCC_APB2PeriphResetCmd
FUNCTION RCC_APB2PeriphResetCmd,0202H
EXTERN RCC_GetClocksFreq
FUNCTION RCC_GetClocksFreq,0202H
// D:\資料\ST\ST\usb\FWLib\library\src\stm32f10x_usart.c
// 1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
// 2 * File Name : stm32f10x_usart.c
// 3 * Author : MCD Application Team
// 4 * Version : V2.0.1
// 5 * Date : 06/13/2008
// 6 * Description : This file provides all the USART firmware functions.
// 7 ********************************************************************************
// 8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
// 9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
// 10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
// 11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
// 12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
// 13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
// 14 *******************************************************************************/
// 15
// 16 /* Includes ------------------------------------------------------------------*/
// 17 #include "stm32f10x_usart.h"
// 18 #include "stm32f10x_rcc.h"
// 19
// 20 /* Private typedef -----------------------------------------------------------*/
// 21 /* Private define ------------------------------------------------------------*/
// 22 /* USART UE Mask */
// 23 #define CR1_UE_Set ((u16)0x2000) /* USART Enable Mask */
// 24 #define CR1_UE_Reset ((u16)0xDFFF) /* USART Disable Mask */
// 25
// 26 /* USART WakeUp Method */
// 27 #define CR1_WAKE_Mask ((u16)0xF7FF) /* USART WakeUp Method Mask */
// 28
// 29 /* USART RWU Mask */
// 30 #define CR1_RWU_Set ((u16)0x0002) /* USART mute mode Enable Mask */
// 31 #define CR1_RWU_Reset ((u16)0xFFFD) /* USART mute mode Enable Mask */
// 32
// 33 #define CR1_SBK_Set ((u16)0x0001) /* USART Break Character send Mask */
// 34
// 35 #define CR1_CLEAR_Mask ((u16)0xE9F3) /* USART CR1 Mask */
// 36
// 37 #define CR2_Address_Mask ((u16)0xFFF0) /* USART address Mask */
// 38
// 39 /* USART LIN Mask */
// 40 #define CR2_LINEN_Set ((u16)0x4000) /* USART LIN Enable Mask */
// 41 #define CR2_LINEN_Reset ((u16)0xBFFF) /* USART LIN Disable Mask */
// 42
// 43 /* USART LIN Break detection */
// 44 #define CR2_LBDL_Mask ((u16)0xFFDF) /* USART LIN Break detection Mask */
// 45
// 46 #define CR2_STOP_CLEAR_Mask ((u16)0xCFFF) /* USART CR2 STOP Bits Mask */
// 47 #define CR2_CLOCK_CLEAR_Mask ((u16)0xF0FF) /* USART CR2 Clock Mask */
// 48
// 49 /* USART SC Mask */
// 50 #define CR3_SCEN_Set ((u16)0x0020) /* USART SC Enable Mask */
// 51 #define CR3_SCEN_Reset ((u16)0xFFDF) /* USART SC Disable Mask */
// 52
// 53 /* USART SC NACK Mask */
// 54 #define CR3_NACK_Set ((u16)0x0010) /* USART SC NACK Enable Mask */
// 55 #define CR3_NACK_Reset ((u16)0xFFEF) /* USART SC NACK Disable Mask */
// 56
// 57 /* USART Half-Duplex Mask */
// 58 #define CR3_HDSEL_Set ((u16)0x0008) /* USART Half-Duplex Enable Mask */
// 59 #define CR3_HDSEL_Reset ((u16)0xFFF7) /* USART Half-Duplex Disable Mask */
// 60
// 61 /* USART IrDA Mask */
// 62 #define CR3_IRLP_Mask ((u16)0xFFFB) /* USART IrDA LowPower mode Mask */
// 63
// 64 #define CR3_CLEAR_Mask ((u16)0xFCFF) /* USART CR3 Mask */
// 65
// 66 /* USART IrDA Mask */
// 67 #define CR3_IREN_Set ((u16)0x0002) /* USART IrDA Enable Mask */
// 68 #define CR3_IREN_Reset ((u16)0xFFFD) /* USART IrDA Disable Mask */
// 69
// 70 #define GTPR_LSB_Mask ((u16)0x00FF) /* Guard Time Register LSB Mask */
// 71 #define GTPR_MSB_Mask ((u16)0xFF00) /* Guard Time Register MSB Mask */
// 72
// 73 #define IT_Mask ((u16)0x001F) /* USART Interrupt Mask */
// 74
// 75 /* Private macro -------------------------------------------------------------*/
// 76 /* Private variables ---------------------------------------------------------*/
// 77 /* Private function prototypes -----------------------------------------------*/
// 78 /* Private functions ---------------------------------------------------------*/
// 79
// 80 /*******************************************************************************
// 81 * Function Name : USART_DeInit
// 82 * Description : Deinitializes the USARTx peripheral registers to their
// 83 * default reset values.
// 84 * Input : - USARTx: Select the USART or the UART peripheral.
// 85 * This parameter can be one of the following values:
// 86 * - USART1, USART2, USART3, UART4 or UART5.
// 87 * Output : None
// 88 * Return : None
// 89 *******************************************************************************/
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock0 Using cfiCommon0
CFI Function USART_DeInit
THUMB
// 90 void USART_DeInit(USART_TypeDef* USARTx)
// 91 {
// 92 /* Check the parameters */
// 93 assert_param(IS_USART_ALL_PERIPH(USARTx));
// 94
// 95 switch (*(u32*)&USARTx)
USART_DeInit:
LDR.N R1,??USART_DeInit_0 ;; 0x40004400
PUSH {LR}
CFI ?RET Frame(CFA, -4)
CFI CFA R13+4
CMP R0,R1
BEQ.N ??USART_DeInit_1
LDR.N R1,??USART_DeInit_0+0x4 ;; 0x40004800
CMP R0,R1
BEQ.N ??USART_DeInit_2
LDR.N R1,??USART_DeInit_0+0x8 ;; 0x40004c00
CMP R0,R1
BEQ.N ??USART_DeInit_3
LDR.N R1,??USART_DeInit_0+0xC ;; 0x40005000
CMP R0,R1
BEQ.N ??USART_DeInit_4
LDR.N R1,??DataTable1 ;; 0x40013800
CMP R0,R1
BNE.N ??USART_DeInit_5
// 96 {
// 97 case USART1_BASE:
// 98 RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE);
MOVS R1,#+1
LSLS R0,R1,#+14
_BLF RCC_APB2PeriphResetCmd,??RCC_APB2PeriphResetCmd??rT
// 99 RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE);
MOVS R1,#+0
MOVS R0,#+16384
_BLF RCC_APB2PeriphResetCmd,??RCC_APB2PeriphResetCmd??rT
POP {PC}
// 100 break;
// 101
// 102 case USART2_BASE:
// 103 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, ENABLE);
??USART_DeInit_1:
MOVS R1,#+1
LSLS R0,R1,#+17
_BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
// 104 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, DISABLE);
MOVS R1,#+0
MOVS R0,#+131072
B.N ??USART_DeInit_6
// 105 break;
// 106
// 107 case USART3_BASE:
// 108 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, ENABLE);
??USART_DeInit_2:
MOVS R1,#+1
LSLS R0,R1,#+18
_BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
// 109 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, DISABLE);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -