⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm32f10x_exti.txt

📁 ucos2.86版本结合STM板极支持包
💻 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 + -