📄 stm32f10x_exti.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART 26/Dec/2008 18:22:06 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = thumb #
# Endian = little #
# Stack alignment = 4 #
# Source file = F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_e #
# xti.c #
# Command line = F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_e #
# xti.c -lCN F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM #
# 3210E-EVAL\IAR\OS-Probe\Flash\List\ -o #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\Obj\ -z6 --no_unroll --no_inline #
# --no_tbaa --no_scheduling --debug --cpu_mode thumb #
# --endian little --cpu cortex-M3 --stack_align 4 -e #
# --fpu None --dlib_config "E:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Kickstart\arm\LIB\dl7mptnnl8n.h" -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ #
# ST\STM3210E-EVAL\IAR\OS-Probe\..\BSP\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\CPU\ST\STM32\inc\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-CPU\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-CPU\ARM-Cortex-M3\IAR #
# \ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E- #
# EVAL\IAR\OS-Probe\..\..\..\..\..\uC-LCD\Source\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-LIB\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uCOS-II\Ports\ARM-Cortex #
# -M3\Generic\IAR\ -I F:\PROJECT\STM32_UCOSII\EvalBoar #
# ds\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uCOS #
# -II\Source\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST #
# \STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uC-Probe\ #
# Target\Communication\Generic\RS-232\Source\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
# ation\Generic\RS-232\Ports\ST\STM32\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
# ation\Generic\Source\ -I F:\PROJECT\STM32_UCOSII\Eva #
# lBoards\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\.. #
# \uC-Probe\Target\Plugins\uCOS-II\ -I "E:\Program #
# Files\IAR Systems\Embedded Workbench 4.0 #
# Kickstart\arm\INC\" #
# List file = F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\List\stm32f10x_exti.lst #
# Object file = F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\Obj\stm32f10x_exti.r79 #
# #
# #
##############################################################################
F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_exti.c
1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
2 * File Name : stm32f10x_exti.c
3 * Author : MCD Application Team
4 * Version : V2.0
5 * Date : 05/23/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 SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
14 * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED
15 * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
16 *******************************************************************************/
17
18 /* Includes ------------------------------------------------------------------*/
19 #include "stm32f10x_exti.h"
20
21 /* Private typedef -----------------------------------------------------------*/
22 /* Private define ------------------------------------------------------------*/
23 #define EXTI_LineNone ((u32)0x00000) /* No interrupt selected */
24
25 /* Private macro -------------------------------------------------------------*/
26 /* Private variables ---------------------------------------------------------*/
27 /* Private function prototypes -----------------------------------------------*/
28 /* Private functions ---------------------------------------------------------*/
29
30 /*******************************************************************************
31 * Function Name : EXTI_DeInit
32 * Description : Deinitializes the EXTI peripheral registers to their default
33 * reset values.
34 * Input : None
35 * Output : None
36 * Return : None
37 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
38 void EXTI_DeInit(void)
39 {
40 EXTI->IMR = 0x00000000;
\ EXTI_DeInit:
\ 00000000 0020 MOVS R0,#+0
\ 00000002 .... LDR.N R1,??DataTable5 ;; 0x40010400
\ 00000004 0860 STR R0,[R1, #+0]
41 EXTI->EMR = 0x00000000;
\ 00000006 091D ADDS R1,R1,#+4
\ 00000008 0860 STR R0,[R1, #+0]
42 EXTI->RTSR = 0x00000000;
\ 0000000A 091D ADDS R1,R1,#+4
\ 0000000C 0860 STR R0,[R1, #+0]
43 EXTI->FTSR = 0x00000000;
\ 0000000E 091D ADDS R1,R1,#+4
\ 00000010 0860 STR R0,[R1, #+0]
44 EXTI->PR = 0x0007FFFF;
\ 00000012 .... LDR.N R0,??DataTable7 ;; 0x40010414
\ 00000014 0149 LDR.N R1,??EXTI_DeInit_0 ;; 0x7ffff
\ 00000016 0160 STR R1,[R0, #+0]
45 }
\ 00000018 7047 BX LR ;; return
\ 0000001A 00BF Nop
\ ??EXTI_DeInit_0:
\ 0000001C FFFF0700 DC32 0x7ffff
46
47 /*******************************************************************************
48 * Function Name : EXTI_Init
49 * Description : Initializes the EXTI peripheral according to the specified
50 * parameters in the EXTI_InitStruct.
51 * Input : - EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure
52 * that contains the configuration information for the EXTI
53 * peripheral.
54 * Output : None
55 * Return : None
56 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
57 void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)
58 {
\ EXTI_Init:
\ 00000000 30B5 PUSH {R4,R5,LR}
59 /* Check the parameters */
60 assert_param(IS_EXTI_MODE(EXTI_InitStruct->EXTI_Mode));
61 assert_param(IS_EXTI_TRIGGER(EXTI_InitStruct->EXTI_Trigger));
62 assert_param(IS_EXTI_LINE(EXTI_InitStruct->EXTI_Line));
63 assert_param(IS_FUNCTIONAL_STATE(EXTI_InitStruct->EXTI_LineCmd));
64
65 if (EXTI_InitStruct->EXTI_LineCmd != DISABLE)
\ 00000002 .... LDR.N R1,??DataTable5 ;; 0x40010400
\ 00000004 8279 LDRB R2,[R0, #+6]
\ 00000006 002A CMP R2,#+0
\ 00000008 2CD0 BEQ.N ??EXTI_Init_0
66 {
67 /* Clear EXTI line configuration */
68 EXTI->IMR &= ~EXTI_InitStruct->EXTI_Line;
\ 0000000A 0A46 MOV R2,R1
\ 0000000C 1368 LDR R3,[R2, #+0]
\ 0000000E 0468 LDR R4,[R0, #+0]
\ 00000010 A343 BICS R3,R3,R4
\ 00000012 1360 STR R3,[R2, #+0]
69 EXTI->EMR &= ~EXTI_InitStruct->EXTI_Line;
\ 00000014 121D ADDS R2,R2,#+4
\ 00000016 1368 LDR R3,[R2, #+0]
\ 00000018 0468 LDR R4,[R0, #+0]
\ 0000001A A343 BICS R3,R3,R4
\ 0000001C 1360 STR R3,[R2, #+0]
70
71 *(vu32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Mode)|= EXTI_InitStruct->EXTI_Line;
\ 0000001E 0279 LDRB R2,[R0, #+4]
\ 00000020 1346 MOV R3,R2
\ 00000022 5B58 LDR R3,[R3, R1]
\ 00000024 0468 LDR R4,[R0, #+0]
\ 00000026 1C43 ORRS R4,R4,R3
\ 00000028 5450 STR R4,[R2, R1]
72
73 /* Clear Rising Falling edge configuration */
74 EXTI->RTSR &= ~EXTI_InitStruct->EXTI_Line;
\ 0000002A 124A LDR.N R2,??EXTI_Init_1 ;; 0x40010408
\ 0000002C 1368 LDR R3,[R2, #+0]
\ 0000002E 0468 LDR R4,[R0, #+0]
\ 00000030 A343 BICS R3,R3,R4
\ 00000032 1360 STR R3,[R2, #+0]
75 EXTI->FTSR &= ~EXTI_InitStruct->EXTI_Line;
\ 00000034 104B LDR.N R3,??EXTI_Init_1+0x4 ;; 0x4001040c
\ 00000036 1C68 LDR R4,[R3, #+0]
\ 00000038 0568 LDR R5,[R0, #+0]
\ 0000003A AC43 BICS R4,R4,R5
\ 0000003C 1C60 STR R4,[R3, #+0]
76
77 /* Select the trigger for the selected external interrupts */
78 if (EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling)
\ 0000003E 4479 LDRB R4,[R0, #+5]
\ 00000040 102C CMP R4,#+16
\ 00000042 08D1 BNE.N ??EXTI_Init_2
79 {
80 /* Rising Falling edge */
81 EXTI->RTSR |= EXTI_InitStruct->EXTI_Line;
\ 00000044 1168 LDR R1,[R2, #+0]
\ 00000046 0468 LDR R4,[R0, #+0]
\ 00000048 0C43 ORRS R4,R4,R1
\ 0000004A 1460 STR R4,[R2, #+0]
82 EXTI->FTSR |= EXTI_InitStruct->EXTI_Line;
\ 0000004C 1968 LDR R1,[R3, #+0]
\ 0000004E 0068 LDR R0,[R0, #+0]
\ 00000050 0843 ORRS R0,R0,R1
\ 00000052 1860 STR R0,[R3, #+0]
\ 00000054 30BD POP {R4,R5,PC}
83 }
84 else
85 {
86 *(vu32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Trigger)|= EXTI_InitStruct->EXTI_Line;
\ ??EXTI_Init_2:
\ 00000056 2246 MOV R2,R4
\ 00000058 1346 MOV R3,R2
\ 0000005A 5B58 LDR R3,[R3, R1]
\ 0000005C 0068 LDR R0,[R0, #+0]
\ 0000005E 1843 ORRS R0,R0,R3
\ 00000060 5050 STR R0,[R2, R1]
\ 00000062 30BD POP {R4,R5,PC}
87 }
88 }
89 else
90 {
91 /* Disable the selected external lines */
92 *(vu32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Mode)&= ~EXTI_InitStruct->EXTI_Line;
\ ??EXTI_Init_0:
\ 00000064 0279 LDRB R2,[R0, #+4]
\ 00000066 1346 MOV R3,R2
\ 00000068 5B58 LDR R3,[R3, R1]
\ 0000006A 0068 LDR R0,[R0, #+0]
\ 0000006C 8343 BICS R3,R3,R0
\ 0000006E 5350 STR R3,[R2, R1]
93 }
94 }
\ 00000070 30BD POP {R4,R5,PC} ;; return
\ 00000072 00BF Nop
\ ??EXTI_Init_1:
\ 00000074 08040140 DC32 0x40010408
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -