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

📄 misc.txt

📁 STM32手持式示波器源代码
💻 TXT
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\misc.o --depend=.\Obj\misc.d --device=DARMSTM --apcs=interwork -O0 -Otime -I..\..\Libraries\CMSIS\Core\CM3 -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Source\inc -Id:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER ..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c]
                          THUMB

                          AREA ||i.NVIC_Init||, CODE, READONLY, ALIGN=2

                  NVIC_Init PROC
;;;110      */
;;;111    void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
000000  b570              PUSH     {r4-r6,lr}
;;;112    {
;;;113      uint32_t tmppriority = 0x00, tmppre = 0x00, tmpsub = 0x0F;
000002  2100              MOVS     r1,#0
000004  2300              MOVS     r3,#0
000006  220f              MOVS     r2,#0xf
;;;114      
;;;115      /* Check the parameters */
;;;116      assert_param(IS_FUNCTIONAL_STATE(NVIC_InitStruct->NVIC_IRQChannelCmd));
;;;117      assert_param(IS_NVIC_PREEMPTION_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority));  
;;;118      assert_param(IS_NVIC_SUB_PRIORITY(NVIC_InitStruct->NVIC_IRQChannelSubPriority));
;;;119        
;;;120      if (NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE)
000008  78c4              LDRB     r4,[r0,#3]
00000a  b30c              CBZ      r4,|L1.80|
;;;121      {
;;;122        /* Compute the Corresponding IRQ Priority --------------------------------*/    
;;;123        tmppriority = (0x700 - ((SCB->AIRCR) & (uint32_t)0x700))>> 0x08;
00000c  4c16              LDR      r4,|L1.104|
00000e  6824              LDR      r4,[r4,#0]
000010  f40464e0          AND      r4,r4,#0x700
000014  f5c464e0          RSB      r4,r4,#0x700
000018  0a21              LSRS     r1,r4,#8
;;;124        tmppre = (0x4 - tmppriority);
00001a  f1c10304          RSB      r3,r1,#4
;;;125        tmpsub = tmpsub >> tmppriority;
00001e  40ca              LSRS     r2,r2,r1
;;;126    
;;;127        tmppriority = (uint32_t)NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << tmppre;
000020  7844              LDRB     r4,[r0,#1]
000022  fa04f103          LSL      r1,r4,r3
;;;128        tmppriority |=  NVIC_InitStruct->NVIC_IRQChannelSubPriority & tmpsub;
000026  7884              LDRB     r4,[r0,#2]
000028  4014              ANDS     r4,r4,r2
00002a  4321              ORRS     r1,r1,r4
;;;129        tmppriority = tmppriority << 0x04;
00002c  0109              LSLS     r1,r1,#4
;;;130            
;;;131        NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;
00002e  4c0f              LDR      r4,|L1.108|
000030  7806              LDRB     r6,[r0,#0]
000032  55a1              STRB     r1,[r4,r6]
;;;132        
;;;133        /* Enable the Selected IRQ Channels --------------------------------------*/
;;;134        NVIC->ISER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
000034  7804              LDRB     r4,[r0,#0]
000036  f004051f          AND      r5,r4,#0x1f
00003a  2401              MOVS     r4,#1
00003c  40ac              LSLS     r4,r4,r5
00003e  7805              LDRB     r5,[r0,#0]
000040  116d              ASRS     r5,r5,#5
000042  f04f26e0          MOV      r6,#0xe000e000
000046  eb060585          ADD      r5,r6,r5,LSL #2
00004a  f8c54100          STR      r4,[r5,#0x100]
00004e  e009              B        |L1.100|
                  |L1.80|
;;;135          (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
;;;136      }
;;;137      else
;;;138      {
;;;139        /* Disable the Selected IRQ Channels -------------------------------------*/
;;;140        NVIC->ICER[NVIC_InitStruct->NVIC_IRQChannel >> 0x05] =
000050  7804              LDRB     r4,[r0,#0]
000052  f004041f          AND      r4,r4,#0x1f
000056  2501              MOVS     r5,#1
000058  40a5              LSLS     r5,r5,r4
00005a  4c05              LDR      r4,|L1.112|
00005c  7806              LDRB     r6,[r0,#0]
00005e  1176              ASRS     r6,r6,#5
000060  f8445026          STR      r5,[r4,r6,LSL #2]
                  |L1.100|
;;;141          (uint32_t)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (uint8_t)0x1F);
;;;142      }
;;;143    }
000064  bd70              POP      {r4-r6,pc}
;;;144    
                          ENDP

000066  0000              DCW      0x0000
                  |L1.104|
                          DCD      0xe000ed0c
                  |L1.108|
                          DCD      0xe000e400
                  |L1.112|
                          DCD      0xe000e180

                          AREA ||i.NVIC_PriorityGroupConfig||, CODE, READONLY, ALIGN=2

                  NVIC_PriorityGroupConfig PROC
;;;94       */
;;;95     void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)
000000  4902              LDR      r1,|L2.12|
;;;96     {
;;;97       /* Check the parameters */
;;;98       assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));
;;;99       
;;;100      /* Set the PRIGROUP[10:8] bits according to NVIC_PriorityGroup value */
;;;101      SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup;
000002  4301              ORRS     r1,r1,r0
000004  4a02              LDR      r2,|L2.16|
000006  6011              STR      r1,[r2,#0]
;;;102    }
000008  4770              BX       lr
;;;103    
                          ENDP

00000a  0000              DCW      0x0000
                  |L2.12|
                          DCD      0x05fa0000
                  |L2.16|
                          DCD      0xe000ed0c

                          AREA ||i.NVIC_SetVectorTable||, CODE, READONLY, ALIGN=2

                  NVIC_SetVectorTable PROC
;;;153      */
;;;154    void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset)
000000  4a02              LDR      r2,|L3.12|
;;;155    { 
;;;156      /* Check the parameters */
;;;157      assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
;;;158      assert_param(IS_NVIC_OFFSET(Offset));  
;;;159       
;;;160      SCB->VTOR = NVIC_VectTab | (Offset & (uint32_t)0x1FFFFF80);
000002  400a              ANDS     r2,r2,r1
000004  4302              ORRS     r2,r2,r0
000006  4b02              LDR      r3,|L3.16|
000008  601a              STR      r2,[r3,#0]
;;;161    }
00000a  4770              BX       lr
;;;162    
                          ENDP

                  |L3.12|
                          DCD      0x1fffff80
                  |L3.16|
                          DCD      0xe000ed08

                          AREA ||i.NVIC_SystemLPConfig||, CODE, READONLY, ALIGN=2

                  NVIC_SystemLPConfig PROC
;;;172      */
;;;173    void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState)
000000  b139              CBZ      r1,|L4.18|
;;;174    {
;;;175      /* Check the parameters */
;;;176      assert_param(IS_NVIC_LP(LowPowerMode));
;;;177      assert_param(IS_FUNCTIONAL_STATE(NewState));  
;;;178      
;;;179      if (NewState != DISABLE)
;;;180      {
;;;181        SCB->SCR |= LowPowerMode;
000002  4a08              LDR      r2,|L4.36|
000004  6812              LDR      r2,[r2,#0]
000006  4302              ORRS     r2,r2,r0
000008  f04f23e0          MOV      r3,#0xe000e000
00000c  f8c32d10          STR      r2,[r3,#0xd10]
000010  e006              B        |L4.32|
                  |L4.18|
;;;182      }
;;;183      else
;;;184      {
;;;185        SCB->SCR &= (uint32_t)(~(uint32_t)LowPowerMode);
000012  4a04              LDR      r2,|L4.36|
000014  6812              LDR      r2,[r2,#0]
000016  4382              BICS     r2,r2,r0
000018  f04f23e0          MOV      r3,#0xe000e000
00001c  f8c32d10          STR      r2,[r3,#0xd10]
                  |L4.32|
;;;186      }
;;;187    }
000020  4770              BX       lr
;;;188    
                          ENDP

000022  0000              DCW      0x0000
                  |L4.36|
                          DCD      0xe000ed10

                          AREA ||i.SysTick_CLKSourceConfig||, CODE, READONLY, ALIGN=1

                  SysTick_CLKSourceConfig PROC
;;;196      */
;;;197    void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)
000000  2804              CMP      r0,#4
;;;198    {
;;;199      /* Check the parameters */
;;;200      assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource));
;;;201      if (SysTick_CLKSource == SysTick_CLKSource_HCLK)
000002  d108              BNE      |L5.22|
;;;202      {
;;;203        SysTick->CTRL |= SysTick_CLKSource_HCLK;
000004  f04f21e0          MOV      r1,#0xe000e000
000008  6909              LDR      r1,[r1,#0x10]
00000a  f0410104          ORR      r1,r1,#4
00000e  f04f22e0          MOV      r2,#0xe000e000
000012  6111              STR      r1,[r2,#0x10]
000014  e007              B        |L5.38|
                  |L5.22|
;;;204      }
;;;205      else
;;;206      {
;;;207        SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;
000016  f04f21e0          MOV      r1,#0xe000e000
00001a  6909              LDR      r1,[r1,#0x10]
00001c  f0210104          BIC      r1,r1,#4
000020  f04f22e0          MOV      r2,#0xe000e000
000024  6111              STR      r1,[r2,#0x10]
                  |L5.38|
;;;208      }
;;;209    }
000026  4770              BX       lr
;;;210    
                          ENDP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -