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

📄 stm32f10x_nvic.lst

📁 针对STM32F103的UCOS移植
💻 LST
📖 第 1 页 / 共 5 页
字号:
    353            u32 tmp = 0x00;
    354          
    355            /* Check the parameters */
    356            assert(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
    357            
    358            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
    359          
    360            if (((NVIC->Active[(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
    361            {
    362              activeirqstatus = SET;
   \   00000016   0120               MOVS     R0,#+1
   \   00000018   7047               BX       LR
    363            }
    364            else
    365            {
    366              activeirqstatus = RESET;
   \                     ??NVIC_GetIRQChannelActiveBitStatus_1:
   \   0000001A   0020               MOVS     R0,#+0
    367            }
    368            return activeirqstatus;
   \   0000001C   7047               BX       LR               ;; return
   \   0000001E   00BF               Nop      
   \                     ??NVIC_GetIRQChannelActiveBitStatus_0:
   \   00000020   00E300E0           DC32     0xffffffffe000e300
    369          }
    370          
    371          /*******************************************************************************
    372          * Function Name  : NVIC_GetCPUID
    373          * Description    : Returns the ID number, the version number and the implementation
    374          *                  details of the Cortex-M3 core.
    375          * Input          : None
    376          * Output         : None
    377          * Return         : CPU ID.
    378          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    379          u32 NVIC_GetCPUID(void)
    380          {
    381            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
    382          }
    383          
    384          /*******************************************************************************
    385          * Function Name  : NVIC_SetVectorTable
    386          * Description    : Sets the vector table location and Offset.
    387          * Input          : - NVIC_VectTab: specifies if the vector table is in RAM or
    388          *                    FLASH memory.
    389          *                    This parameter can be one of the following values:
    390          *                       - NVIC_VectTab_RAM
    391          *                       - NVIC_VectTab_FLASH
    392          *                  - Offset: Vector Table base offset field. 
    393          *                            This value must be a multiple of 0x100.
    394          * Output         : None
    395          * Return         : None
    396          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    397          void NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset)
    398          { 
    399            /* Check the parameters */
    400            assert(IS_NVIC_VECTTAB(NVIC_VectTab));
    401            assert(IS_NVIC_OFFSET(Offset));  
    402             
    403            SCB->ExceptionTableOffset = 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]
    404          }
   \   0000000A   7047               BX       LR               ;; return
   \                     ??NVIC_SetVectorTable_0:
   \   0000000C   80FFFF1F           DC32     0x1fffff80
    405          
    406          /*******************************************************************************
    407          * Function Name  : NVIC_GenerateSystemReset
    408          * Description    : Generates a system reset.
    409          * Input          : None
    410          * Output         : None
    411          * Return         : None
    412          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    413          void NVIC_GenerateSystemReset(void)
    414          {
    415            SCB->AIRC = AIRC_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]
    416          }
   \   00000006   7047               BX       LR               ;; return
   \                     ??NVIC_GenerateSystemReset_0:
   \   00000008   0400FA05           DC32     0x5fa0004
    417          
    418          /*******************************************************************************
    419          * Function Name  : NVIC_GenerateCoreReset
    420          * Description    : Generates a Core (Core + NVIC) reset.
    421          * Input          : None
    422          * Output         : None
    423          * Return         : None
    424          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    425          void NVIC_GenerateCoreReset(void)
    426          {
    427            SCB->AIRC = AIRC_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]
    428          }
   \   00000006   7047               BX       LR               ;; return
   \                     ??NVIC_GenerateCoreReset_0:
   \   00000008   0100FA05           DC32     0x5fa0001
    429          
    430          /*******************************************************************************
    431          * Function Name  : NVIC_SystemLPConfig
    432          * Description    : Selects the condition for the system to enter low power mode.
    433          * Input          : - LowPowerMode: Specifies the new mode for the system to enter
    434          *                    low power mode.
    435          *                    This parameter can be one of the following values:
    436          *                       - NVIC_LP_SEVONPEND
    437          *                       - NVIC_LP_SLEEPDEEP
    438          *                       - NVIC_LP_SLEEPONEXIT
    439          *                  - NewState: new state of LP condition.
    440          *                    This parameter can be: ENABLE or DISABLE.
    441          * Output         : None
    442          * Return         : None
    443          *******************************************************************************/

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

   \                                 In segment CODE, align 4, keep-with-next
    474          void NVIC_SystemHandlerConfig(u32 SystemHandler, FunctionalState NewState)
    475          {
    476            u32 tmpreg = 0x00;
    477          
    478            /* Check the parameters */
    479            assert(IS_CONFIG_SYSTEM_HANDLER(SystemHandler));
    480            assert(IS_FUNCTIONAL_STATE(NewState)); 
    481            
    482            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
    483          
    484            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
    485            {
    486              SCB->SysHandlerCtrl |= tmpreg;
   \   00000010   0A43               ORRS     R2,R2,R1
   \   00000012   0260               STR      R2,[R0, #+0]
   \   00000014   7047               BX       LR
    487            }
    488            else
    489            {
    490              SCB->SysHandlerCtrl &= ~tmpreg;

⌨️ 快捷键说明

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