📄 stm32f10x_exti.lst
字号:
###############################################################################
# #
# 30/Jul/2008 14:37:39 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION #
# Copyright 1999-2007 IAR Systems. All rights reserved. #
# #
# Cpu mode = thumb #
# Endian = little #
# Source file = E:\library\src\stm32f10x_exti.c #
# Command line = E:\library\src\stm32f10x_exti.c -D EMB_FLASH -lCN #
# E:\ELE\yten\pro\Debug\List\ -lb #
# E:\ELE\yten\pro\Debug\List\ -o #
# E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll #
# --no_inline --no_code_motion --no_tbaa --no_clustering #
# --no_scheduling --debug --endian little --cpu Cortex-M3 #
# -e --fpu None --dlib_config "C:\Program Files\IAR #
# Systems\Embedded Workbench 5.0 #
# Evaluation\ARM\INC\DLib_Config_Normal.h" -I #
# E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I #
# "C:\Program Files\IAR Systems\Embedded Workbench 5.0 #
# Evaluation\ARM\INC\" --section .text=.XML -On #
# List file = E:\ELE\yten\pro\Debug\List\stm32f10x_exti.lst #
# Object file = E:\ELE\yten\pro\Debug\Obj\stm32f10x_exti.o #
# #
# #
###############################################################################
E:\library\src\stm32f10x_exti.c
1 /******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
2 * File Name : stm32f10x_exti.c
3 * Author : MCD Application Team
4 * Version : V1.0
5 * Date : 10/08/2007
6 * Description : This file provides all the EXTI firmware functions.
7 ********************************************************************************
8 * THE PRESENT SOFTWARE 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 SOFTWARE 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 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
36 void EXTI_DeInit(void)
37 {
38 EXTI->IMR = 0x00000000;
\ EXTI_DeInit:
\ 00000000 .... LDR.N R0,??DataTable20 ;; 0x40010400
\ 00000002 0021 MOVS R1,#+0
\ 00000004 0160 STR R1,[R0, #+0]
39 EXTI->EMR = 0x00000000;
\ 00000006 0648 LDR.N R0,??EXTI_DeInit_0 ;; 0x40010404
\ 00000008 0021 MOVS R1,#+0
\ 0000000A 0160 STR R1,[R0, #+0]
40 EXTI->RTSR = 0x00000000;
\ 0000000C .... LDR.N R0,??DataTable11 ;; 0x40010408
\ 0000000E 0021 MOVS R1,#+0
\ 00000010 0160 STR R1,[R0, #+0]
41 EXTI->FTSR = 0x00000000;
\ 00000012 .... LDR.N R0,??DataTable13 ;; 0x4001040c
\ 00000014 0021 MOVS R1,#+0
\ 00000016 0160 STR R1,[R0, #+0]
42 EXTI->PR = 0x0007FFFF;
\ 00000018 .... LDR.N R0,??DataTable22 ;; 0x40010414
\ 0000001A 0249 LDR.N R1,??EXTI_DeInit_0+0x4 ;; 0x7ffff
\ 0000001C 0160 STR R1,[R0, #+0]
43 }
\ 0000001E 7047 BX LR ;; return
\ ??EXTI_DeInit_0:
\ 00000020 04040140 DC32 0x40010404
\ 00000024 FFFF0700 DC32 0x7ffff
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 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
55 void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)
56 {
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)
\ EXTI_Init:
\ 00000000 8179 LDRB R1,[R0, #+6]
\ 00000002 0029 CMP R1,#+0
\ 00000004 2CD0 BEQ.N ??EXTI_Init_0
64 {
65 *(u32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Mode)|= EXTI_InitStruct->EXTI_Line;
\ 00000006 0179 LDRB R1,[R0, #+4]
\ 00000008 .... LDR.N R2,??DataTable20 ;; 0x40010400
\ 0000000A 8958 LDR R1,[R1, R2]
\ 0000000C 0268 LDR R2,[R0, #+0]
\ 0000000E 0A43 ORRS R2,R2,R1
\ 00000010 0179 LDRB R1,[R0, #+4]
\ 00000012 .... LDR.N R3,??DataTable20 ;; 0x40010400
\ 00000014 CA50 STR R2,[R1, R3]
66
67 /* Clear Rising Falling edge configuration */
68 EXTI->RTSR &= ~EXTI_InitStruct->EXTI_Line;
\ 00000016 .... LDR.N R1,??DataTable11 ;; 0x40010408
\ 00000018 0968 LDR R1,[R1, #+0]
\ 0000001A 0268 LDR R2,[R0, #+0]
\ 0000001C 9143 BICS R1,R1,R2
\ 0000001E .... LDR.N R2,??DataTable11 ;; 0x40010408
\ 00000020 1160 STR R1,[R2, #+0]
69 EXTI->FTSR &= ~EXTI_InitStruct->EXTI_Line;
\ 00000022 .... LDR.N R1,??DataTable13 ;; 0x4001040c
\ 00000024 0968 LDR R1,[R1, #+0]
\ 00000026 0268 LDR R2,[R0, #+0]
\ 00000028 9143 BICS R1,R1,R2
\ 0000002A .... LDR.N R2,??DataTable13 ;; 0x4001040c
\ 0000002C 1160 STR R1,[R2, #+0]
70
71 /* Select the trigger for the selected external interrupts */
72 if (EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling)
\ 0000002E 4179 LDRB R1,[R0, #+5]
\ 00000030 1029 CMP R1,#+16
\ 00000032 0CD1 BNE.N ??EXTI_Init_1
73 {
74 /* Rising Falling edge */
75 EXTI->RTSR |= EXTI_InitStruct->EXTI_Line;
\ 00000034 .... LDR.N R1,??DataTable11 ;; 0x40010408
\ 00000036 0968 LDR R1,[R1, #+0]
\ 00000038 0268 LDR R2,[R0, #+0]
\ 0000003A 0A43 ORRS R2,R2,R1
\ 0000003C .... LDR.N R1,??DataTable11 ;; 0x40010408
\ 0000003E 0A60 STR R2,[R1, #+0]
76 EXTI->FTSR |= EXTI_InitStruct->EXTI_Line;
\ 00000040 .... LDR.N R1,??DataTable13 ;; 0x4001040c
\ 00000042 0968 LDR R1,[R1, #+0]
\ 00000044 0268 LDR R2,[R0, #+0]
\ 00000046 0A43 ORRS R2,R2,R1
\ 00000048 .... LDR.N R1,??DataTable13 ;; 0x4001040c
\ 0000004A 0A60 STR R2,[R1, #+0]
\ 0000004C 10E0 B.N ??EXTI_Init_2
77 }
78 else
79 {
80 *(u32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Trigger)|= EXTI_InitStruct->EXTI_Line;
\ ??EXTI_Init_1:
\ 0000004E 4179 LDRB R1,[R0, #+5]
\ 00000050 .... LDR.N R2,??DataTable20 ;; 0x40010400
\ 00000052 8958 LDR R1,[R1, R2]
\ 00000054 0268 LDR R2,[R0, #+0]
\ 00000056 0A43 ORRS R2,R2,R1
\ 00000058 4179 LDRB R1,[R0, #+5]
\ 0000005A .... LDR.N R3,??DataTable20 ;; 0x40010400
\ 0000005C CA50 STR R2,[R1, R3]
\ 0000005E 07E0 B.N ??EXTI_Init_2
81 }
82 }
83 else
84 {
85 /* Disable the selected external lines */
86 *(u32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Mode)&= ~EXTI_InitStruct->EXTI_Line;
\ ??EXTI_Init_0:
\ 00000060 0179 LDRB R1,[R0, #+4]
\ 00000062 .... LDR.N R2,??DataTable20 ;; 0x40010400
\ 00000064 8958 LDR R1,[R1, R2]
\ 00000066 0268 LDR R2,[R0, #+0]
\ 00000068 9143 BICS R1,R1,R2
\ 0000006A 0279 LDRB R2,[R0, #+4]
\ 0000006C .... LDR.N R3,??DataTable20 ;; 0x40010400
\ 0000006E D150 STR R1,[R2, R3]
87 }
88 }
\ ??EXTI_Init_2:
\ 00000070 7047 BX LR ;; return
89
90 /*******************************************************************************
91 * Function Name : EXTI_StructInit
92 * Description : Fills each EXTI_InitStruct member with its reset value.
93 * Input : - EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure
94 * which will be initialized.
95 * Output : None
96 * Return : None
97 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
98 void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct)
99 {
100 EXTI_InitStruct->EXTI_Line = EXTI_LineNone;
\ EXTI_StructInit:
\ 00000000 0021 MOVS R1,#+0
\ 00000002 0160 STR R1,[R0, #+0]
101 EXTI_InitStruct->EXTI_Mode = EXTI_Mode_Interrupt;
\ 00000004 0021 MOVS R1,#+0
\ 00000006 0171 STRB R1,[R0, #+4]
102 EXTI_InitStruct->EXTI_Trigger = EXTI_Trigger_Falling;
\ 00000008 0C21 MOVS R1,#+12
\ 0000000A 4171 STRB R1,[R0, #+5]
103 EXTI_InitStruct->EXTI_LineCmd = DISABLE;
\ 0000000C 0021 MOVS R1,#+0
\ 0000000E 8171 STRB R1,[R0, #+6]
104 }
\ 00000010 7047 BX LR ;; return
105
106 /*******************************************************************************
107 * Function Name : EXTI_GenerateSWInterrupt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -