25#if defined ( __ICCARM__ )
26 #pragma system_include
27#elif defined (__clang__)
28 #pragma clang system_header
31#ifndef __CORE_CM4_H_GENERIC
32#define __CORE_CM4_H_GENERIC
66#define __CM4_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN)
67#define __CM4_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB)
68#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16U) | \
69 __CM4_CMSIS_VERSION_SUB )
71#define __CORTEX_M (4U)
76#if defined ( __CC_ARM )
77 #if defined __TARGET_FPU_VFP
78 #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
81 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
88#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
90 #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
93 #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
100#elif defined ( __GNUC__ )
101 #if defined (__VFP_FP__) && !defined(__SOFTFP__)
102 #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
103 #define __FPU_USED 1U
105 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
106 #define __FPU_USED 0U
109 #define __FPU_USED 0U
112#elif defined ( __ICCARM__ )
113 #if defined __ARMVFP__
114 #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
115 #define __FPU_USED 1U
117 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
118 #define __FPU_USED 0U
121 #define __FPU_USED 0U
124#elif defined ( __TI_ARM__ )
125 #if defined __TI_VFP_SUPPORT__
126 #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
127 #define __FPU_USED 1U
129 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
130 #define __FPU_USED 0U
133 #define __FPU_USED 0U
136#elif defined ( __TASKING__ )
137 #if defined __FPU_VFP__
138 #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
139 #define __FPU_USED 1U
141 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
142 #define __FPU_USED 0U
145 #define __FPU_USED 0U
148#elif defined ( __CSMC__ )
149 #if ( __CSMC__ & 0x400U)
150 #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
151 #define __FPU_USED 1U
153 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
154 #define __FPU_USED 0U
157 #define __FPU_USED 0U
171#ifndef __CMSIS_GENERIC
173#ifndef __CORE_CM4_H_DEPENDANT
174#define __CORE_CM4_H_DEPENDANT
181#if defined __CHECK_DEVICE_DEFINES
183 #define __CM4_REV 0x0000U
184 #warning "__CM4_REV not defined in device header file; using default!"
187 #ifndef __FPU_PRESENT
188 #define __FPU_PRESENT 0U
189 #warning "__FPU_PRESENT not defined in device header file; using default!"
192 #ifndef __MPU_PRESENT
193 #define __MPU_PRESENT 0U
194 #warning "__MPU_PRESENT not defined in device header file; using default!"
197 #ifndef __VTOR_PRESENT
198 #define __VTOR_PRESENT 1U
199 #warning "__VTOR_PRESENT not defined in device header file; using default!"
202 #ifndef __NVIC_PRIO_BITS
203 #define __NVIC_PRIO_BITS 3U
204 #warning "__NVIC_PRIO_BITS not defined in device header file; using default!"
207 #ifndef __Vendor_SysTickConfig
208 #define __Vendor_SysTickConfig 0U
209 #warning "__Vendor_SysTickConfig not defined in device header file; using default!"
224 #define __I volatile const
230#define __IM volatile const
232#define __IOM volatile
281#define APSR_N_Pos 31U
282#define APSR_N_Msk (1UL << APSR_N_Pos)
284#define APSR_Z_Pos 30U
285#define APSR_Z_Msk (1UL << APSR_Z_Pos)
287#define APSR_C_Pos 29U
288#define APSR_C_Msk (1UL << APSR_C_Pos)
290#define APSR_V_Pos 28U
291#define APSR_V_Msk (1UL << APSR_V_Pos)
293#define APSR_Q_Pos 27U
294#define APSR_Q_Msk (1UL << APSR_Q_Pos)
296#define APSR_GE_Pos 16U
297#define APSR_GE_Msk (0xFUL << APSR_GE_Pos)
314#define IPSR_ISR_Pos 0U
315#define IPSR_ISR_Msk (0x1FFUL )
342#define xPSR_N_Pos 31U
343#define xPSR_N_Msk (1UL << xPSR_N_Pos)
345#define xPSR_Z_Pos 30U
346#define xPSR_Z_Msk (1UL << xPSR_Z_Pos)
348#define xPSR_C_Pos 29U
349#define xPSR_C_Msk (1UL << xPSR_C_Pos)
351#define xPSR_V_Pos 28U
352#define xPSR_V_Msk (1UL << xPSR_V_Pos)
354#define xPSR_Q_Pos 27U
355#define xPSR_Q_Msk (1UL << xPSR_Q_Pos)
357#define xPSR_ICI_IT_2_Pos 25U
358#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos)
360#define xPSR_T_Pos 24U
361#define xPSR_T_Msk (1UL << xPSR_T_Pos)
363#define xPSR_GE_Pos 16U
364#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos)
366#define xPSR_ICI_IT_1_Pos 10U
367#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos)
369#define xPSR_ISR_Pos 0U
370#define xPSR_ISR_Msk (0x1FFUL )
389#define CONTROL_FPCA_Pos 2U
390#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos)
392#define CONTROL_SPSEL_Pos 1U
393#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos)
395#define CONTROL_nPRIV_Pos 0U
396#define CONTROL_nPRIV_Msk (1UL )
413 __IOM uint32_t ISER[8U];
414 uint32_t RESERVED0[24U];
415 __IOM uint32_t ICER[8U];
416 uint32_t RESERVED1[24U];
417 __IOM uint32_t ISPR[8U];
418 uint32_t RESERVED2[24U];
419 __IOM uint32_t ICPR[8U];
420 uint32_t RESERVED3[24U];
421 __IOM uint32_t IABR[8U];
422 uint32_t RESERVED4[56U];
423 __IOM uint8_t IP[240U];
424 uint32_t RESERVED5[644U];
429#define NVIC_STIR_INTID_Pos 0U
430#define NVIC_STIR_INTID_Msk (0x1FFUL )
450 __IOM uint32_t AIRCR;
453 __IOM uint8_t SHP[12U];
454 __IOM uint32_t SHCSR;
458 __IOM uint32_t MMFAR;
461 __IM uint32_t PFR[2U];
464 __IM uint32_t MMFR[4U];
465 __IM uint32_t ISAR[5U];
466 uint32_t RESERVED0[5U];
467 __IOM uint32_t CPACR;
471#define SCB_CPUID_IMPLEMENTER_Pos 24U
472#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos)
474#define SCB_CPUID_VARIANT_Pos 20U
475#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos)
477#define SCB_CPUID_ARCHITECTURE_Pos 16U
478#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos)
480#define SCB_CPUID_PARTNO_Pos 4U
481#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos)
483#define SCB_CPUID_REVISION_Pos 0U
484#define SCB_CPUID_REVISION_Msk (0xFUL )
487#define SCB_ICSR_NMIPENDSET_Pos 31U
488#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos)
490#define SCB_ICSR_PENDSVSET_Pos 28U
491#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos)
493#define SCB_ICSR_PENDSVCLR_Pos 27U
494#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos)
496#define SCB_ICSR_PENDSTSET_Pos 26U
497#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos)
499#define SCB_ICSR_PENDSTCLR_Pos 25U
500#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos)
502#define SCB_ICSR_ISRPREEMPT_Pos 23U
503#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos)
505#define SCB_ICSR_ISRPENDING_Pos 22U
506#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos)
508#define SCB_ICSR_VECTPENDING_Pos 12U
509#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos)
511#define SCB_ICSR_RETTOBASE_Pos 11U
512#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos)
514#define SCB_ICSR_VECTACTIVE_Pos 0U
515#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL )
518#define SCB_VTOR_TBLOFF_Pos 7U
519#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos)
522#define SCB_AIRCR_VECTKEY_Pos 16U
523#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos)
525#define SCB_AIRCR_VECTKEYSTAT_Pos 16U
526#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos)
528#define SCB_AIRCR_ENDIANESS_Pos 15U
529#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos)
531#define SCB_AIRCR_PRIGROUP_Pos 8U
532#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos)
534#define SCB_AIRCR_SYSRESETREQ_Pos 2U
535#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos)
537#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U
538#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos)
540#define SCB_AIRCR_VECTRESET_Pos 0U
541#define SCB_AIRCR_VECTRESET_Msk (1UL )
544#define SCB_SCR_SEVONPEND_Pos 4U
545#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos)
547#define SCB_SCR_SLEEPDEEP_Pos 2U
548#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos)
550#define SCB_SCR_SLEEPONEXIT_Pos 1U
551#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos)
554#define SCB_CCR_STKALIGN_Pos 9U
555#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos)
557#define SCB_CCR_BFHFNMIGN_Pos 8U
558#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos)
560#define SCB_CCR_DIV_0_TRP_Pos 4U
561#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos)
563#define SCB_CCR_UNALIGN_TRP_Pos 3U
564#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos)
566#define SCB_CCR_USERSETMPEND_Pos 1U
567#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos)
569#define SCB_CCR_NONBASETHRDENA_Pos 0U
570#define SCB_CCR_NONBASETHRDENA_Msk (1UL )
573#define SCB_SHCSR_USGFAULTENA_Pos 18U
574#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos)
576#define SCB_SHCSR_BUSFAULTENA_Pos 17U
577#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos)
579#define SCB_SHCSR_MEMFAULTENA_Pos 16U
580#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos)
582#define SCB_SHCSR_SVCALLPENDED_Pos 15U
583#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos)
585#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U
586#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos)
588#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U
589#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos)
591#define SCB_SHCSR_USGFAULTPENDED_Pos 12U
592#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos)
594#define SCB_SHCSR_SYSTICKACT_Pos 11U
595#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos)
597#define SCB_SHCSR_PENDSVACT_Pos 10U
598#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos)
600#define SCB_SHCSR_MONITORACT_Pos 8U
601#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos)
603#define SCB_SHCSR_SVCALLACT_Pos 7U
604#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos)
606#define SCB_SHCSR_USGFAULTACT_Pos 3U
607#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos)
609#define SCB_SHCSR_BUSFAULTACT_Pos 1U
610#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos)
612#define SCB_SHCSR_MEMFAULTACT_Pos 0U
613#define SCB_SHCSR_MEMFAULTACT_Msk (1UL )
616#define SCB_CFSR_USGFAULTSR_Pos 16U
617#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos)
619#define SCB_CFSR_BUSFAULTSR_Pos 8U
620#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos)
622#define SCB_CFSR_MEMFAULTSR_Pos 0U
623#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL )
626#define SCB_CFSR_MMARVALID_Pos (SCB_CFSR_MEMFAULTSR_Pos + 7U)
627#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos)
629#define SCB_CFSR_MLSPERR_Pos (SCB_CFSR_MEMFAULTSR_Pos + 5U)
630#define SCB_CFSR_MLSPERR_Msk (1UL << SCB_CFSR_MLSPERR_Pos)
632#define SCB_CFSR_MSTKERR_Pos (SCB_CFSR_MEMFAULTSR_Pos + 4U)
633#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos)
635#define SCB_CFSR_MUNSTKERR_Pos (SCB_CFSR_MEMFAULTSR_Pos + 3U)
636#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos)
638#define SCB_CFSR_DACCVIOL_Pos (SCB_CFSR_MEMFAULTSR_Pos + 1U)
639#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos)
641#define SCB_CFSR_IACCVIOL_Pos (SCB_CFSR_MEMFAULTSR_Pos + 0U)
642#define SCB_CFSR_IACCVIOL_Msk (1UL )
645#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U)
646#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos)
648#define SCB_CFSR_LSPERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 5U)
649#define SCB_CFSR_LSPERR_Msk (1UL << SCB_CFSR_LSPERR_Pos)
651#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U)
652#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos)
654#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U)
655#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos)
657#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U)
658#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos)
660#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U)
661#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos)
663#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U)
664#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos)
667#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U)
668#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos)
670#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U)
671#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos)
673#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U)
674#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos)
676#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U)
677#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos)
679#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U)
680#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos)
682#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U)
683#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos)
686#define SCB_HFSR_DEBUGEVT_Pos 31U
687#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos)
689#define SCB_HFSR_FORCED_Pos 30U
690#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos)
692#define SCB_HFSR_VECTTBL_Pos 1U
693#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos)
696#define SCB_DFSR_EXTERNAL_Pos 4U
697#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos)
699#define SCB_DFSR_VCATCH_Pos 3U
700#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos)
702#define SCB_DFSR_DWTTRAP_Pos 2U
703#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos)
705#define SCB_DFSR_BKPT_Pos 1U
706#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos)
708#define SCB_DFSR_HALTED_Pos 0U
709#define SCB_DFSR_HALTED_Msk (1UL )
726 uint32_t RESERVED0[1U];
728 __IOM uint32_t ACTLR;
732#define SCnSCB_ICTR_INTLINESNUM_Pos 0U
733#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL )
736#define SCnSCB_ACTLR_DISOOFP_Pos 9U
737#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos)
739#define SCnSCB_ACTLR_DISFPCA_Pos 8U
740#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos)
742#define SCnSCB_ACTLR_DISFOLD_Pos 2U
743#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos)
745#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U
746#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos)
748#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U
749#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL )
773#define SysTick_CTRL_COUNTFLAG_Pos 16U
774#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos)
776#define SysTick_CTRL_CLKSOURCE_Pos 2U
777#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos)
779#define SysTick_CTRL_TICKINT_Pos 1U
780#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos)
782#define SysTick_CTRL_ENABLE_Pos 0U
783#define SysTick_CTRL_ENABLE_Msk (1UL )
786#define SysTick_LOAD_RELOAD_Pos 0U
787#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL )
790#define SysTick_VAL_CURRENT_Pos 0U
791#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL )
794#define SysTick_CALIB_NOREF_Pos 31U
795#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos)
797#define SysTick_CALIB_SKEW_Pos 30U
798#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos)
800#define SysTick_CALIB_TENMS_Pos 0U
801#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL )
824 uint32_t RESERVED0[864U];
826 uint32_t RESERVED1[15U];
828 uint32_t RESERVED2[15U];
830 uint32_t RESERVED3[32U];
831 uint32_t RESERVED4[43U];
834 uint32_t RESERVED5[6U];
850#define ITM_TPR_PRIVMASK_Pos 0U
851#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL )
854#define ITM_TCR_BUSY_Pos 23U
855#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos)
857#define ITM_TCR_TraceBusID_Pos 16U
858#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos)
860#define ITM_TCR_GTSFREQ_Pos 10U
861#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos)
863#define ITM_TCR_TSPrescale_Pos 8U
864#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos)
866#define ITM_TCR_SWOENA_Pos 4U
867#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos)
869#define ITM_TCR_DWTENA_Pos 3U
870#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos)
872#define ITM_TCR_SYNCENA_Pos 2U
873#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos)
875#define ITM_TCR_TSENA_Pos 1U
876#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos)
878#define ITM_TCR_ITMENA_Pos 0U
879#define ITM_TCR_ITMENA_Msk (1UL )
882#define ITM_LSR_ByteAcc_Pos 2U
883#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos)
885#define ITM_LSR_Access_Pos 1U
886#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos)
888#define ITM_LSR_Present_Pos 0U
889#define ITM_LSR_Present_Msk (1UL )
907 __IOM uint32_t CYCCNT;
908 __IOM uint32_t CPICNT;
909 __IOM uint32_t EXCCNT;
910 __IOM uint32_t SLEEPCNT;
911 __IOM uint32_t LSUCNT;
912 __IOM uint32_t FOLDCNT;
914 __IOM uint32_t COMP0;
915 __IOM uint32_t MASK0;
916 __IOM uint32_t FUNCTION0;
917 uint32_t RESERVED0[1U];
919 __IOM uint32_t MASK1;
920 __IOM uint32_t FUNCTION1;
921 uint32_t RESERVED1[1U];
923 __IOM uint32_t MASK2;
924 __IOM uint32_t FUNCTION2;
925 uint32_t RESERVED2[1U];
926 __IOM uint32_t COMP3;
927 __IOM uint32_t MASK3;
928 __IOM uint32_t FUNCTION3;
932#define DWT_CTRL_NUMCOMP_Pos 28U
933#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos)
935#define DWT_CTRL_NOTRCPKT_Pos 27U
936#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos)
938#define DWT_CTRL_NOEXTTRIG_Pos 26U
939#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos)
941#define DWT_CTRL_NOCYCCNT_Pos 25U
942#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos)
944#define DWT_CTRL_NOPRFCNT_Pos 24U
945#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos)
947#define DWT_CTRL_CYCEVTENA_Pos 22U
948#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos)
950#define DWT_CTRL_FOLDEVTENA_Pos 21U
951#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos)
953#define DWT_CTRL_LSUEVTENA_Pos 20U
954#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos)
956#define DWT_CTRL_SLEEPEVTENA_Pos 19U
957#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos)
959#define DWT_CTRL_EXCEVTENA_Pos 18U
960#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos)
962#define DWT_CTRL_CPIEVTENA_Pos 17U
963#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos)
965#define DWT_CTRL_EXCTRCENA_Pos 16U
966#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos)
968#define DWT_CTRL_PCSAMPLENA_Pos 12U
969#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos)
971#define DWT_CTRL_SYNCTAP_Pos 10U
972#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos)
974#define DWT_CTRL_CYCTAP_Pos 9U
975#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos)
977#define DWT_CTRL_POSTINIT_Pos 5U
978#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos)
980#define DWT_CTRL_POSTPRESET_Pos 1U
981#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos)
983#define DWT_CTRL_CYCCNTENA_Pos 0U
984#define DWT_CTRL_CYCCNTENA_Msk (0x1UL )
987#define DWT_CPICNT_CPICNT_Pos 0U
988#define DWT_CPICNT_CPICNT_Msk (0xFFUL )
991#define DWT_EXCCNT_EXCCNT_Pos 0U
992#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL )
995#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U
996#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL )
999#define DWT_LSUCNT_LSUCNT_Pos 0U
1000#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL )
1003#define DWT_FOLDCNT_FOLDCNT_Pos 0U
1004#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL )
1007#define DWT_MASK_MASK_Pos 0U
1008#define DWT_MASK_MASK_Msk (0x1FUL )
1011#define DWT_FUNCTION_MATCHED_Pos 24U
1012#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos)
1014#define DWT_FUNCTION_DATAVADDR1_Pos 16U
1015#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos)
1017#define DWT_FUNCTION_DATAVADDR0_Pos 12U
1018#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos)
1020#define DWT_FUNCTION_DATAVSIZE_Pos 10U
1021#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos)
1023#define DWT_FUNCTION_LNK1ENA_Pos 9U
1024#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos)
1026#define DWT_FUNCTION_DATAVMATCH_Pos 8U
1027#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos)
1029#define DWT_FUNCTION_CYCMATCH_Pos 7U
1030#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos)
1032#define DWT_FUNCTION_EMITRANGE_Pos 5U
1033#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos)
1035#define DWT_FUNCTION_FUNCTION_Pos 0U
1036#define DWT_FUNCTION_FUNCTION_Msk (0xFUL )
1053 __IM uint32_t SSPSR;
1054 __IOM uint32_t CSPSR;
1055 uint32_t RESERVED0[2U];
1056 __IOM uint32_t ACPR;
1057 uint32_t RESERVED1[55U];
1058 __IOM uint32_t SPPR;
1059 uint32_t RESERVED2[131U];
1061 __IOM uint32_t FFCR;
1063 uint32_t RESERVED3[759U];
1064 __IM uint32_t TRIGGER;
1065 __IM uint32_t FIFO0;
1066 __IM uint32_t ITATBCTR2;
1067 uint32_t RESERVED4[1U];
1068 __IM uint32_t ITATBCTR0;
1069 __IM uint32_t FIFO1;
1070 __IOM uint32_t ITCTRL;
1071 uint32_t RESERVED5[39U];
1072 __IOM uint32_t CLAIMSET;
1073 __IOM uint32_t CLAIMCLR;
1074 uint32_t RESERVED7[8U];
1075 __IM uint32_t DEVID;
1076 __IM uint32_t DEVTYPE;
1080#define TPI_ACPR_PRESCALER_Pos 0U
1081#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL )
1084#define TPI_SPPR_TXMODE_Pos 0U
1085#define TPI_SPPR_TXMODE_Msk (0x3UL )
1088#define TPI_FFSR_FtNonStop_Pos 3U
1089#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos)
1091#define TPI_FFSR_TCPresent_Pos 2U
1092#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos)
1094#define TPI_FFSR_FtStopped_Pos 1U
1095#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos)
1097#define TPI_FFSR_FlInProg_Pos 0U
1098#define TPI_FFSR_FlInProg_Msk (0x1UL )
1101#define TPI_FFCR_TrigIn_Pos 8U
1102#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos)
1104#define TPI_FFCR_EnFCont_Pos 1U
1105#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos)
1108#define TPI_TRIGGER_TRIGGER_Pos 0U
1109#define TPI_TRIGGER_TRIGGER_Msk (0x1UL )
1112#define TPI_FIFO0_ITM_ATVALID_Pos 29U
1113#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos)
1115#define TPI_FIFO0_ITM_bytecount_Pos 27U
1116#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos)
1118#define TPI_FIFO0_ETM_ATVALID_Pos 26U
1119#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos)
1121#define TPI_FIFO0_ETM_bytecount_Pos 24U
1122#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos)
1124#define TPI_FIFO0_ETM2_Pos 16U
1125#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos)
1127#define TPI_FIFO0_ETM1_Pos 8U
1128#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos)
1130#define TPI_FIFO0_ETM0_Pos 0U
1131#define TPI_FIFO0_ETM0_Msk (0xFFUL )
1134#define TPI_ITATBCTR2_ATREADY2_Pos 0U
1135#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL )
1137#define TPI_ITATBCTR2_ATREADY1_Pos 0U
1138#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL )
1141#define TPI_FIFO1_ITM_ATVALID_Pos 29U
1142#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos)
1144#define TPI_FIFO1_ITM_bytecount_Pos 27U
1145#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos)
1147#define TPI_FIFO1_ETM_ATVALID_Pos 26U
1148#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos)
1150#define TPI_FIFO1_ETM_bytecount_Pos 24U
1151#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos)
1153#define TPI_FIFO1_ITM2_Pos 16U
1154#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos)
1156#define TPI_FIFO1_ITM1_Pos 8U
1157#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos)
1159#define TPI_FIFO1_ITM0_Pos 0U
1160#define TPI_FIFO1_ITM0_Msk (0xFFUL )
1163#define TPI_ITATBCTR0_ATREADY2_Pos 0U
1164#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL )
1166#define TPI_ITATBCTR0_ATREADY1_Pos 0U
1167#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL )
1170#define TPI_ITCTRL_Mode_Pos 0U
1171#define TPI_ITCTRL_Mode_Msk (0x3UL )
1174#define TPI_DEVID_NRZVALID_Pos 11U
1175#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos)
1177#define TPI_DEVID_MANCVALID_Pos 10U
1178#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos)
1180#define TPI_DEVID_PTINVALID_Pos 9U
1181#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos)
1183#define TPI_DEVID_MinBufSz_Pos 6U
1184#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos)
1186#define TPI_DEVID_AsynClkIn_Pos 5U
1187#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos)
1189#define TPI_DEVID_NrTraceInput_Pos 0U
1190#define TPI_DEVID_NrTraceInput_Msk (0x1FUL )
1193#define TPI_DEVTYPE_SubType_Pos 4U
1194#define TPI_DEVTYPE_SubType_Msk (0xFUL )
1196#define TPI_DEVTYPE_MajorType_Pos 0U
1197#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos)
1202#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
1216 __IOM uint32_t CTRL;
1218 __IOM uint32_t RBAR;
1219 __IOM uint32_t RASR;
1220 __IOM uint32_t RBAR_A1;
1221 __IOM uint32_t RASR_A1;
1222 __IOM uint32_t RBAR_A2;
1223 __IOM uint32_t RASR_A2;
1224 __IOM uint32_t RBAR_A3;
1225 __IOM uint32_t RASR_A3;
1228#define MPU_TYPE_RALIASES 4U
1231#define MPU_TYPE_IREGION_Pos 16U
1232#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos)
1234#define MPU_TYPE_DREGION_Pos 8U
1235#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos)
1237#define MPU_TYPE_SEPARATE_Pos 0U
1238#define MPU_TYPE_SEPARATE_Msk (1UL )
1241#define MPU_CTRL_PRIVDEFENA_Pos 2U
1242#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos)
1244#define MPU_CTRL_HFNMIENA_Pos 1U
1245#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos)
1247#define MPU_CTRL_ENABLE_Pos 0U
1248#define MPU_CTRL_ENABLE_Msk (1UL )
1251#define MPU_RNR_REGION_Pos 0U
1252#define MPU_RNR_REGION_Msk (0xFFUL )
1255#define MPU_RBAR_ADDR_Pos 5U
1256#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos)
1258#define MPU_RBAR_VALID_Pos 4U
1259#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos)
1261#define MPU_RBAR_REGION_Pos 0U
1262#define MPU_RBAR_REGION_Msk (0xFUL )
1265#define MPU_RASR_ATTRS_Pos 16U
1266#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos)
1268#define MPU_RASR_XN_Pos 28U
1269#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos)
1271#define MPU_RASR_AP_Pos 24U
1272#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos)
1274#define MPU_RASR_TEX_Pos 19U
1275#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos)
1277#define MPU_RASR_S_Pos 18U
1278#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos)
1280#define MPU_RASR_C_Pos 17U
1281#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos)
1283#define MPU_RASR_B_Pos 16U
1284#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos)
1286#define MPU_RASR_SRD_Pos 8U
1287#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos)
1289#define MPU_RASR_SIZE_Pos 1U
1290#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos)
1292#define MPU_RASR_ENABLE_Pos 0U
1293#define MPU_RASR_ENABLE_Msk (1UL )
1311 uint32_t RESERVED0[1U];
1312 __IOM uint32_t FPCCR;
1313 __IOM uint32_t FPCAR;
1314 __IOM uint32_t FPDSCR;
1315 __IM uint32_t MVFR0;
1316 __IM uint32_t MVFR1;
1317 __IM uint32_t MVFR2;
1321#define FPU_FPCCR_ASPEN_Pos 31U
1322#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos)
1324#define FPU_FPCCR_LSPEN_Pos 30U
1325#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos)
1327#define FPU_FPCCR_MONRDY_Pos 8U
1328#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos)
1330#define FPU_FPCCR_BFRDY_Pos 6U
1331#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos)
1333#define FPU_FPCCR_MMRDY_Pos 5U
1334#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos)
1336#define FPU_FPCCR_HFRDY_Pos 4U
1337#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos)
1339#define FPU_FPCCR_THREAD_Pos 3U
1340#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos)
1342#define FPU_FPCCR_USER_Pos 1U
1343#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos)
1345#define FPU_FPCCR_LSPACT_Pos 0U
1346#define FPU_FPCCR_LSPACT_Msk (1UL )
1349#define FPU_FPCAR_ADDRESS_Pos 3U
1350#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos)
1353#define FPU_FPDSCR_AHP_Pos 26U
1354#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos)
1356#define FPU_FPDSCR_DN_Pos 25U
1357#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos)
1359#define FPU_FPDSCR_FZ_Pos 24U
1360#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos)
1362#define FPU_FPDSCR_RMode_Pos 22U
1363#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos)
1366#define FPU_MVFR0_FP_rounding_modes_Pos 28U
1367#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos)
1369#define FPU_MVFR0_Short_vectors_Pos 24U
1370#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos)
1372#define FPU_MVFR0_Square_root_Pos 20U
1373#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos)
1375#define FPU_MVFR0_Divide_Pos 16U
1376#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos)
1378#define FPU_MVFR0_FP_excep_trapping_Pos 12U
1379#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos)
1381#define FPU_MVFR0_Double_precision_Pos 8U
1382#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos)
1384#define FPU_MVFR0_Single_precision_Pos 4U
1385#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos)
1387#define FPU_MVFR0_A_SIMD_registers_Pos 0U
1388#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL )
1391#define FPU_MVFR1_FP_fused_MAC_Pos 28U
1392#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos)
1394#define FPU_MVFR1_FP_HPFP_Pos 24U
1395#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos)
1397#define FPU_MVFR1_D_NaN_mode_Pos 4U
1398#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos)
1400#define FPU_MVFR1_FtZ_mode_Pos 0U
1401#define FPU_MVFR1_FtZ_mode_Msk (0xFUL )
1405#define FPU_MVFR2_VFP_Misc_Pos 4U
1406#define FPU_MVFR2_VFP_Misc_Msk (0xFUL << FPU_MVFR2_VFP_Misc_Pos)
1423 __IOM uint32_t DHCSR;
1424 __OM uint32_t DCRSR;
1425 __IOM uint32_t DCRDR;
1426 __IOM uint32_t DEMCR;
1430#define CoreDebug_DHCSR_DBGKEY_Pos 16U
1431#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos)
1433#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U
1434#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos)
1436#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U
1437#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos)
1439#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U
1440#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos)
1442#define CoreDebug_DHCSR_S_SLEEP_Pos 18U
1443#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos)
1445#define CoreDebug_DHCSR_S_HALT_Pos 17U
1446#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos)
1448#define CoreDebug_DHCSR_S_REGRDY_Pos 16U
1449#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos)
1451#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U
1452#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos)
1454#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U
1455#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos)
1457#define CoreDebug_DHCSR_C_STEP_Pos 2U
1458#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos)
1460#define CoreDebug_DHCSR_C_HALT_Pos 1U
1461#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos)
1463#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U
1464#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL )
1467#define CoreDebug_DCRSR_REGWnR_Pos 16U
1468#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos)
1470#define CoreDebug_DCRSR_REGSEL_Pos 0U
1471#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL )
1474#define CoreDebug_DEMCR_TRCENA_Pos 24U
1475#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos)
1477#define CoreDebug_DEMCR_MON_REQ_Pos 19U
1478#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos)
1480#define CoreDebug_DEMCR_MON_STEP_Pos 18U
1481#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos)
1483#define CoreDebug_DEMCR_MON_PEND_Pos 17U
1484#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos)
1486#define CoreDebug_DEMCR_MON_EN_Pos 16U
1487#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos)
1489#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U
1490#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos)
1492#define CoreDebug_DEMCR_VC_INTERR_Pos 9U
1493#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos)
1495#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U
1496#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos)
1498#define CoreDebug_DEMCR_VC_STATERR_Pos 7U
1499#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos)
1501#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U
1502#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos)
1504#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U
1505#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos)
1507#define CoreDebug_DEMCR_VC_MMERR_Pos 4U
1508#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos)
1510#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U
1511#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL )
1529#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk)
1537#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos)
1550#define SCS_BASE (0xE000E000UL)
1551#define ITM_BASE (0xE0000000UL)
1552#define DWT_BASE (0xE0001000UL)
1553#define TPI_BASE (0xE0040000UL)
1554#define CoreDebug_BASE (0xE000EDF0UL)
1555#define SysTick_BASE (SCS_BASE + 0x0010UL)
1556#define NVIC_BASE (SCS_BASE + 0x0100UL)
1557#define SCB_BASE (SCS_BASE + 0x0D00UL)
1559#define SCnSCB ((SCnSCB_Type *) SCS_BASE )
1560#define SCB ((SCB_Type *) SCB_BASE )
1561#define SysTick ((SysTick_Type *) SysTick_BASE )
1562#define NVIC ((NVIC_Type *) NVIC_BASE )
1563#define ITM ((ITM_Type *) ITM_BASE )
1564#define DWT ((DWT_Type *) DWT_BASE )
1565#define TPI ((TPI_Type *) TPI_BASE )
1566#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE)
1568#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
1569 #define MPU_BASE (SCS_BASE + 0x0D90UL)
1570 #define MPU ((MPU_Type *) MPU_BASE )
1573#define FPU_BASE (SCS_BASE + 0x0F30UL)
1574#define FPU ((FPU_Type *) FPU_BASE )
1602#ifdef CMSIS_NVIC_VIRTUAL
1603 #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE
1604 #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h"
1606 #include CMSIS_NVIC_VIRTUAL_HEADER_FILE
1608 #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping
1609 #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping
1610 #define NVIC_EnableIRQ __NVIC_EnableIRQ
1611 #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ
1612 #define NVIC_DisableIRQ __NVIC_DisableIRQ
1613 #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ
1614 #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ
1615 #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ
1616 #define NVIC_GetActive __NVIC_GetActive
1617 #define NVIC_SetPriority __NVIC_SetPriority
1618 #define NVIC_GetPriority __NVIC_GetPriority
1619 #define NVIC_SystemReset __NVIC_SystemReset
1622#ifdef CMSIS_VECTAB_VIRTUAL
1623 #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE
1624 #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h"
1626 #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE
1628 #define NVIC_SetVector __NVIC_SetVector
1629 #define NVIC_GetVector __NVIC_GetVector
1632#define NVIC_USER_IRQ_OFFSET 16
1636#define EXC_RETURN_HANDLER (0xFFFFFFF1UL)
1637#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL)
1638#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL)
1639#define EXC_RETURN_HANDLER_FPU (0xFFFFFFE1UL)
1640#define EXC_RETURN_THREAD_MSP_FPU (0xFFFFFFE9UL)
1641#define EXC_RETURN_THREAD_PSP_FPU (0xFFFFFFEDUL)
1656 uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);
1658 reg_value =
SCB->AIRCR;
1660 reg_value = (reg_value |
1663 SCB->AIRCR = reg_value;
1686 if ((int32_t)(IRQn) >= 0)
1689 NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
1705 if ((int32_t)(IRQn) >= 0)
1707 return((uint32_t)(((
NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
1724 if ((int32_t)(IRQn) >= 0)
1726 NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
1743 if ((int32_t)(IRQn) >= 0)
1745 return((uint32_t)(((
NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
1762 if ((int32_t)(IRQn) >= 0)
1764 NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
1777 if ((int32_t)(IRQn) >= 0)
1779 NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
1794 if ((int32_t)(IRQn) >= 0)
1796 return((uint32_t)(((
NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
1816 if ((int32_t)(IRQn) >= 0)
1818 NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U -
__NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
1822 SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U -
__NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
1839 if ((int32_t)(IRQn) >= 0)
1863 uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);
1864 uint32_t PreemptPriorityBits;
1865 uint32_t SubPriorityBits;
1868 SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(
__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(
__NVIC_PRIO_BITS));
1871 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
1872 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
1890 uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);
1891 uint32_t PreemptPriorityBits;
1892 uint32_t SubPriorityBits;
1895 SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(
__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(
__NVIC_PRIO_BITS));
1897 *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL);
1898 *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL);
1913 uint32_t *vectors = (uint32_t *)
SCB->VTOR;
1929 uint32_t *vectors = (uint32_t *)
SCB->VTOR;
1958#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
2009#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U)
2029 SysTick->LOAD = (uint32_t)(ticks - 1UL);
2053#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U)
2067 ((
ITM->TER & 1UL ) != 0UL) )
2069 while (
ITM->PORT[0U].u32 == 0UL)
2073 ITM->PORT[0U].u8 = (uint8_t)
ch;
#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 FPU_MVFR0_Double_precision_Msk
MVFR0: Double-precision bits Mask.
#define ITM_TCR_ITMENA_Msk
ITM TCR: ITM Enable bit Mask.
#define SCB_AIRCR_PRIGROUP_Msk
SCB AIRCR: PRIGROUP Mask.
#define SCB_AIRCR_VECTKEY_Msk
SCB AIRCR: VECTKEY Mask.
#define FPU_MVFR0_Single_precision_Msk
MVFR0: Single-precision bits 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 ITM
ITM configuration struct.
#define FPU
Floating Point Unit.
#define NVIC
NVIC configuration struct.
#define SCB_AIRCR_PRIGROUP_Pos
SCB AIRCR: PRIGROUP Position.
#define SysTick
SysTick configuration struct.
#define __NVIC_SetPriorityGrouping(X)
#define __NVIC_GetPriorityGrouping()
Get Priority Grouping.
#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 void NVIC_DecodePriority(uint32_t Priority, uint32_t PriorityGroup, uint32_t *const pPreemptPriority, uint32_t *const pSubPriority)
Decode Priority.
__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 uint32_t __NVIC_GetActive(IRQn_Type IRQn)
Get Active Interrupt.
__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 uint32_t NVIC_EncodePriority(uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
Encode Priority.
__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 FPCA
bit: 2 FP extension active flag
uint32_t V
bit: 28 Overflow condition code flag
uint32_t Z
bit: 30 Zero condition code flag
volatile int32_t ITM_RxBuffer
External variable to receive characters.
uint32_t ICI_IT_1
bit: 10..15 ICI/IT part 1
__OM uint8_t u8
Offset: 0x000 ( /W) ITM Stimulus Port 8-bit.
uint32_t Q
bit: 27 Saturation condition flag
uint32_t GE
bit: 16..19 Greater than or Equal flags
uint32_t _reserved0
bit: 3..31 Reserved
uint32_t Z
bit: 30 Zero condition code flag
uint32_t _reserved0
bit: 0..15 Reserved
__OM uint32_t u32
Offset: 0x000 ( /W) ITM Stimulus Port 32-bit.
uint32_t GE
bit: 16..19 Greater than or Equal flags
uint32_t _reserved0
bit: 9..31 Reserved
uint32_t N
bit: 31 Negative condition code flag
uint32_t _reserved1
bit: 20..26 Reserved
uint32_t nPRIV
bit: 0 Execution privilege in Thread mode
uint32_t _reserved1
bit: 20..23 Reserved
uint32_t C
bit: 29 Carry condition code flag
uint32_t SPSEL
bit: 1 Stack to be used
__OM uint16_t u16
Offset: 0x000 ( /W) ITM Stimulus Port 16-bit.
#define ITM_RXBUFFER_EMPTY
Value identifying ITM_RxBuffer is ready for next character.
uint32_t Q
bit: 27 Saturation condition flag
uint32_t V
bit: 28 Overflow condition code flag
__STATIC_INLINE int32_t ITM_ReceiveChar(void)
ITM Receive Character.
uint32_t C
bit: 29 Carry condition code flag
__STATIC_INLINE uint32_t ITM_SendChar(uint32_t ch)
ITM Send Character.
uint32_t ICI_IT_2
bit: 25..26 ICI/IT part 2
uint32_t N
bit: 31 Negative condition code flag
__STATIC_INLINE int32_t ITM_CheckChar(void)
ITM Check Character.
uint32_t _reserved0
bit: 9 Reserved
uint32_t T
bit: 24 Thumb bit
#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 Core Debug Register (CoreDebug).
Structure type to access the Data Watchpoint and Trace Register (DWT).
Structure type to access the Floating Point Unit (FPU).
Structure type to access the Instrumentation Trace Macrocell Register (ITM).
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).
Structure type to access the Trace Port Interface Register (TPI).
static std::string ch(int ain, const std::string &kind, const std::string &extra="", const std::string &board="lj")
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).