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

📄 stm32f10x_nvic.lst

📁 编译环境是 iar EWARM ,STM32 下的UCOSII
💻 LST
📖 第 1 页 / 共 5 页
字号:
    352          
    353            /* Check the parameters */
    354            assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
    355            
    356            tmp = ((u32)0x01 << (NVIC_IRQChannel & (u32)0x1F));
   \                     NVIC_GetIRQChannelActiveBitStatus:
   \   00000000   0121               MOVS     R1,#+1
   \   00000002   C206               LSLS     R2,R0,#+27
   \   00000004   D20E               LSRS     R2,R2,#+27
   \   00000006   9140               LSLS     R1,R1,R2
    357          
    358            if (((NVIC->IABR[(NVIC_IRQChannel >> 0x05)]) & tmp) == tmp )
   \   00000008   4011               ASRS     R0,R0,#+5
   \   0000000A   054A               LDR.N    R2,??NVIC_GetIRQChannelActiveBitStatus_0  ;; 0xffffffffe000e300
   \   0000000C   52F82000           LDR      R0,[R2, R0, LSL #+2]
   \   00000010   0840               ANDS     R0,R0,R1
   \   00000012   8842               CMP      R0,R1
   \   00000014   01D1               BNE.N    ??NVIC_GetIRQChannelActiveBitStatus_1
    359            {
    360              activeirqstatus = SET;
   \   00000016   0120               MOVS     R0,#+1
   \   00000018   7047               BX       LR
    361            }
    362            else
    363            {
    364              activeirqstatus = RESET;
   \                     ??NVIC_GetIRQChannelActiveBitStatus_1:
   \   0000001A   0020               MOVS     R0,#+0
    365            }
    366            return activeirqstatus;
   \   0000001C   7047               BX       LR               ;; return
   \   0000001E   00BF               Nop      
   \                     ??NVIC_GetIRQChannelActiveBitStatus_0:
   \   00000020   00E300E0           DC32     0xffffffffe000e300
    367          }
    368          
    369          /*******************************************************************************
    370          * Function Name  : NVIC_GetCPUID
    371          * Description    : Returns the ID number, the version number and the implementation
    372          *                  details of the Cortex-M3 core.
    373          * Input          : None
    374          * Output         : None
    375          * Return         : CPU ID.
    376          *******************************************************************************/

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

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

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

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

   \                                 In segment CODE, align 4, keep-with-next
    442          void NVIC_SystemLPConfig(u8 LowPowerMode, FunctionalState NewState)
    443          {
    444            /* Check the parameters */
    445            assert_param(IS_NVIC_LP(LowPowerMode));
    446            assert_param(IS_FUNCTIONAL_STATE(NewState));  
    447            
    448            if (NewState != DISABLE)
   \                     NVIC_SystemLPConfig:
   \   00000000   ....               LDR.N    R2,??DataTable25  ;; 0xffffffffe000ed10
   \   00000002   0029               CMP      R1,#+0
   \   00000004   1168               LDR      R1,[R2, #+0]
   \   00000006   02D0               BEQ.N    ??NVIC_SystemLPConfig_0
    449            {
    450              SCB->SCR |= LowPowerMode;
   \   00000008   0843               ORRS     R0,R0,R1
   \   0000000A   1060               STR      R0,[R2, #+0]
   \   0000000C   7047               BX       LR
    451            }
    452            else
    453            {
    454              SCB->SCR &= (u32)(~(u32)LowPowerMode);
   \                     ??NVIC_SystemLPConfig_0:
   \   0000000E   8143               BICS     R1,R1,R0
   \   00000010   1160               STR      R1,[R2, #+0]
    455            }
    456          }
   \   00000012   7047               BX       LR               ;; return
    457          
    458          /*******************************************************************************
    459          * Function Name  : NVIC_SystemHandlerConfig
    460          * Description    : Enables or disables the specified System Handlers.
    461          * Input          : - SystemHandler: specifies the system handler to be enabled
    462          *                    or disabled.
    463          *                    This parameter can be one of the following values:
    464          *                       - SystemHandler_MemoryManage
    465          *                       - SystemHandler_BusFault
    466          *                       - SystemHandler_UsageFault
    467          *                  - NewState: new state of  specified System Handlers.
    468          *                    This parameter can be: ENABLE or DISABLE.
    469          * Output         : None
    470          * Return         : None
    471          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    472          void NVIC_SystemHandlerConfig(u32 SystemHandler, FunctionalState NewState)
    473          {
    474            u32 tmpreg = 0x00;
    475          
    476            /* Check the parameters */
    477            assert_param(IS_CONFIG_SYSTEM_HANDLER(SystemHandler));
    478            assert_param(IS_FUNCTIONAL_STATE(NewState)); 
    479            
    480            tmpreg =  (u32)0x01 << (SystemHandler & (u32)0x1F);
   \                     NVIC_SystemHandlerConfig:
   \   00000000   0122               MOVS     R2,#+1
   \   00000002   C006               LSLS     R0,R0,#+27
   \   00000004   C00E               LSRS     R0,R0,#+27
   \   00000006   8240               LSLS     R2,R2,R0
    481          
    482            if (NewState != DISABLE)
   \   00000008   ....               LDR.N    R0,??DataTable32  ;; 0xffffffffe000ed24
   \   0000000A   0029               CMP      R1,#+0
   \   0000000C   0168               LDR      R1,[R0, #+0]
   \   0000000E   02D0               BEQ.N    ??NVIC_SystemHandlerConfig_0
    483            {
    484              SCB->SHCSR |= tmpreg;
   \   00000010   0A43               ORRS     R2,R2,R1
   \   00000012   0260               STR      R2,[R0, #+0]
   \   00000014   7047               BX       LR
    485            }
    486            else
    487            {
    488              SCB->SHCSR &= ~tmpreg;
   \                     ??NVIC_SystemHandlerConfig_0:

⌨️ 快捷键说明

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