stm32f10x_nvic.lst

来自「完成数据的采集」· LST 代码 · 共 1,113 行 · 第 1/5 页

LST
1,113
字号
   \   00000014   5350               STR      R3,[R2, R1]
    322          }
   \   00000016   01B0               ADD      SP,SP,#+4
   \   00000018   10BC               POP      {R4}
   \   0000001A   7047               BX       LR               ;; return
    323          
    324          /*******************************************************************************
    325          * Function Name  : NVIC_GetCurrentActiveHandler
    326          * Description    : Returns the current active Handler (IRQ Channel and
    327          *                  SystemHandler) identifier.
    328          * Input          : None
    329          * Output         : None
    330          * Return         : Active Handler Identifier.
    331          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    332          u16 NVIC_GetCurrentActiveHandler(void)
    333          {
    334            return ((u16)(SCB->ICSR & (u32)0x3FF));
   \                     NVIC_GetCurrentActiveHandler:
   \   00000000   ....               LDR.N    R0,??DataTable21  ;; 0xe000ed04
   \   00000002   0068               LDR      R0,[R0, #+0]
   \   00000004   8005               LSLS     R0,R0,#+22       ;; ZeroExtS R0,R0,#+22,#+22
   \   00000006   800D               LSRS     R0,R0,#+22
   \   00000008   7047               BX       LR               ;; return
    335          }
    336          
    337          /*******************************************************************************
    338          * Function Name  : NVIC_GetIRQChannelActiveBitStatus
    339          * Description    : Checks whether the specified IRQ Channel active bit is set
    340          *                  or not.
    341          * Input          : - NVIC_IRQChannel: specifies the interrupt active bit to check.
    342          * Output         : None
    343          * Return         : The new state of IRQ Channel active bit(SET or RESET).
    344          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    345          ITStatus NVIC_GetIRQChannelActiveBitStatus(u8 NVIC_IRQChannel)
    346          {
   \                     NVIC_GetIRQChannelActiveBitStatus:
   \   00000000   11B4               PUSH     {R0,R4}
   \   00000002   0100               MOVS     R1,R0
    347            ITStatus activeirqstatus = RESET;
   \   00000004   0023               MOVS     R3,#+0
   \   00000006   1800               MOVS     R0,R3
    348            u32 tmp = 0x00;
   \   00000008   0023               MOVS     R3,#+0
   \   0000000A   1A00               MOVS     R2,R3
    349          
    350            /* Check the parameters */
    351            assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
    352            
    353            tmp = ((u32)0x01 << (NVIC_IRQChannel & (u32)0x1F));
   \   0000000C   0123               MOVS     R3,#+1
   \   0000000E   CC06               LSLS     R4,R1,#+27       ;; ZeroExtS R4,R1,#+27,#+27
   \   00000010   E40E               LSRS     R4,R4,#+27
   \   00000012   A340               LSLS     R3,R3,R4
   \   00000014   1A00               MOVS     R2,R3
    354          
    355            if (((NVIC->IABR[(NVIC_IRQChannel >> 0x05)]) & tmp) == tmp )
   \   00000016   C9B2               UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
   \   00000018   4B11               ASRS     R3,R1,#+5
   \   0000001A   0424               MOVS     R4,#+4
   \   0000001C   6343               MULS     R3,R4,R3
   \   0000001E   074C               LDR.N    R4,??NVIC_GetIRQChannelActiveBitStatus_0  ;; 0xe000e300
   \   00000020   E358               LDR      R3,[R4, R3]
   \   00000022   1340               ANDS     R3,R3,R2
   \   00000024   9342               CMP      R3,R2
   \   00000026   02D1               BNE.N    ??NVIC_GetIRQChannelActiveBitStatus_1
    356            {
    357              activeirqstatus = SET;
   \   00000028   0123               MOVS     R3,#+1
   \   0000002A   1800               MOVS     R0,R3
   \   0000002C   01E0               B.N      ??NVIC_GetIRQChannelActiveBitStatus_2
    358            }
    359            else
    360            {
    361              activeirqstatus = RESET;
   \                     ??NVIC_GetIRQChannelActiveBitStatus_1:
   \   0000002E   0023               MOVS     R3,#+0
   \   00000030   1800               MOVS     R0,R3
    362            }
    363            return activeirqstatus;
   \                     ??NVIC_GetIRQChannelActiveBitStatus_2:
   \   00000032   C0B2               UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
   \   00000034   01B0               ADD      SP,SP,#+4
   \   00000036   10BC               POP      {R4}
   \   00000038   7047               BX       LR               ;; return
   \   0000003A   00BF               Nop      
   \                     ??NVIC_GetIRQChannelActiveBitStatus_0:
   \   0000003C   00E300E0           DC32     0xe000e300
    364          }
    365          
    366          /*******************************************************************************
    367          * Function Name  : NVIC_GetCPUID
    368          * Description    : Returns the ID number, the version number and the implementation
    369          *                  details of the Cortex-M3 core.
    370          * Input          : None
    371          * Output         : None
    372          * Return         : CPU ID.
    373          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    374          u32 NVIC_GetCPUID(void)
    375          {
    376            return (SCB->CPUID);
   \                     NVIC_GetCPUID:
   \   00000000   0148               LDR.N    R0,??NVIC_GetCPUID_0  ;; 0xe000ed00
   \   00000002   0068               LDR      R0,[R0, #+0]
   \   00000004   7047               BX       LR               ;; return
   \   00000006   00BF               Nop      
   \                     ??NVIC_GetCPUID_0:
   \   00000008   00ED00E0           DC32     0xe000ed00
    377          }
    378          
    379          /*******************************************************************************
    380          * Function Name  : NVIC_SetVectorTable
    381          * Description    : Sets the vector table location and Offset.
    382          * Input          : - NVIC_VectTab: specifies if the vector table is in RAM or
    383          *                    FLASH memory.
    384          *                    This parameter can be one of the following values:
    385          *                       - NVIC_VectTab_RAM
    386          *                       - NVIC_VectTab_FLASH
    387          *                  - Offset: Vector Table base offset field. 
    388          *                            This value must be a multiple of 0x100.
    389          * Output         : None
    390          * Return         : None
    391          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    392          void NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset)
    393          { 
    394            /* Check the parameters */
    395            assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
    396            assert_param(IS_NVIC_OFFSET(Offset));  
    397             
    398            SCB->VTOR = NVIC_VectTab | (Offset & (u32)0x1FFFFF80);
   \                     NVIC_SetVectorTable:
   \   00000000   024A               LDR.N    R2,??NVIC_SetVectorTable_0  ;; 0x1fffff80
   \   00000002   0A40               ANDS     R2,R2,R1
   \   00000004   0243               ORRS     R2,R2,R0
   \   00000006   ....               LDR.N    R3,??DataTable22  ;; 0xe000ed08
   \   00000008   1A60               STR      R2,[R3, #+0]
    399          }
   \   0000000A   7047               BX       LR               ;; return
   \                     ??NVIC_SetVectorTable_0:
   \   0000000C   80FFFF1F           DC32     0x1fffff80
    400          
    401          /*******************************************************************************
    402          * Function Name  : NVIC_GenerateSystemReset
    403          * Description    : Generates a system reset.
    404          * Input          : None
    405          * Output         : None
    406          * Return         : None
    407          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    408          void NVIC_GenerateSystemReset(void)
    409          {
    410            SCB->AIRCR = AIRCR_VECTKEY_MASK | (u32)0x04;
   \                     NVIC_GenerateSystemReset:
   \   00000000   ....               LDR.N    R0,??DataTable24  ;; 0xe000ed0c
   \   00000002   0149               LDR.N    R1,??NVIC_GenerateSystemReset_0  ;; 0x5fa0004
   \   00000004   0160               STR      R1,[R0, #+0]
    411          }
   \   00000006   7047               BX       LR               ;; return
   \                     ??NVIC_GenerateSystemReset_0:
   \   00000008   0400FA05           DC32     0x5fa0004
    412          
    413          /*******************************************************************************
    414          * Function Name  : NVIC_GenerateCoreReset
    415          * Description    : Generates a Core (Core + NVIC) reset.
    416          * Input          : None
    417          * Output         : None
    418          * Return         : None
    419          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    420          void NVIC_GenerateCoreReset(void)
    421          {
    422            SCB->AIRCR = AIRCR_VECTKEY_MASK | (u32)0x01;
   \                     NVIC_GenerateCoreReset:
   \   00000000   ....               LDR.N    R0,??DataTable24  ;; 0xe000ed0c
   \   00000002   0149               LDR.N    R1,??NVIC_GenerateCoreReset_0  ;; 0x5fa0001
   \   00000004   0160               STR      R1,[R0, #+0]
    423          }
   \   00000006   7047               BX       LR               ;; return
   \                     ??NVIC_GenerateCoreReset_0:
   \   00000008   0100FA05           DC32     0x5fa0001
    424          
    425          /*******************************************************************************
    426          * Function Name  : NVIC_SystemLPConfig
    427          * Description    : Selects the condition for the system to enter low power mode.
    428          * Input          : - LowPowerMode: Specifies the new mode for the system to enter
    429          *                    low power mode.
    430          *                    This parameter can be one of the following values:
    431          *                       - NVIC_LP_SEVONPEND
    432          *                       - NVIC_LP_SLEEPDEEP
    433          *                       - NVIC_LP_SLEEPONEXIT
    434          *                  - NewState: new state of LP condition.
    435          *                    This parameter can be: ENABLE or DISABLE.
    436          * Output         : None
    437          * Return         : None
    438          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    439          void NVIC_SystemLPConfig(u8 LowPowerMode, FunctionalState NewState)
    440          {
    441            /* Check the parameters */
    442            assert_param(IS_NVIC_LP(LowPowerMode));
    443            assert_param(IS_FUNCTIONAL_STATE(NewState));  
    444            
    445            if (NewState != DISABLE)
   \                     NVIC_SystemLPConfig:
   \   00000000   C9B2               UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
   \   00000002   0029               CMP      R1,#+0
   \   00000004   06D0               BEQ.N    ??NVIC_SystemLPConfig_0
    446            {
    447              SCB->SCR |= LowPowerMode;
   \   00000006   ....               LDR.N    R2,??DataTable28  ;; 0xe000ed10
   \   00000008   1268               LDR      R2,[R2, #+0]
   \   0000000A   C0B2               UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
   \   0000000C   0243               ORRS     R2,R2,R0

⌨️ 快捷键说明

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