?? stm32f10x_exti.s79
字號:
//////////////////////////////////////////////////////////////////////////////
// /
// IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 10/Nov/2008 11:44:02 /
// 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_exti. /
// c /
// Command line = D:\資料\ST\ST\usb\FWLib\library\src\stm32f10x_exti. /
// 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_exti.s79 /
// /
// /
//////////////////////////////////////////////////////////////////////////////
NAME stm32f10x_exti
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
??DataTable1 EQU 0
??DataTable2 EQU 0
??DataTable3 EQU 0
??DataTable5 EQU 0
PUBLIC EXTI_ClearFlag
FUNCTION EXTI_ClearFlag,0203H
PUBLIC EXTI_ClearITPendingBit
FUNCTION EXTI_ClearITPendingBit,0203H
PUBLIC EXTI_DeInit
FUNCTION EXTI_DeInit,0203H
PUBLIC EXTI_GenerateSWInterrupt
FUNCTION EXTI_GenerateSWInterrupt,0203H
PUBLIC EXTI_GetFlagStatus
FUNCTION EXTI_GetFlagStatus,0203H
PUBLIC EXTI_GetITStatus
FUNCTION EXTI_GetITStatus,0203H
PUBLIC EXTI_Init
FUNCTION EXTI_Init,0203H
LOCFRAME CSTACK, 12, STACK
PUBLIC EXTI_StructInit
FUNCTION EXTI_StructInit,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
// D:\資料\ST\ST\usb\FWLib\library\src\stm32f10x_exti.c
// 1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
// 2 * File Name : stm32f10x_exti.c
// 3 * Author : MCD Application Team
// 4 * Version : V2.0.1
// 5 * Date : 06/13/2008
// 6 * Description : This file provides all the EXTI 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_exti.h"
// 18
// 19 /* Private typedef -----------------------------------------------------------*/
// 20 /* Private define ------------------------------------------------------------*/
// 21 #define EXTI_LineNone ((u32)0x00000) /* No interrupt selected */
// 22
// 23 /* Private macro -------------------------------------------------------------*/
// 24 /* Private variables ---------------------------------------------------------*/
// 25 /* Private function prototypes -----------------------------------------------*/
// 26 /* Private functions ---------------------------------------------------------*/
// 27
// 28 /*******************************************************************************
// 29 * Function Name : EXTI_DeInit
// 30 * Description : Deinitializes the EXTI peripheral registers to their default
// 31 * reset values.
// 32 * Input : None
// 33 * Output : None
// 34 * Return : None
// 35 *******************************************************************************/
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock0 Using cfiCommon0
CFI Function EXTI_DeInit
THUMB
// 36 void EXTI_DeInit(void)
// 37 {
// 38 EXTI->IMR = 0x00000000;
EXTI_DeInit:
LDR.N R1,??DataTable4 ;; 0x40010400
MOVS R0,#+0
STR R0,[R1], #+4
// 39 EXTI->EMR = 0x00000000;
STR R0,[R1], #+4
// 40 EXTI->RTSR = 0x00000000;
STR R0,[R1], #+4
// 41 EXTI->FTSR = 0x00000000;
STR R0,[R1, #+0]
// 42 EXTI->PR = 0x0007FFFF;
LDR.N R0,??DataTable6 ;; 0x40010414
LDR.N R1,??EXTI_DeInit_0 ;; 0x7ffff
STR R1,[R0, #+0]
// 43 }
BX LR ;; return
Nop
DATA
??EXTI_DeInit_0:
DC32 0x7ffff
CFI EndBlock cfiBlock0
// 44
// 45 /*******************************************************************************
// 46 * Function Name : EXTI_Init
// 47 * Description : Initializes the EXTI peripheral according to the specified
// 48 * parameters in the EXTI_InitStruct.
// 49 * Input : - EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure
// 50 * that contains the configuration information for the EXTI
// 51 * peripheral.
// 52 * Output : None
// 53 * Return : None
// 54 *******************************************************************************/
RSEG CODE:CODE:NOROOT(2)
CFI Block cfiBlock1 Using cfiCommon0
CFI Function EXTI_Init
THUMB
// 55 void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)
// 56 {
EXTI_Init:
PUSH {R4,R5,LR}
CFI ?RET Frame(CFA, -4)
CFI R5 Frame(CFA, -8)
CFI R4 Frame(CFA, -12)
CFI CFA R13+12
// 57 /* Check the parameters */
// 58 assert_param(IS_EXTI_MODE(EXTI_InitStruct->EXTI_Mode));
// 59 assert_param(IS_EXTI_TRIGGER(EXTI_InitStruct->EXTI_Trigger));
// 60 assert_param(IS_EXTI_LINE(EXTI_InitStruct->EXTI_Line));
// 61 assert_param(IS_FUNCTIONAL_STATE(EXTI_InitStruct->EXTI_LineCmd));
// 62
// 63 if (EXTI_InitStruct->EXTI_LineCmd != DISABLE)
LDR R1,[R0, #+0]
LDRB R3,[R0, #+6]
MVNS R2,R1
LDR.N R1,??DataTable4 ;; 0x40010400
CBZ R3,??EXTI_Init_0
// 64 {
// 65 /* Clear EXTI line configuration */
// 66 EXTI->IMR &= ~EXTI_InitStruct->EXTI_Line;
LDR R4,[R1, #+0]
ANDS R2,R2,R4
STR R2,[R1, #+0]
// 67 EXTI->EMR &= ~EXTI_InitStruct->EXTI_Line;
LDR.N R2,??EXTI_Init_1 ;; 0x40010404
LDR R3,[R2, #+0]
LDR R4,[R0, #+0]
BICS R3,R3,R4
STR R3,[R2, #+0]
// 68
// 69 *(vu32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Mode)|= EXTI_InitStruct->EXTI_Line;
LDRB R2,[R0, #+4]
LDR R3,[R2, R1]
LDR R4,[R0, #+0]
ORRS R4,R4,R3
STR R4,[R2, R1]
// 70
// 71 /* Clear Rising Falling edge configuration */
// 72 EXTI->RTSR &= ~EXTI_InitStruct->EXTI_Line;
LDR.N R2,??EXTI_Init_1+0x4 ;; 0x40010408
LDR R3,[R2, #+0]
LDR R4,[R0, #+0]
BICS R3,R3,R4
STR R3,[R2, #+0]
// 73 EXTI->FTSR &= ~EXTI_InitStruct->EXTI_Line;
LDR.N R3,??EXTI_Init_1+0x8 ;; 0x4001040c
LDR R4,[R3, #+0]
LDR R5,[R0, #+0]
BICS R4,R4,R5
STR R4,[R3, #+0]
// 74
// 75 /* Select the trigger for the selected external interrupts */
// 76 if (EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling)
LDRB R4,[R0, #+5]
CMP R4,#+16
BNE.N ??EXTI_Init_2
// 77 {
// 78 /* Rising Falling edge */
// 79 EXTI->RTSR |= EXTI_InitStruct->EXTI_Line;
LDR R1,[R2, #+0]
LDR R4,[R0, #+0]
ORRS R4,R4,R1
STR R4,[R2, #+0]
// 80 EXTI->FTSR |= EXTI_InitStruct->EXTI_Line;
LDR R1,[R3, #+0]
LDR R0,[R0, #+0]
ORRS R0,R0,R1
STR R0,[R3, #+0]
POP {R4,R5,PC}
// 81 }
// 82 else
// 83 {
// 84 *(vu32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Trigger)|= EXTI_InitStruct->EXTI_Line;
??EXTI_Init_2:
ADDS R1,R4,R1
LDR R2,[R1, #+0]
LDR R0,[R0, #+0]
ORRS R0,R0,R2
STR R0,[R1, #+0]
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -