?? stm32f10x_exti.txt
字號:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 914] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\stm32f10x_exti.o --depend=.\rvmdk\stm32f10x_exti.d --device=DARMSTM -O1 -Otime -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\arm-cortex-m3\Generic\RealView -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\CPU\ST\STM32\inc -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\Arm-Cortex-M3\RealView -I..\..\..\..\..\uC-LIB -I..\..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Ports\ST\STM32 -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -ID:\Keil\ARM\INC\ST\STM32F10x ..\..\..\..\..\CPU\ST\STM32\src\stm32f10x_exti.c]
THUMB
AREA ||.text||, CODE, READONLY, ALIGN=2
EXTI_DeInit PROC
;;;42 {
;;;43 EXTI->IMR = 0x00000000;
000000 4835 LDR r0,|L1.216|
000002 2100 MOVS r1,#0
000004 6001 STR r1,[r0,#0]
;;;44 EXTI->EMR = 0x00000000;
000006 6041 STR r1,[r0,#4]
;;;45 EXTI->RTSR = 0x00000000;
000008 6081 STR r1,[r0,#8]
;;;46 EXTI->FTSR = 0x00000000;
00000a 60c1 STR r1,[r0,#0xc]
;;;47 EXTI->PR = 0x0007FFFF;
00000c 4933 LDR r1,|L1.220|
00000e 6141 STR r1,[r0,#0x14]
;;;48 }
000010 4770 BX lr
;;;49
ENDP
EXTI_Init PROC
;;;67
;;;68 if (EXTI_InitStruct->EXTI_LineCmd != DISABLE)
000012 7901 LDRB r1,[r0,#4]
000014 f890f890 LDRB r12,[r0,#6]
000018 f101f101 ADD r2,r1,#0x40000000
00001c f502f502 ADD r2,r2,#0x10000
000020 f8d2f8d2 LDR r1,[r2,#0x400]
000024 6803 LDR r3,[r0,#0]
000026 f1bcf1bc CMP r12,#0
00002a d02a BEQ |L1.130|
;;;69 {
;;;70 *(u32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Mode)|= EXTI_InitStruct->EXTI_Line;
00002c 4319 ORRS r1,r1,r3
00002e f8c2f8c2 STR r1,[r2,#0x400]
;;;71
;;;72 /* Clear Rising Falling edge configuration */
;;;73 EXTI->RTSR &= ~EXTI_InitStruct->EXTI_Line;
000032 4a2b LDR r2,|L1.224|
000034 f8d2f8d2 LDR r1,[r2,#0x408]
000038 6803 LDR r3,[r0,#0]
00003a 4399 BICS r1,r1,r3
00003c f8c2f8c2 STR r1,[r2,#0x408]
;;;74 EXTI->FTSR &= ~EXTI_InitStruct->EXTI_Line;
000040 f8d2f8d2 LDR r1,[r2,#0x40c]
000044 6803 LDR r3,[r0,#0]
000046 4399 BICS r1,r1,r3
000048 f8c2f8c2 STR r1,[r2,#0x40c]
;;;75
;;;76 /* Select the trigger for the selected external interrupts */
;;;77 if (EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling)
00004c 7941 LDRB r1,[r0,#5]
00004e 2910 CMP r1,#0x10
000050 d10c BNE |L1.108|
;;;78 {
;;;79 /* Rising Falling edge */
;;;80 EXTI->RTSR |= EXTI_InitStruct->EXTI_Line;
000052 f8d2f8d2 LDR r1,[r2,#0x408]
000056 6803 LDR r3,[r0,#0]
000058 4319 ORRS r1,r1,r3
00005a f8c2f8c2 STR r1,[r2,#0x408]
;;;81 EXTI->FTSR |= EXTI_InitStruct->EXTI_Line;
00005e f8d2f8d2 LDR r1,[r2,#0x40c]
000062 6800 LDR r0,[r0,#0]
000064 4308 ORRS r0,r0,r1
000066 f8c2f8c2 STR r0,[r2,#0x40c]
;;;82 }
;;;83 else
;;;84 {
;;;85 *(u32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Trigger)|= EXTI_InitStruct->EXTI_Line;
;;;86 }
;;;87 }
;;;88 else
;;;89 {
;;;90 /* Disable the selected external lines */
;;;91 *(u32 *)(EXTI_BASE + (u32)EXTI_InitStruct->EXTI_Mode)&= ~EXTI_InitStruct->EXTI_Line;
;;;92 }
;;;93 }
00006a 4770 BX lr
|L1.108|
00006c f101f101 ADD r1,r1,#0x40000000
000070 f501f501 ADD r1,r1,#0x10000
000074 f8d1f8d1 LDR r2,[r1,#0x400]
000078 6800 LDR r0,[r0,#0]
00007a 4310 ORRS r0,r0,r2
00007c f8c1f8c1 STR r0,[r1,#0x400]
000080 4770 BX lr
|L1.130|
000082 ea21ea21 BIC r0,r1,r3
000086 f8c2f8c2 STR r0,[r2,#0x400]
00008a 4770 BX lr
;;;94
ENDP
EXTI_StructInit PROC
;;;104 {
;;;105 EXTI_InitStruct->EXTI_Line = EXTI_LineNone;
00008c 2100 MOVS r1,#0
00008e 6001 STR r1,[r0,#0]
;;;106 EXTI_InitStruct->EXTI_Mode = EXTI_Mode_Interrupt;
000090 7101 STRB r1,[r0,#4]
;;;107 EXTI_InitStruct->EXTI_Trigger = EXTI_Trigger_Falling;
000092 220c MOVS r2,#0xc
000094 7142 STRB r2,[r0,#5]
;;;108 EXTI_InitStruct->EXTI_LineCmd = DISABLE;
000096 7181 STRB r1,[r0,#6]
;;;109 }
000098 4770 BX lr
;;;110
ENDP
EXTI_GenerateSWInterrupt PROC
;;;125
;;;126 EXTI->SWIER |= EXTI_Line;
00009a 4912 LDR r1,|L1.228|
00009c 680a LDR r2,[r1,#0]
00009e 4310 ORRS r0,r0,r2
0000a0 6008 STR r0,[r1,#0]
;;;127 }
0000a2 4770 BX lr
;;;128
ENDP
EXTI_GetFlagStatus PROC
;;;138 FlagStatus EXTI_GetFlagStatus(u32 EXTI_Line)
;;;139 {
0000a4 4601 MOV r1,r0
;;;140 FlagStatus bitstatus = RESET;
0000a6 2000 MOVS r0,#0
;;;141
;;;142 /* Check the parameters */
;;;143 assert(IS_GET_EXTI_LINE(EXTI_Line));
;;;144
;;;145 if ((EXTI->PR & EXTI_Line) != (u32)RESET)
0000a8 4a0f LDR r2,|L1.232|
0000aa 6812 LDR r2,[r2,#0]
0000ac 420a TST r2,r1
0000ae d000 BEQ |L1.178|
;;;146 {
;;;147 bitstatus = SET;
0000b0 2001 MOVS r0,#1
|L1.178|
;;;148 }
;;;149 else
;;;150 {
;;;151 bitstatus = RESET;
;;;152 }
;;;153 return bitstatus;
;;;154 }
0000b2 4770 BX lr
;;;155
ENDP
EXTI_ClearFlag PROC
;;;169
;;;170 EXTI->PR = EXTI_Line;
0000b4 490c LDR r1,|L1.232|
0000b6 6008 STR r0,[r1,#0]
;;;171 }
0000b8 4770 BX lr
;;;172
ENDP
EXTI_GetITStatus PROC
;;;183 {
;;;184 ITStatus bitstatus = RESET;
0000ba 2100 MOVS r1,#0
;;;185 u32 enablestatus = 0;
;;;186
;;;187 /* Check the parameters */
;;;188 assert(IS_GET_EXTI_LINE(EXTI_Line));
;;;189
;;;190 enablestatus = EXTI->IMR & EXTI_Line;
0000bc 4b06 LDR r3,|L1.216|
0000be 681a LDR r2,[r3,#0]
0000c0 4002 ANDS r2,r2,r0
;;;191
;;;192 if (((EXTI->PR & EXTI_Line) != (u32)RESET) && enablestatus)
0000c2 695b LDR r3,[r3,#0x14]
0000c4 4203 TST r3,r0
0000c6 d001 BEQ |L1.204|
0000c8 b102 CBZ r2,|L1.204|
;;;193 {
;;;194 bitstatus = SET;
0000ca 2101 MOVS r1,#1
|L1.204|
;;;195 }
;;;196 else
;;;197 {
;;;198 bitstatus = RESET;
;;;199 }
;;;200 return bitstatus;
0000cc 4608 MOV r0,r1
;;;201 }
0000ce 4770 BX lr
;;;202
ENDP
EXTI_ClearITPendingBit PROC
;;;216
;;;217 EXTI->PR = EXTI_Line;
0000d0 4905 LDR r1,|L1.232|
0000d2 6008 STR r0,[r1,#0]
;;;218 }
0000d4 4770 BX lr
;;;219
ENDP
0000d6 0000 DCW 0x0000
|L1.216|
0000d8 40010400 DCD 0x40010400
|L1.220|
0000dc 0007ffff DCD 0x0007ffff
|L1.224|
0000e0 40010000 DCD 0x40010000
|L1.228|
0000e4 40010410 DCD 0x40010410
|L1.232|
0000e8 40010414 DCD 0x40010414
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -