25#if defined ( __ICCARM__ )
26 #pragma system_include
27#elif defined (__clang__)
28 #pragma clang system_header
31#ifndef __CORE_SC000_H_GENERIC
32#define __CORE_SC000_H_GENERIC
66#define __SC000_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN)
67#define __SC000_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB)
68#define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16U) | \
69 __SC000_CMSIS_VERSION_SUB )
71#define __CORTEX_SC (000U)
78#if defined ( __CC_ARM )
79 #if defined __TARGET_FPU_VFP
80 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
83#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
85 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
88#elif defined ( __GNUC__ )
89 #if defined (__VFP_FP__) && !defined(__SOFTFP__)
90 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
93#elif defined ( __ICCARM__ )
94 #if defined __ARMVFP__
95 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
98#elif defined ( __TI_ARM__ )
99 #if defined __TI_VFP_SUPPORT__
100 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
103#elif defined ( __TASKING__ )
104 #if defined __FPU_VFP__
105 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
108#elif defined ( __CSMC__ )
109 #if ( __CSMC__ & 0x400U)
110 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
124#ifndef __CMSIS_GENERIC
126#ifndef __CORE_SC000_H_DEPENDANT
127#define __CORE_SC000_H_DEPENDANT
134#if defined __CHECK_DEVICE_DEFINES
136 #define __SC000_REV 0x0000U
137 #warning "__SC000_REV not defined in device header file; using default!"
140 #ifndef __MPU_PRESENT
141 #define __MPU_PRESENT 0U
142 #warning "__MPU_PRESENT not defined in device header file; using default!"
145 #ifndef __VTOR_PRESENT
146 #define __VTOR_PRESENT 0U
147 #warning "__VTOR_PRESENT not defined in device header file; using default!"
150 #ifndef __NVIC_PRIO_BITS
151 #define __NVIC_PRIO_BITS 2U
152 #warning "__NVIC_PRIO_BITS not defined in device header file; using default!"
155 #ifndef __Vendor_SysTickConfig
156 #define __Vendor_SysTickConfig 0U
157 #warning "__Vendor_SysTickConfig not defined in device header file; using default!"
172 #define __I volatile const
178#define __IM volatile const
180#define __IOM volatile
224#define APSR_N_Pos 31U
225#define APSR_N_Msk (1UL << APSR_N_Pos)
227#define APSR_Z_Pos 30U
228#define APSR_Z_Msk (1UL << APSR_Z_Pos)
230#define APSR_C_Pos 29U
231#define APSR_C_Msk (1UL << APSR_C_Pos)
233#define APSR_V_Pos 28U
234#define APSR_V_Msk (1UL << APSR_V_Pos)
251#define IPSR_ISR_Pos 0U
252#define IPSR_ISR_Msk (0x1FFUL )
275#define xPSR_N_Pos 31U
276#define xPSR_N_Msk (1UL << xPSR_N_Pos)
278#define xPSR_Z_Pos 30U
279#define xPSR_Z_Msk (1UL << xPSR_Z_Pos)
281#define xPSR_C_Pos 29U
282#define xPSR_C_Msk (1UL << xPSR_C_Pos)
284#define xPSR_V_Pos 28U
285#define xPSR_V_Msk (1UL << xPSR_V_Pos)
287#define xPSR_T_Pos 24U
288#define xPSR_T_Msk (1UL << xPSR_T_Pos)
290#define xPSR_ISR_Pos 0U
291#define xPSR_ISR_Msk (0x1FFUL )
309#define CONTROL_SPSEL_Pos 1U
310#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos)
327 __IOM uint32_t ISER[1U];
328 uint32_t RESERVED0[31U];
329 __IOM uint32_t ICER[1U];
330 uint32_t RSERVED1[31U];
331 __IOM uint32_t ISPR[1U];
332 uint32_t RESERVED2[31U];
333 __IOM uint32_t ICPR[1U];
334 uint32_t RESERVED3[31U];
335 uint32_t RESERVED4[64U];
336 __IOM uint32_t IP[8U];
357 __IOM uint32_t AIRCR;
360 uint32_t RESERVED0[1U];
361 __IOM uint32_t SHP[2U];
362 __IOM uint32_t SHCSR;
363 uint32_t RESERVED1[154U];
368#define SCB_CPUID_IMPLEMENTER_Pos 24U
369#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos)
371#define SCB_CPUID_VARIANT_Pos 20U
372#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos)
374#define SCB_CPUID_ARCHITECTURE_Pos 16U
375#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos)
377#define SCB_CPUID_PARTNO_Pos 4U
378#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos)
380#define SCB_CPUID_REVISION_Pos 0U
381#define SCB_CPUID_REVISION_Msk (0xFUL )
384#define SCB_ICSR_NMIPENDSET_Pos 31U
385#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos)
387#define SCB_ICSR_PENDSVSET_Pos 28U
388#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos)
390#define SCB_ICSR_PENDSVCLR_Pos 27U
391#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos)
393#define SCB_ICSR_PENDSTSET_Pos 26U
394#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos)
396#define SCB_ICSR_PENDSTCLR_Pos 25U
397#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos)
399#define SCB_ICSR_ISRPREEMPT_Pos 23U
400#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos)
402#define SCB_ICSR_ISRPENDING_Pos 22U
403#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos)
405#define SCB_ICSR_VECTPENDING_Pos 12U
406#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos)
408#define SCB_ICSR_VECTACTIVE_Pos 0U
409#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL )
412#define SCB_VTOR_TBLOFF_Pos 7U
413#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos)
416#define SCB_AIRCR_VECTKEY_Pos 16U
417#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos)
419#define SCB_AIRCR_VECTKEYSTAT_Pos 16U
420#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos)
422#define SCB_AIRCR_ENDIANESS_Pos 15U
423#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos)
425#define SCB_AIRCR_SYSRESETREQ_Pos 2U
426#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos)
428#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U
429#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos)
432#define SCB_SCR_SEVONPEND_Pos 4U
433#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos)
435#define SCB_SCR_SLEEPDEEP_Pos 2U
436#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos)
438#define SCB_SCR_SLEEPONEXIT_Pos 1U
439#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos)
442#define SCB_CCR_STKALIGN_Pos 9U
443#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos)
445#define SCB_CCR_UNALIGN_TRP_Pos 3U
446#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos)
449#define SCB_SHCSR_SVCALLPENDED_Pos 15U
450#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos)
467 uint32_t RESERVED0[2U];
468 __IOM uint32_t ACTLR;
472#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U
473#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL )
497#define SysTick_CTRL_COUNTFLAG_Pos 16U
498#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos)
500#define SysTick_CTRL_CLKSOURCE_Pos 2U
501#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos)
503#define SysTick_CTRL_TICKINT_Pos 1U
504#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos)
506#define SysTick_CTRL_ENABLE_Pos 0U
507#define SysTick_CTRL_ENABLE_Msk (1UL )
510#define SysTick_LOAD_RELOAD_Pos 0U
511#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL )
514#define SysTick_VAL_CURRENT_Pos 0U
515#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL )
518#define SysTick_CALIB_NOREF_Pos 31U
519#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos)
521#define SysTick_CALIB_SKEW_Pos 30U
522#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos)
524#define SysTick_CALIB_TENMS_Pos 0U
525#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL )
529#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
550#define MPU_TYPE_IREGION_Pos 16U
551#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos)
553#define MPU_TYPE_DREGION_Pos 8U
554#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos)
556#define MPU_TYPE_SEPARATE_Pos 0U
557#define MPU_TYPE_SEPARATE_Msk (1UL )
560#define MPU_CTRL_PRIVDEFENA_Pos 2U
561#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos)
563#define MPU_CTRL_HFNMIENA_Pos 1U
564#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos)
566#define MPU_CTRL_ENABLE_Pos 0U
567#define MPU_CTRL_ENABLE_Msk (1UL )
570#define MPU_RNR_REGION_Pos 0U
571#define MPU_RNR_REGION_Msk (0xFFUL )
574#define MPU_RBAR_ADDR_Pos 8U
575#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos)
577#define MPU_RBAR_VALID_Pos 4U
578#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos)
580#define MPU_RBAR_REGION_Pos 0U
581#define MPU_RBAR_REGION_Msk (0xFUL )
584#define MPU_RASR_ATTRS_Pos 16U
585#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos)
587#define MPU_RASR_XN_Pos 28U
588#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos)
590#define MPU_RASR_AP_Pos 24U
591#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos)
593#define MPU_RASR_TEX_Pos 19U
594#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos)
596#define MPU_RASR_S_Pos 18U
597#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos)
599#define MPU_RASR_C_Pos 17U
600#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos)
602#define MPU_RASR_B_Pos 16U
603#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos)
605#define MPU_RASR_SRD_Pos 8U
606#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos)
608#define MPU_RASR_SIZE_Pos 1U
609#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos)
611#define MPU_RASR_ENABLE_Pos 0U
612#define MPU_RASR_ENABLE_Msk (1UL )
641#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk)
649#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos)
662#define SCS_BASE (0xE000E000UL)
663#define SysTick_BASE (SCS_BASE + 0x0010UL)
664#define NVIC_BASE (SCS_BASE + 0x0100UL)
665#define SCB_BASE (SCS_BASE + 0x0D00UL)
667#define SCnSCB ((SCnSCB_Type *) SCS_BASE )
668#define SCB ((SCB_Type *) SCB_BASE )
669#define SysTick ((SysTick_Type *) SysTick_BASE )
670#define NVIC ((NVIC_Type *) NVIC_BASE )
672#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
673 #define MPU_BASE (SCS_BASE + 0x0D90UL)
674 #define MPU ((MPU_Type *) MPU_BASE )
702#ifdef CMSIS_NVIC_VIRTUAL
703 #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE
704 #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h"
706 #include CMSIS_NVIC_VIRTUAL_HEADER_FILE
710 #define NVIC_EnableIRQ __NVIC_EnableIRQ
711 #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ
712 #define NVIC_DisableIRQ __NVIC_DisableIRQ
713 #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ
714 #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ
715 #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ
717 #define NVIC_SetPriority __NVIC_SetPriority
718 #define NVIC_GetPriority __NVIC_GetPriority
719 #define NVIC_SystemReset __NVIC_SystemReset
722#ifdef CMSIS_VECTAB_VIRTUAL
723 #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE
724 #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h"
726 #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE
728 #define NVIC_SetVector __NVIC_SetVector
729 #define NVIC_GetVector __NVIC_GetVector
732#define NVIC_USER_IRQ_OFFSET 16
736#define EXC_RETURN_HANDLER (0xFFFFFFF1UL)
737#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL)
738#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL)
743#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL)
744#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) )
745#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) )
756 if ((int32_t)(IRQn) >= 0)
759 NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
775 if ((int32_t)(IRQn) >= 0)
777 return((uint32_t)(((
NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
794 if ((int32_t)(IRQn) >= 0)
796 NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
813 if ((int32_t)(IRQn) >= 0)
815 return((uint32_t)(((
NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
832 if ((int32_t)(IRQn) >= 0)
834 NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
847 if ((int32_t)(IRQn) >= 0)
849 NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
865 if ((int32_t)(IRQn) >= 0)
890 if ((int32_t)(IRQn) >= 0)
912 uint32_t *vectors = (uint32_t *)
SCB->VTOR;
928 uint32_t *vectors = (uint32_t *)
SCB->VTOR;
988#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U)
1008 SysTick->LOAD = (uint32_t)(ticks - 1UL);
#define __COMPILER_BARRIER()
CMSIS compiler generic header file.
CMSIS Core(M) Version definitions.
#define SysTick_CTRL_ENABLE_Msk
SysTick CTRL: ENABLE Mask.
#define SysTick_LOAD_RELOAD_Msk
SysTick LOAD: RELOAD Mask.
#define SysTick_CTRL_TICKINT_Msk
SysTick CTRL: TICKINT Mask.
#define SysTick_CTRL_CLKSOURCE_Msk
SysTick CTRL: CLKSOURCE Mask.
#define SCB_AIRCR_VECTKEY_Pos
SCB AIRCR: VECTKEY Position.
#define SCB
SCB configuration struct.
#define SCB_AIRCR_SYSRESETREQ_Msk
SCB AIRCR: SYSRESETREQ Mask.
#define NVIC
NVIC configuration struct.
#define SysTick
SysTick configuration struct.
#define __DSB()
Data Synchronization Barrier.
#define __ISB()
Instruction Synchronization Barrier.
#define __NOP
No Operation.
__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void)
System Reset.
__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
Set Interrupt Vector.
__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
Get Interrupt Vector.
__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
Set Interrupt Priority.
__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
Clear Pending Interrupt.
__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
Get Pending Interrupt.
__STATIC_INLINE uint32_t SCB_GetFPUType(void)
get FPU type
__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
Enable Interrupt.
#define NVIC_USER_IRQ_OFFSET
__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
Set Pending Interrupt.
__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
Get Interrupt Enable status.
__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
Disable Interrupt.
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
System Tick Configuration.
__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
Get Interrupt Priority.
uint32_t V
bit: 28 Overflow condition code flag
uint32_t SPSEL
bit: 1 Stack to be used
uint32_t C
bit: 29 Carry condition code flag
uint32_t _reserved0
bit: 9..31 Reserved
uint32_t N
bit: 31 Negative condition code flag
__IOM uint32_t SFCR
Offset: 0x290 (R/W) Security Features Control Register.
uint32_t Z
bit: 30 Zero condition code flag
uint32_t V
bit: 28 Overflow condition code flag
uint32_t _reserved0
bit: 0..27 Reserved
uint32_t N
bit: 31 Negative condition code flag
uint32_t Z
bit: 30 Zero condition code flag
uint32_t _reserved0
bit: 0 Reserved
uint32_t _reserved1
bit: 25..27 Reserved
uint32_t T
bit: 24 Thumb bit (read 0)
uint32_t _reserved0
bit: 9..23 Reserved
uint32_t _reserved1
bit: 2..31 Reserved
uint32_t C
bit: 29 Carry condition code flag
#define __NVIC_PRIO_BITS
CM7 uses 4 Bits for the Priority Levels.
IRQn_Type
STM32H7XX Interrupt Number Definition, according to the selected device in Library_configuration_sect...
@ SysTick_IRQn
15 Cortex-M System Tick Interrupt
*brief create JSON pointer *sa reference_tokens const string_t const string_t & b
Structure type to access the Memory Protection Unit (MPU).
Structure type to access the Nested Vectored Interrupt Controller (NVIC).
Structure type to access the System Control Block (SCB).
Structure type to access the System Control and ID Register not in the SCB.
Structure type to access the System Timer (SysTick).
Union type to access the Application Program Status Register (APSR).
Union type to access the Control Registers (CONTROL).
Union type to access the Interrupt Program Status Register (IPSR).
Union type to access the Special-Purpose Program Status Registers (xPSR).