38 #if defined ( __ICCARM__ )    39  #pragma system_include      42 #ifndef __CORE_CM0PLUS_H_GENERIC    43 #define __CORE_CM0PLUS_H_GENERIC    71 #define __CM0PLUS_CMSIS_VERSION_MAIN (0x04)                                    72 #define __CM0PLUS_CMSIS_VERSION_SUB  (0x00)                                    73 #define __CM0PLUS_CMSIS_VERSION      ((__CM0PLUS_CMSIS_VERSION_MAIN << 16) | \    74                                        __CM0PLUS_CMSIS_VERSION_SUB)            76 #define __CORTEX_M                (0x00)                                       79 #if   defined ( __CC_ARM )    81   #define __INLINE         __inline                                       82   #define __STATIC_INLINE  static __inline    84 #elif defined ( __GNUC__ )    86   #define __INLINE         inline                                         87   #define __STATIC_INLINE  static inline    89 #elif defined ( __ICCARM__ )    91   #define __INLINE         inline                                         92   #define __STATIC_INLINE  static inline    94 #elif defined ( __TMS470__ )    96   #define __STATIC_INLINE  static inline    98 #elif defined ( __TASKING__ )   100   #define __INLINE         inline                                        101   #define __STATIC_INLINE  static inline   103 #elif defined ( __CSMC__ )   106   #define __INLINE         inline                                       107   #define __STATIC_INLINE  static inline   116 #if defined ( __CC_ARM )   117   #if defined __TARGET_FPU_VFP   118     #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"   121 #elif defined ( __GNUC__ )   122   #if defined (__VFP_FP__) && !defined(__SOFTFP__)   123     #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"   126 #elif defined ( __ICCARM__ )   127   #if defined __ARMVFP__   128     #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"   131 #elif defined ( __TMS470__ )   132   #if defined __TI__VFP_SUPPORT____   133     #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"   136 #elif defined ( __TASKING__ )   137   #if defined __FPU_VFP__   138     #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"   141 #elif defined ( __CSMC__ )                 142   #if ( __CSMC__ & 0x400)               // FPU present for parser   143     #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"   157 #ifndef __CMSIS_GENERIC   159 #ifndef __CORE_CM0PLUS_H_DEPENDANT   160 #define __CORE_CM0PLUS_H_DEPENDANT   167 #if defined __CHECK_DEVICE_DEFINES   168   #ifndef __CM0PLUS_REV   169     #define __CM0PLUS_REV             0x0000   170     #warning "__CM0PLUS_REV not defined in device header file; using default!"   173   #ifndef __MPU_PRESENT   174     #define __MPU_PRESENT             0   175     #warning "__MPU_PRESENT not defined in device header file; using default!"   178   #ifndef __VTOR_PRESENT   179     #define __VTOR_PRESENT            0   180     #warning "__VTOR_PRESENT not defined in device header file; using default!"   183   #ifndef __NVIC_PRIO_BITS   184     #define __NVIC_PRIO_BITS          2   185     #warning "__NVIC_PRIO_BITS not defined in device header file; using default!"   188   #ifndef __Vendor_SysTickConfig   189     #define __Vendor_SysTickConfig    0   190     #warning "__Vendor_SysTickConfig not defined in device header file; using default!"   205   #define   __I     volatile const          208 #define     __IO    volatile                239 #if (__CORTEX_M != 0x04)   240     uint32_t _reserved0:27;              
   242     uint32_t _reserved0:16;              
   244     uint32_t _reserved1:7;               
   263     uint32_t _reserved0:23;              
   276 #if (__CORTEX_M != 0x04)   277     uint32_t _reserved0:15;              
   279     uint32_t _reserved0:7;               
   281     uint32_t _reserved1:4;               
   304     uint32_t _reserved0:29;              
   322   __IO uint32_t ISER[1];                 
   323        uint32_t RESERVED0[31];
   324   __IO uint32_t ICER[1];                 
   325        uint32_t RSERVED1[31];
   326   __IO uint32_t ISPR[1];                 
   327        uint32_t RESERVED2[31];
   328   __IO uint32_t ICPR[1];                 
   329        uint32_t RESERVED3[31];
   330        uint32_t RESERVED4[64];
   349 #if (__VTOR_PRESENT == 1)   358   __IO uint32_t SHP[2];                  
   363 #define SCB_CPUID_IMPLEMENTER_Pos          24                                                364 #define SCB_CPUID_IMPLEMENTER_Msk          (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos)             366 #define SCB_CPUID_VARIANT_Pos              20                                                367 #define SCB_CPUID_VARIANT_Msk              (0xFUL << SCB_CPUID_VARIANT_Pos)                  369 #define SCB_CPUID_ARCHITECTURE_Pos         16                                                370 #define SCB_CPUID_ARCHITECTURE_Msk         (0xFUL << SCB_CPUID_ARCHITECTURE_Pos)             372 #define SCB_CPUID_PARTNO_Pos                4                                                373 #define SCB_CPUID_PARTNO_Msk               (0xFFFUL << SCB_CPUID_PARTNO_Pos)                 375 #define SCB_CPUID_REVISION_Pos              0                                                376 #define SCB_CPUID_REVISION_Msk             (0xFUL << SCB_CPUID_REVISION_Pos)                 379 #define SCB_ICSR_NMIPENDSET_Pos            31                                                380 #define SCB_ICSR_NMIPENDSET_Msk            (1UL << SCB_ICSR_NMIPENDSET_Pos)                  382 #define SCB_ICSR_PENDSVSET_Pos             28                                                383 #define SCB_ICSR_PENDSVSET_Msk             (1UL << SCB_ICSR_PENDSVSET_Pos)                   385 #define SCB_ICSR_PENDSVCLR_Pos             27                                                386 #define SCB_ICSR_PENDSVCLR_Msk             (1UL << SCB_ICSR_PENDSVCLR_Pos)                   388 #define SCB_ICSR_PENDSTSET_Pos             26                                                389 #define SCB_ICSR_PENDSTSET_Msk             (1UL << SCB_ICSR_PENDSTSET_Pos)                   391 #define SCB_ICSR_PENDSTCLR_Pos             25                                                392 #define SCB_ICSR_PENDSTCLR_Msk             (1UL << SCB_ICSR_PENDSTCLR_Pos)                   394 #define SCB_ICSR_ISRPREEMPT_Pos            23                                                395 #define SCB_ICSR_ISRPREEMPT_Msk            (1UL << SCB_ICSR_ISRPREEMPT_Pos)                  397 #define SCB_ICSR_ISRPENDING_Pos            22                                                398 #define SCB_ICSR_ISRPENDING_Msk            (1UL << SCB_ICSR_ISRPENDING_Pos)                  400 #define SCB_ICSR_VECTPENDING_Pos           12                                                401 #define SCB_ICSR_VECTPENDING_Msk           (0x1FFUL << SCB_ICSR_VECTPENDING_Pos)             403 #define SCB_ICSR_VECTACTIVE_Pos             0                                                404 #define SCB_ICSR_VECTACTIVE_Msk            (0x1FFUL << SCB_ICSR_VECTACTIVE_Pos)              406 #if (__VTOR_PRESENT == 1)   408 #define SCB_VTOR_TBLOFF_Pos                 8                                                409 #define SCB_VTOR_TBLOFF_Msk                (0xFFFFFFUL << SCB_VTOR_TBLOFF_Pos)               413 #define SCB_AIRCR_VECTKEY_Pos              16                                                414 #define SCB_AIRCR_VECTKEY_Msk              (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos)               416 #define SCB_AIRCR_VECTKEYSTAT_Pos          16                                                417 #define SCB_AIRCR_VECTKEYSTAT_Msk          (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos)           419 #define SCB_AIRCR_ENDIANESS_Pos            15                                                420 #define SCB_AIRCR_ENDIANESS_Msk            (1UL << SCB_AIRCR_ENDIANESS_Pos)                  422 #define SCB_AIRCR_SYSRESETREQ_Pos           2                                                423 #define SCB_AIRCR_SYSRESETREQ_Msk          (1UL << SCB_AIRCR_SYSRESETREQ_Pos)                425 #define SCB_AIRCR_VECTCLRACTIVE_Pos         1                                                426 #define SCB_AIRCR_VECTCLRACTIVE_Msk        (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos)              429 #define SCB_SCR_SEVONPEND_Pos               4                                                430 #define SCB_SCR_SEVONPEND_Msk              (1UL << SCB_SCR_SEVONPEND_Pos)                    432 #define SCB_SCR_SLEEPDEEP_Pos               2                                                433 #define SCB_SCR_SLEEPDEEP_Msk              (1UL << SCB_SCR_SLEEPDEEP_Pos)                    435 #define SCB_SCR_SLEEPONEXIT_Pos             1                                                436 #define SCB_SCR_SLEEPONEXIT_Msk            (1UL << SCB_SCR_SLEEPONEXIT_Pos)                  439 #define SCB_CCR_STKALIGN_Pos                9                                                440 #define SCB_CCR_STKALIGN_Msk               (1UL << SCB_CCR_STKALIGN_Pos)                     442 #define SCB_CCR_UNALIGN_TRP_Pos             3                                                443 #define SCB_CCR_UNALIGN_TRP_Msk            (1UL << SCB_CCR_UNALIGN_TRP_Pos)                  446 #define SCB_SHCSR_SVCALLPENDED_Pos         15                                                447 #define SCB_SHCSR_SVCALLPENDED_Msk         (1UL << SCB_SHCSR_SVCALLPENDED_Pos)               469 #define SysTick_CTRL_COUNTFLAG_Pos         16                                                470 #define SysTick_CTRL_COUNTFLAG_Msk         (1UL << SysTick_CTRL_COUNTFLAG_Pos)               472 #define SysTick_CTRL_CLKSOURCE_Pos          2                                                473 #define SysTick_CTRL_CLKSOURCE_Msk         (1UL << SysTick_CTRL_CLKSOURCE_Pos)               475 #define SysTick_CTRL_TICKINT_Pos            1                                                476 #define SysTick_CTRL_TICKINT_Msk           (1UL << SysTick_CTRL_TICKINT_Pos)                 478 #define SysTick_CTRL_ENABLE_Pos             0                                                479 #define SysTick_CTRL_ENABLE_Msk            (1UL << SysTick_CTRL_ENABLE_Pos)                  482 #define SysTick_LOAD_RELOAD_Pos             0                                                483 #define SysTick_LOAD_RELOAD_Msk            (0xFFFFFFUL << SysTick_LOAD_RELOAD_Pos)           486 #define SysTick_VAL_CURRENT_Pos             0                                                487 #define SysTick_VAL_CURRENT_Msk            (0xFFFFFFUL << SysTick_VAL_CURRENT_Pos)           490 #define SysTick_CALIB_NOREF_Pos            31                                                491 #define SysTick_CALIB_NOREF_Msk            (1UL << SysTick_CALIB_NOREF_Pos)                  493 #define SysTick_CALIB_SKEW_Pos             30                                                494 #define SysTick_CALIB_SKEW_Msk             (1UL << SysTick_CALIB_SKEW_Pos)                   496 #define SysTick_CALIB_TENMS_Pos             0                                                497 #define SysTick_CALIB_TENMS_Msk            (0xFFFFFFUL << SysTick_CALIB_TENMS_Pos)           501 #if (__MPU_PRESENT == 1)   520 #define MPU_TYPE_IREGION_Pos               16                                                521 #define MPU_TYPE_IREGION_Msk               (0xFFUL << MPU_TYPE_IREGION_Pos)                  523 #define MPU_TYPE_DREGION_Pos                8                                                524 #define MPU_TYPE_DREGION_Msk               (0xFFUL << MPU_TYPE_DREGION_Pos)                  526 #define MPU_TYPE_SEPARATE_Pos               0                                                527 #define MPU_TYPE_SEPARATE_Msk              (1UL << MPU_TYPE_SEPARATE_Pos)                    530 #define MPU_CTRL_PRIVDEFENA_Pos             2                                                531 #define MPU_CTRL_PRIVDEFENA_Msk            (1UL << MPU_CTRL_PRIVDEFENA_Pos)                  533 #define MPU_CTRL_HFNMIENA_Pos               1                                                534 #define MPU_CTRL_HFNMIENA_Msk              (1UL << MPU_CTRL_HFNMIENA_Pos)                    536 #define MPU_CTRL_ENABLE_Pos                 0                                                537 #define MPU_CTRL_ENABLE_Msk                (1UL << MPU_CTRL_ENABLE_Pos)                      540 #define MPU_RNR_REGION_Pos                  0                                                541 #define MPU_RNR_REGION_Msk                 (0xFFUL << MPU_RNR_REGION_Pos)                    544 #define MPU_RBAR_ADDR_Pos                   8                                                545 #define MPU_RBAR_ADDR_Msk                  (0xFFFFFFUL << MPU_RBAR_ADDR_Pos)                 547 #define MPU_RBAR_VALID_Pos                  4                                                548 #define MPU_RBAR_VALID_Msk                 (1UL << MPU_RBAR_VALID_Pos)                       550 #define MPU_RBAR_REGION_Pos                 0                                                551 #define MPU_RBAR_REGION_Msk                (0xFUL << MPU_RBAR_REGION_Pos)                    554 #define MPU_RASR_ATTRS_Pos                 16                                                555 #define MPU_RASR_ATTRS_Msk                 (0xFFFFUL << MPU_RASR_ATTRS_Pos)                  557 #define MPU_RASR_XN_Pos                    28                                                558 #define MPU_RASR_XN_Msk                    (1UL << MPU_RASR_XN_Pos)                          560 #define MPU_RASR_AP_Pos                    24                                                561 #define MPU_RASR_AP_Msk                    (0x7UL << MPU_RASR_AP_Pos)                        563 #define MPU_RASR_TEX_Pos                   19                                                564 #define MPU_RASR_TEX_Msk                   (0x7UL << MPU_RASR_TEX_Pos)                       566 #define MPU_RASR_S_Pos                     18                                                567 #define MPU_RASR_S_Msk                     (1UL << MPU_RASR_S_Pos)                           569 #define MPU_RASR_C_Pos                     17                                                570 #define MPU_RASR_C_Msk                     (1UL << MPU_RASR_C_Pos)                           572 #define MPU_RASR_B_Pos                     16                                                573 #define MPU_RASR_B_Msk                     (1UL << MPU_RASR_B_Pos)                           575 #define MPU_RASR_SRD_Pos                    8                                                576 #define MPU_RASR_SRD_Msk                   (0xFFUL << MPU_RASR_SRD_Pos)                      578 #define MPU_RASR_SIZE_Pos                   1                                                579 #define MPU_RASR_SIZE_Msk                  (0x1FUL << MPU_RASR_SIZE_Pos)                     581 #define MPU_RASR_ENABLE_Pos                 0                                                582 #define MPU_RASR_ENABLE_Msk                (1UL << MPU_RASR_ENABLE_Pos)                      605 #define SCS_BASE            (0xE000E000UL)                               606 #define SysTick_BASE        (SCS_BASE +  0x0010UL)                       607 #define NVIC_BASE           (SCS_BASE +  0x0100UL)                       608 #define SCB_BASE            (SCS_BASE +  0x0D00UL)                       610 #define SCB                 ((SCB_Type       *)     SCB_BASE      )      611 #define SysTick             ((SysTick_Type   *)     SysTick_BASE  )      612 #define NVIC                ((NVIC_Type      *)     NVIC_BASE     )      614 #if (__MPU_PRESENT == 1)   615   #define MPU_BASE          (SCS_BASE +  0x0D90UL)                       616   #define MPU               ((MPU_Type       *)     MPU_BASE      )      644 #define _BIT_SHIFT(IRQn)         (  (((uint32_t)(IRQn)       )    &  0x03) * 8 )   645 #define _SHP_IDX(IRQn)           ( ((((uint32_t)(IRQn) & 0x0F)-8) >>    2)     )   646 #define _IP_IDX(IRQn)            (   ((uint32_t)(IRQn)            >>    2)     )   657   NVIC->ISER[0] = (1 << ((uint32_t)(IRQn) & 0x1F));
   669   NVIC->ICER[0] = (1 << ((uint32_t)(IRQn) & 0x1F));
   685   return((uint32_t) ((
NVIC->ISPR[0] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0));
   697   NVIC->ISPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F));
   709   NVIC->ICPR[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); 
   779 #if (__Vendor_SysTickConfig == 0) 
CMSIS Cortex-M Core Function Access Header File. 
#define SCB_AIRCR_VECTKEY_Pos
Structure type to access the Nested Vectored Interrupt Controller (NVIC). 
enum IRQn IRQn_Type
STM32F4XX Interrupt Number Definition, according to the selected device in Library_configuration_sect...
#define SysTick_CTRL_CLKSOURCE_Msk
Structure type to access the System Control Block (SCB). 
CMSIS Cortex-M Core Instruction Access Header File. 
IRQn
STM32F4XX Interrupt Number Definition, according to the selected device in Library_configuration_sect...
__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
Set Interrupt Priority. 
#define SysTick_CTRL_TICKINT_Msk
__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
Disable External Interrupt. 
Structure type to access the System Timer (SysTick). 
__STATIC_INLINE void NVIC_SystemReset(void)
System Reset. 
Union type to access the Application Program Status Register (APSR). 
__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
Enable External Interrupt. 
__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
Get Pending Interrupt. 
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
System Tick Configuration. 
Union type to access the Control Registers (CONTROL). 
#define SysTick_LOAD_RELOAD_Msk
__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
Set Pending Interrupt. 
__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
Clear Pending Interrupt. 
Union type to access the Interrupt Program Status Register (IPSR). 
Union type to access the Special-Purpose Program Status Registers (xPSR). 
__STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
Get Interrupt Priority. 
#define SysTick_CTRL_ENABLE_Msk
#define SCB_AIRCR_SYSRESETREQ_Msk