25#if defined ( __ICCARM__ )
26 #pragma system_include
27#elif defined (__clang__)
28 #pragma clang system_header
31#ifndef __CORE_CM3_H_GENERIC
32#define __CORE_CM3_H_GENERIC
66#define __CM3_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN)
67#define __CM3_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB)
68#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16U) | \
69 __CM3_CMSIS_VERSION_SUB )
71#define __CORTEX_M (3U)
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_CM3_H_DEPENDANT
127#define __CORE_CM3_H_DEPENDANT
134#if defined __CHECK_DEVICE_DEFINES
136 #define __CM3_REV 0x0200U
137 #warning "__CM3_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 1U
147 #warning "__VTOR_PRESENT not defined in device header file; using default!"
150 #ifndef __NVIC_PRIO_BITS
151 #define __NVIC_PRIO_BITS 3U
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
226#define APSR_N_Pos 31U
227#define APSR_N_Msk (1UL << APSR_N_Pos)
229#define APSR_Z_Pos 30U
230#define APSR_Z_Msk (1UL << APSR_Z_Pos)
232#define APSR_C_Pos 29U
233#define APSR_C_Msk (1UL << APSR_C_Pos)
235#define APSR_V_Pos 28U
236#define APSR_V_Msk (1UL << APSR_V_Pos)
238#define APSR_Q_Pos 27U
239#define APSR_Q_Msk (1UL << APSR_Q_Pos)
256#define IPSR_ISR_Pos 0U
257#define IPSR_ISR_Msk (0x1FFUL )
283#define xPSR_N_Pos 31U
284#define xPSR_N_Msk (1UL << xPSR_N_Pos)
286#define xPSR_Z_Pos 30U
287#define xPSR_Z_Msk (1UL << xPSR_Z_Pos)
289#define xPSR_C_Pos 29U
290#define xPSR_C_Msk (1UL << xPSR_C_Pos)
292#define xPSR_V_Pos 28U
293#define xPSR_V_Msk (1UL << xPSR_V_Pos)
295#define xPSR_Q_Pos 27U
296#define xPSR_Q_Msk (1UL << xPSR_Q_Pos)
298#define xPSR_ICI_IT_2_Pos 25U
299#define xPSR_ICI_IT_2_Msk (3UL << xPSR_ICI_IT_2_Pos)
301#define xPSR_T_Pos 24U
302#define xPSR_T_Msk (1UL << xPSR_T_Pos)
304#define xPSR_ICI_IT_1_Pos 10U
305#define xPSR_ICI_IT_1_Msk (0x3FUL << xPSR_ICI_IT_1_Pos)
307#define xPSR_ISR_Pos 0U
308#define xPSR_ISR_Msk (0x1FFUL )
326#define CONTROL_SPSEL_Pos 1U
327#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos)
329#define CONTROL_nPRIV_Pos 0U
330#define CONTROL_nPRIV_Msk (1UL )
347 __IOM uint32_t ISER[8U];
348 uint32_t RESERVED0[24U];
349 __IOM uint32_t ICER[8U];
350 uint32_t RESERVED1[24U];
351 __IOM uint32_t ISPR[8U];
352 uint32_t RESERVED2[24U];
353 __IOM uint32_t ICPR[8U];
354 uint32_t RESERVED3[24U];
355 __IOM uint32_t IABR[8U];
356 uint32_t RESERVED4[56U];
363#define NVIC_STIR_INTID_Pos 0U
364#define NVIC_STIR_INTID_Msk (0x1FFUL )
384 __IOM uint32_t AIRCR;
405#define SCB_CPUID_IMPLEMENTER_Pos 24U
406#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos)
408#define SCB_CPUID_VARIANT_Pos 20U
409#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos)
411#define SCB_CPUID_ARCHITECTURE_Pos 16U
412#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos)
414#define SCB_CPUID_PARTNO_Pos 4U
415#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos)
417#define SCB_CPUID_REVISION_Pos 0U
418#define SCB_CPUID_REVISION_Msk (0xFUL )
421#define SCB_ICSR_NMIPENDSET_Pos 31U
422#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos)
424#define SCB_ICSR_PENDSVSET_Pos 28U
425#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos)
427#define SCB_ICSR_PENDSVCLR_Pos 27U
428#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos)
430#define SCB_ICSR_PENDSTSET_Pos 26U
431#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos)
433#define SCB_ICSR_PENDSTCLR_Pos 25U
434#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos)
436#define SCB_ICSR_ISRPREEMPT_Pos 23U
437#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos)
439#define SCB_ICSR_ISRPENDING_Pos 22U
440#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos)
442#define SCB_ICSR_VECTPENDING_Pos 12U
443#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos)
445#define SCB_ICSR_RETTOBASE_Pos 11U
446#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos)
448#define SCB_ICSR_VECTACTIVE_Pos 0U
449#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL )
452#if defined (__CM3_REV) && (__CM3_REV < 0x0201U)
453#define SCB_VTOR_TBLBASE_Pos 29U
454#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos)
456#define SCB_VTOR_TBLOFF_Pos 7U
457#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos)
459#define SCB_VTOR_TBLOFF_Pos 7U
460#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos)
464#define SCB_AIRCR_VECTKEY_Pos 16U
465#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos)
467#define SCB_AIRCR_VECTKEYSTAT_Pos 16U
468#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos)
470#define SCB_AIRCR_ENDIANESS_Pos 15U
471#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos)
473#define SCB_AIRCR_PRIGROUP_Pos 8U
474#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos)
476#define SCB_AIRCR_SYSRESETREQ_Pos 2U
477#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos)
479#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U
480#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos)
482#define SCB_AIRCR_VECTRESET_Pos 0U
483#define SCB_AIRCR_VECTRESET_Msk (1UL )
486#define SCB_SCR_SEVONPEND_Pos 4U
487#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos)
489#define SCB_SCR_SLEEPDEEP_Pos 2U
490#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos)
492#define SCB_SCR_SLEEPONEXIT_Pos 1U
493#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos)
496#define SCB_CCR_STKALIGN_Pos 9U
497#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos)
499#define SCB_CCR_BFHFNMIGN_Pos 8U
500#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos)
502#define SCB_CCR_DIV_0_TRP_Pos 4U
503#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos)
505#define SCB_CCR_UNALIGN_TRP_Pos 3U
506#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos)
508#define SCB_CCR_USERSETMPEND_Pos 1U
509#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos)
511#define SCB_CCR_NONBASETHRDENA_Pos 0U
512#define SCB_CCR_NONBASETHRDENA_Msk (1UL )
515#define SCB_SHCSR_USGFAULTENA_Pos 18U
516#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos)
518#define SCB_SHCSR_BUSFAULTENA_Pos 17U
519#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos)
521#define SCB_SHCSR_MEMFAULTENA_Pos 16U
522#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos)
524#define SCB_SHCSR_SVCALLPENDED_Pos 15U
525#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos)
527#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U
528#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos)
530#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U
531#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos)
533#define SCB_SHCSR_USGFAULTPENDED_Pos 12U
534#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos)
536#define SCB_SHCSR_SYSTICKACT_Pos 11U
537#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos)
539#define SCB_SHCSR_PENDSVACT_Pos 10U
540#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos)
542#define SCB_SHCSR_MONITORACT_Pos 8U
543#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos)
545#define SCB_SHCSR_SVCALLACT_Pos 7U
546#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos)
548#define SCB_SHCSR_USGFAULTACT_Pos 3U
549#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos)
551#define SCB_SHCSR_BUSFAULTACT_Pos 1U
552#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos)
554#define SCB_SHCSR_MEMFAULTACT_Pos 0U
555#define SCB_SHCSR_MEMFAULTACT_Msk (1UL )
558#define SCB_CFSR_USGFAULTSR_Pos 16U
559#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos)
561#define SCB_CFSR_BUSFAULTSR_Pos 8U
562#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos)
564#define SCB_CFSR_MEMFAULTSR_Pos 0U
565#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL )
568#define SCB_CFSR_MMARVALID_Pos (SCB_CFSR_MEMFAULTSR_Pos + 7U)
569#define SCB_CFSR_MMARVALID_Msk (1UL << SCB_CFSR_MMARVALID_Pos)
571#define SCB_CFSR_MSTKERR_Pos (SCB_CFSR_MEMFAULTSR_Pos + 4U)
572#define SCB_CFSR_MSTKERR_Msk (1UL << SCB_CFSR_MSTKERR_Pos)
574#define SCB_CFSR_MUNSTKERR_Pos (SCB_CFSR_MEMFAULTSR_Pos + 3U)
575#define SCB_CFSR_MUNSTKERR_Msk (1UL << SCB_CFSR_MUNSTKERR_Pos)
577#define SCB_CFSR_DACCVIOL_Pos (SCB_CFSR_MEMFAULTSR_Pos + 1U)
578#define SCB_CFSR_DACCVIOL_Msk (1UL << SCB_CFSR_DACCVIOL_Pos)
580#define SCB_CFSR_IACCVIOL_Pos (SCB_CFSR_MEMFAULTSR_Pos + 0U)
581#define SCB_CFSR_IACCVIOL_Msk (1UL )
584#define SCB_CFSR_BFARVALID_Pos (SCB_CFSR_BUSFAULTSR_Pos + 7U)
585#define SCB_CFSR_BFARVALID_Msk (1UL << SCB_CFSR_BFARVALID_Pos)
587#define SCB_CFSR_STKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 4U)
588#define SCB_CFSR_STKERR_Msk (1UL << SCB_CFSR_STKERR_Pos)
590#define SCB_CFSR_UNSTKERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 3U)
591#define SCB_CFSR_UNSTKERR_Msk (1UL << SCB_CFSR_UNSTKERR_Pos)
593#define SCB_CFSR_IMPRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 2U)
594#define SCB_CFSR_IMPRECISERR_Msk (1UL << SCB_CFSR_IMPRECISERR_Pos)
596#define SCB_CFSR_PRECISERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 1U)
597#define SCB_CFSR_PRECISERR_Msk (1UL << SCB_CFSR_PRECISERR_Pos)
599#define SCB_CFSR_IBUSERR_Pos (SCB_CFSR_BUSFAULTSR_Pos + 0U)
600#define SCB_CFSR_IBUSERR_Msk (1UL << SCB_CFSR_IBUSERR_Pos)
603#define SCB_CFSR_DIVBYZERO_Pos (SCB_CFSR_USGFAULTSR_Pos + 9U)
604#define SCB_CFSR_DIVBYZERO_Msk (1UL << SCB_CFSR_DIVBYZERO_Pos)
606#define SCB_CFSR_UNALIGNED_Pos (SCB_CFSR_USGFAULTSR_Pos + 8U)
607#define SCB_CFSR_UNALIGNED_Msk (1UL << SCB_CFSR_UNALIGNED_Pos)
609#define SCB_CFSR_NOCP_Pos (SCB_CFSR_USGFAULTSR_Pos + 3U)
610#define SCB_CFSR_NOCP_Msk (1UL << SCB_CFSR_NOCP_Pos)
612#define SCB_CFSR_INVPC_Pos (SCB_CFSR_USGFAULTSR_Pos + 2U)
613#define SCB_CFSR_INVPC_Msk (1UL << SCB_CFSR_INVPC_Pos)
615#define SCB_CFSR_INVSTATE_Pos (SCB_CFSR_USGFAULTSR_Pos + 1U)
616#define SCB_CFSR_INVSTATE_Msk (1UL << SCB_CFSR_INVSTATE_Pos)
618#define SCB_CFSR_UNDEFINSTR_Pos (SCB_CFSR_USGFAULTSR_Pos + 0U)
619#define SCB_CFSR_UNDEFINSTR_Msk (1UL << SCB_CFSR_UNDEFINSTR_Pos)
622#define SCB_HFSR_DEBUGEVT_Pos 31U
623#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos)
625#define SCB_HFSR_FORCED_Pos 30U
626#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos)
628#define SCB_HFSR_VECTTBL_Pos 1U
629#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos)
632#define SCB_DFSR_EXTERNAL_Pos 4U
633#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos)
635#define SCB_DFSR_VCATCH_Pos 3U
636#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos)
638#define SCB_DFSR_DWTTRAP_Pos 2U
639#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos)
641#define SCB_DFSR_BKPT_Pos 1U
642#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos)
644#define SCB_DFSR_HALTED_Pos 0U
645#define SCB_DFSR_HALTED_Msk (1UL )
662 uint32_t RESERVED0[1U];
664#if defined (__CM3_REV) && (__CM3_REV >= 0x200U)
665 __IOM uint32_t ACTLR;
672#define SCnSCB_ICTR_INTLINESNUM_Pos 0U
673#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL )
676#if defined (__CM3_REV) && (__CM3_REV >= 0x200U)
677#define SCnSCB_ACTLR_DISOOFP_Pos 9U
678#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos)
680#define SCnSCB_ACTLR_DISFPCA_Pos 8U
681#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos)
683#define SCnSCB_ACTLR_DISFOLD_Pos 2U
684#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos)
686#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U
687#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos)
689#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U
690#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL )
715#define SysTick_CTRL_COUNTFLAG_Pos 16U
716#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos)
718#define SysTick_CTRL_CLKSOURCE_Pos 2U
719#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos)
721#define SysTick_CTRL_TICKINT_Pos 1U
722#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos)
724#define SysTick_CTRL_ENABLE_Pos 0U
725#define SysTick_CTRL_ENABLE_Msk (1UL )
728#define SysTick_LOAD_RELOAD_Pos 0U
729#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL )
732#define SysTick_VAL_CURRENT_Pos 0U
733#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL )
736#define SysTick_CALIB_NOREF_Pos 31U
737#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos)
739#define SysTick_CALIB_SKEW_Pos 30U
740#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos)
742#define SysTick_CALIB_TENMS_Pos 0U
743#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL )
766 uint32_t RESERVED0[864U];
768 uint32_t RESERVED1[15U];
770 uint32_t RESERVED2[15U];
772 uint32_t RESERVED3[32U];
773 uint32_t RESERVED4[43U];
776 uint32_t RESERVED5[6U];
792#define ITM_TPR_PRIVMASK_Pos 0U
793#define ITM_TPR_PRIVMASK_Msk (0xFFFFFFFFUL )
796#define ITM_TCR_BUSY_Pos 23U
797#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos)
799#define ITM_TCR_TraceBusID_Pos 16U
800#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos)
802#define ITM_TCR_GTSFREQ_Pos 10U
803#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos)
805#define ITM_TCR_TSPrescale_Pos 8U
806#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos)
808#define ITM_TCR_SWOENA_Pos 4U
809#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos)
811#define ITM_TCR_DWTENA_Pos 3U
812#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos)
814#define ITM_TCR_SYNCENA_Pos 2U
815#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos)
817#define ITM_TCR_TSENA_Pos 1U
818#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos)
820#define ITM_TCR_ITMENA_Pos 0U
821#define ITM_TCR_ITMENA_Msk (1UL )
824#define ITM_LSR_ByteAcc_Pos 2U
825#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos)
827#define ITM_LSR_Access_Pos 1U
828#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos)
830#define ITM_LSR_Present_Pos 0U
831#define ITM_LSR_Present_Msk (1UL )
849 __IOM uint32_t CYCCNT;
850 __IOM uint32_t CPICNT;
851 __IOM uint32_t EXCCNT;
852 __IOM uint32_t SLEEPCNT;
853 __IOM uint32_t LSUCNT;
854 __IOM uint32_t FOLDCNT;
856 __IOM uint32_t COMP0;
874#define DWT_CTRL_NUMCOMP_Pos 28U
875#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos)
877#define DWT_CTRL_NOTRCPKT_Pos 27U
878#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos)
880#define DWT_CTRL_NOEXTTRIG_Pos 26U
881#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos)
883#define DWT_CTRL_NOCYCCNT_Pos 25U
884#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos)
886#define DWT_CTRL_NOPRFCNT_Pos 24U
887#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos)
889#define DWT_CTRL_CYCEVTENA_Pos 22U
890#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos)
892#define DWT_CTRL_FOLDEVTENA_Pos 21U
893#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos)
895#define DWT_CTRL_LSUEVTENA_Pos 20U
896#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos)
898#define DWT_CTRL_SLEEPEVTENA_Pos 19U
899#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos)
901#define DWT_CTRL_EXCEVTENA_Pos 18U
902#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos)
904#define DWT_CTRL_CPIEVTENA_Pos 17U
905#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos)
907#define DWT_CTRL_EXCTRCENA_Pos 16U
908#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos)
910#define DWT_CTRL_PCSAMPLENA_Pos 12U
911#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos)
913#define DWT_CTRL_SYNCTAP_Pos 10U
914#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos)
916#define DWT_CTRL_CYCTAP_Pos 9U
917#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos)
919#define DWT_CTRL_POSTINIT_Pos 5U
920#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos)
922#define DWT_CTRL_POSTPRESET_Pos 1U
923#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos)
925#define DWT_CTRL_CYCCNTENA_Pos 0U
926#define DWT_CTRL_CYCCNTENA_Msk (0x1UL )
929#define DWT_CPICNT_CPICNT_Pos 0U
930#define DWT_CPICNT_CPICNT_Msk (0xFFUL )
933#define DWT_EXCCNT_EXCCNT_Pos 0U
934#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL )
937#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U
938#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL )
941#define DWT_LSUCNT_LSUCNT_Pos 0U
942#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL )
945#define DWT_FOLDCNT_FOLDCNT_Pos 0U
946#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL )
949#define DWT_MASK_MASK_Pos 0U
950#define DWT_MASK_MASK_Msk (0x1FUL )
953#define DWT_FUNCTION_MATCHED_Pos 24U
954#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos)
956#define DWT_FUNCTION_DATAVADDR1_Pos 16U
957#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos)
959#define DWT_FUNCTION_DATAVADDR0_Pos 12U
960#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos)
962#define DWT_FUNCTION_DATAVSIZE_Pos 10U
963#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos)
965#define DWT_FUNCTION_LNK1ENA_Pos 9U
966#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos)
968#define DWT_FUNCTION_DATAVMATCH_Pos 8U
969#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos)
971#define DWT_FUNCTION_CYCMATCH_Pos 7U
972#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos)
974#define DWT_FUNCTION_EMITRANGE_Pos 5U
975#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos)
977#define DWT_FUNCTION_FUNCTION_Pos 0U
978#define DWT_FUNCTION_FUNCTION_Msk (0xFUL )
996 __IOM uint32_t CSPSR;
997 uint32_t RESERVED0[2U];
999 uint32_t RESERVED1[55U];
1000 __IOM uint32_t SPPR;
1001 uint32_t RESERVED2[131U];
1003 __IOM uint32_t FFCR;
1022#define TPI_ACPR_PRESCALER_Pos 0U
1023#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL )
1026#define TPI_SPPR_TXMODE_Pos 0U
1027#define TPI_SPPR_TXMODE_Msk (0x3UL )
1030#define TPI_FFSR_FtNonStop_Pos 3U
1031#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos)
1033#define TPI_FFSR_TCPresent_Pos 2U
1034#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos)
1036#define TPI_FFSR_FtStopped_Pos 1U
1037#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos)
1039#define TPI_FFSR_FlInProg_Pos 0U
1040#define TPI_FFSR_FlInProg_Msk (0x1UL )
1043#define TPI_FFCR_TrigIn_Pos 8U
1044#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos)
1046#define TPI_FFCR_EnFCont_Pos 1U
1047#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos)
1050#define TPI_TRIGGER_TRIGGER_Pos 0U
1051#define TPI_TRIGGER_TRIGGER_Msk (0x1UL )
1054#define TPI_FIFO0_ITM_ATVALID_Pos 29U
1055#define TPI_FIFO0_ITM_ATVALID_Msk (0x1UL << TPI_FIFO0_ITM_ATVALID_Pos)
1057#define TPI_FIFO0_ITM_bytecount_Pos 27U
1058#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos)
1060#define TPI_FIFO0_ETM_ATVALID_Pos 26U
1061#define TPI_FIFO0_ETM_ATVALID_Msk (0x1UL << TPI_FIFO0_ETM_ATVALID_Pos)
1063#define TPI_FIFO0_ETM_bytecount_Pos 24U
1064#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos)
1066#define TPI_FIFO0_ETM2_Pos 16U
1067#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos)
1069#define TPI_FIFO0_ETM1_Pos 8U
1070#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos)
1072#define TPI_FIFO0_ETM0_Pos 0U
1073#define TPI_FIFO0_ETM0_Msk (0xFFUL )
1076#define TPI_ITATBCTR2_ATREADY2_Pos 0U
1077#define TPI_ITATBCTR2_ATREADY2_Msk (0x1UL )
1079#define TPI_ITATBCTR2_ATREADY1_Pos 0U
1080#define TPI_ITATBCTR2_ATREADY1_Msk (0x1UL )
1083#define TPI_FIFO1_ITM_ATVALID_Pos 29U
1084#define TPI_FIFO1_ITM_ATVALID_Msk (0x1UL << TPI_FIFO1_ITM_ATVALID_Pos)
1086#define TPI_FIFO1_ITM_bytecount_Pos 27U
1087#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos)
1089#define TPI_FIFO1_ETM_ATVALID_Pos 26U
1090#define TPI_FIFO1_ETM_ATVALID_Msk (0x1UL << TPI_FIFO1_ETM_ATVALID_Pos)
1092#define TPI_FIFO1_ETM_bytecount_Pos 24U
1093#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos)
1095#define TPI_FIFO1_ITM2_Pos 16U
1096#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos)
1098#define TPI_FIFO1_ITM1_Pos 8U
1099#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos)
1101#define TPI_FIFO1_ITM0_Pos 0U
1102#define TPI_FIFO1_ITM0_Msk (0xFFUL )
1105#define TPI_ITATBCTR0_ATREADY2_Pos 0U
1106#define TPI_ITATBCTR0_ATREADY2_Msk (0x1UL )
1108#define TPI_ITATBCTR0_ATREADY1_Pos 0U
1109#define TPI_ITATBCTR0_ATREADY1_Msk (0x1UL )
1112#define TPI_ITCTRL_Mode_Pos 0U
1113#define TPI_ITCTRL_Mode_Msk (0x3UL )
1116#define TPI_DEVID_NRZVALID_Pos 11U
1117#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos)
1119#define TPI_DEVID_MANCVALID_Pos 10U
1120#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos)
1122#define TPI_DEVID_PTINVALID_Pos 9U
1123#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos)
1125#define TPI_DEVID_MinBufSz_Pos 6U
1126#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos)
1128#define TPI_DEVID_AsynClkIn_Pos 5U
1129#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos)
1131#define TPI_DEVID_NrTraceInput_Pos 0U
1132#define TPI_DEVID_NrTraceInput_Msk (0x1FUL )
1135#define TPI_DEVTYPE_SubType_Pos 4U
1136#define TPI_DEVTYPE_SubType_Msk (0xFUL )
1138#define TPI_DEVTYPE_MajorType_Pos 0U
1139#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos)
1144#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
1158 __IOM uint32_t CTRL;
1160 __IOM uint32_t RBAR;
1161 __IOM uint32_t RASR;
1162 __IOM uint32_t RBAR_A1;
1170#define MPU_TYPE_RALIASES 4U
1173#define MPU_TYPE_IREGION_Pos 16U
1174#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos)
1176#define MPU_TYPE_DREGION_Pos 8U
1177#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos)
1179#define MPU_TYPE_SEPARATE_Pos 0U
1180#define MPU_TYPE_SEPARATE_Msk (1UL )
1183#define MPU_CTRL_PRIVDEFENA_Pos 2U
1184#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos)
1186#define MPU_CTRL_HFNMIENA_Pos 1U
1187#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos)
1189#define MPU_CTRL_ENABLE_Pos 0U
1190#define MPU_CTRL_ENABLE_Msk (1UL )
1193#define MPU_RNR_REGION_Pos 0U
1194#define MPU_RNR_REGION_Msk (0xFFUL )
1197#define MPU_RBAR_ADDR_Pos 5U
1198#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos)
1200#define MPU_RBAR_VALID_Pos 4U
1201#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos)
1203#define MPU_RBAR_REGION_Pos 0U
1204#define MPU_RBAR_REGION_Msk (0xFUL )
1207#define MPU_RASR_ATTRS_Pos 16U
1208#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos)
1210#define MPU_RASR_XN_Pos 28U
1211#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos)
1213#define MPU_RASR_AP_Pos 24U
1214#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos)
1216#define MPU_RASR_TEX_Pos 19U
1217#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos)
1219#define MPU_RASR_S_Pos 18U
1220#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos)
1222#define MPU_RASR_C_Pos 17U
1223#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos)
1225#define MPU_RASR_B_Pos 16U
1226#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos)
1228#define MPU_RASR_SRD_Pos 8U
1229#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos)
1231#define MPU_RASR_SIZE_Pos 1U
1232#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos)
1234#define MPU_RASR_ENABLE_Pos 0U
1235#define MPU_RASR_ENABLE_Msk (1UL )
1253 __IOM uint32_t DHCSR;
1254 __OM uint32_t DCRSR;
1255 __IOM uint32_t DCRDR;
1256 __IOM uint32_t DEMCR;
1260#define CoreDebug_DHCSR_DBGKEY_Pos 16U
1261#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos)
1263#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U
1264#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos)
1266#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U
1267#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos)
1269#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U
1270#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos)
1272#define CoreDebug_DHCSR_S_SLEEP_Pos 18U
1273#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos)
1275#define CoreDebug_DHCSR_S_HALT_Pos 17U
1276#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos)
1278#define CoreDebug_DHCSR_S_REGRDY_Pos 16U
1279#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos)
1281#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U
1282#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos)
1284#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U
1285#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos)
1287#define CoreDebug_DHCSR_C_STEP_Pos 2U
1288#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos)
1290#define CoreDebug_DHCSR_C_HALT_Pos 1U
1291#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos)
1293#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U
1294#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL )
1297#define CoreDebug_DCRSR_REGWnR_Pos 16U
1298#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos)
1300#define CoreDebug_DCRSR_REGSEL_Pos 0U
1301#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL )
1304#define CoreDebug_DEMCR_TRCENA_Pos 24U
1305#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos)
1307#define CoreDebug_DEMCR_MON_REQ_Pos 19U
1308#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos)
1310#define CoreDebug_DEMCR_MON_STEP_Pos 18U
1311#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos)
1313#define CoreDebug_DEMCR_MON_PEND_Pos 17U
1314#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos)
1316#define CoreDebug_DEMCR_MON_EN_Pos 16U
1317#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos)
1319#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U
1320#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos)
1322#define CoreDebug_DEMCR_VC_INTERR_Pos 9U
1323#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos)
1325#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U
1326#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos)
1328#define CoreDebug_DEMCR_VC_STATERR_Pos 7U
1329#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos)
1331#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U
1332#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos)
1334#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U
1335#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos)
1337#define CoreDebug_DEMCR_VC_MMERR_Pos 4U
1338#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos)
1340#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U
1341#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL )
1359#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk)
1367#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos)
1380#define SCS_BASE (0xE000E000UL)
1381#define ITM_BASE (0xE0000000UL)
1382#define DWT_BASE (0xE0001000UL)
1383#define TPI_BASE (0xE0040000UL)
1384#define CoreDebug_BASE (0xE000EDF0UL)
1385#define SysTick_BASE (SCS_BASE + 0x0010UL)
1386#define NVIC_BASE (SCS_BASE + 0x0100UL)
1387#define SCB_BASE (SCS_BASE + 0x0D00UL)
1389#define SCnSCB ((SCnSCB_Type *) SCS_BASE )
1390#define SCB ((SCB_Type *) SCB_BASE )
1391#define SysTick ((SysTick_Type *) SysTick_BASE )
1392#define NVIC ((NVIC_Type *) NVIC_BASE )
1393#define ITM ((ITM_Type *) ITM_BASE )
1394#define DWT ((DWT_Type *) DWT_BASE )
1395#define TPI ((TPI_Type *) TPI_BASE )
1396#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE)
1398#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
1399 #define MPU_BASE (SCS_BASE + 0x0D90UL)
1400 #define MPU ((MPU_Type *) MPU_BASE )
1429#ifdef CMSIS_NVIC_VIRTUAL
1430 #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE
1431 #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h"
1433 #include CMSIS_NVIC_VIRTUAL_HEADER_FILE
1435 #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping
1436 #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping
1437 #define NVIC_EnableIRQ __NVIC_EnableIRQ
1438 #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ
1439 #define NVIC_DisableIRQ __NVIC_DisableIRQ
1440 #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ
1441 #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ
1442 #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ
1443 #define NVIC_GetActive __NVIC_GetActive
1444 #define NVIC_SetPriority __NVIC_SetPriority
1445 #define NVIC_GetPriority __NVIC_GetPriority
1446 #define NVIC_SystemReset __NVIC_SystemReset
1449#ifdef CMSIS_VECTAB_VIRTUAL
1450 #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE
1451 #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h"
1453 #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE
1455 #define NVIC_SetVector __NVIC_SetVector
1456 #define NVIC_GetVector __NVIC_GetVector
1459#define NVIC_USER_IRQ_OFFSET 16
1463#define EXC_RETURN_HANDLER (0xFFFFFFF1UL)
1464#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL)
1465#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL)
1480 uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);
1482 reg_value =
SCB->AIRCR;
1484 reg_value = (reg_value |
1487 SCB->AIRCR = reg_value;
1510 if ((int32_t)(IRQn) >= 0)
1513 NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
1529 if ((int32_t)(IRQn) >= 0)
1531 return((uint32_t)(((
NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
1548 if ((int32_t)(IRQn) >= 0)
1550 NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
1567 if ((int32_t)(IRQn) >= 0)
1569 return((uint32_t)(((
NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
1586 if ((int32_t)(IRQn) >= 0)
1588 NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
1601 if ((int32_t)(IRQn) >= 0)
1603 NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
1618 if ((int32_t)(IRQn) >= 0)
1620 return((uint32_t)(((
NVIC->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
1640 if ((int32_t)(IRQn) >= 0)
1642 NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U -
__NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
1646 SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U -
__NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
1663 if ((int32_t)(IRQn) >= 0)
1687 uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);
1688 uint32_t PreemptPriorityBits;
1689 uint32_t SubPriorityBits;
1692 SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(
__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(
__NVIC_PRIO_BITS));
1695 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
1696 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
1714 uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);
1715 uint32_t PreemptPriorityBits;
1716 uint32_t SubPriorityBits;
1719 SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(
__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(
__NVIC_PRIO_BITS));
1721 *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL);
1722 *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL);
1737 uint32_t *vectors = (uint32_t *)
SCB->VTOR;
1753 uint32_t *vectors = (uint32_t *)
SCB->VTOR;
1782#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
1823#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U)
1843 SysTick->LOAD = (uint32_t)(ticks - 1UL);
1867#define ITM_RXBUFFER_EMPTY ((int32_t)0x5AA55AA5U)
1881 ((
ITM->TER & 1UL ) != 0UL) )
1883 while (
ITM->PORT[0U].u32 == 0UL)
1887 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 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 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 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.
__IOM uint32_t CLAIMCLR
Offset: 0xFA4 (R/W) Claim tag clear.
__IM uint32_t TRIGGER
Offset: 0xEE8 (R/ ) TRIGGER Register.
__IOM uint32_t IP[8U]
Offset: 0x300 (R/W) Interrupt Priority Register.
__IOM uint32_t SHP[2U]
Offset: 0x01C (R/W) System Handlers Priority Registers.
__IOM uint32_t ITCTRL
Offset: 0xF00 (R/W) Integration Mode Control.
__IM uint32_t ITATBCTR0
Offset: 0xEF8 (R/ ) Integration Test ATB Control Register 0.
__IM uint32_t DEVID
Offset: 0xFC8 (R/ ) Device Configuration Register.
__IOM uint32_t CLAIMSET
Offset: 0xFA0 (R/W) Claim tag set.
__IOM uint32_t ITATBCTR2
Offset: 0xEF0 (R/W) Integration Test ATB Control Register 2.
__IOM uint32_t MASK2
Offset: 0x044 (R/W) Mask Register 2.
__IM uint32_t ISAR[5U]
Offset: 0x060 (R/ ) Instruction Set Attributes Register.
__IM uint32_t FIFO1
Offset: 0xEFC (R/ ) Integration ITM Data.
__IOM uint32_t CFSR
Offset: 0x028 (R/W) Configurable Fault Status Register.
uint32_t C
bit: 29 Carry condition code flag
volatile int32_t ITM_RxBuffer
External variable to receive characters.
__IOM uint32_t HFSR
Offset: 0x02C (R/W) HardFault Status Register.
uint32_t C
bit: 29 Carry condition code flag
__IOM uint32_t DFSR
Offset: 0x030 (R/W) Debug Fault Status Register.
uint32_t SPSEL
bit: 1 Stack to be used
__IOM uint32_t MASK3
Offset: 0x054 (R/W) Mask Register 3.
uint32_t nPRIV
bit: 0 Execution privilege in Thread mode
__IOM uint32_t MMFAR
Offset: 0x034 (R/W) MemManage Fault Address Register.
uint32_t N
bit: 31 Negative condition code flag
__IOM uint32_t RBAR_A3
Offset: 0x024 (R/W) MPU Region Base Address Register Alias 3.
uint32_t Z
bit: 30 Zero condition code flag
__OM uint32_t STIR
Offset: 0xE00 ( /W) Software Trigger Interrupt Register.
__IOM uint32_t COMP1
Offset: 0x030 (R/W) Comparator Register 1.
__IOM uint32_t BFAR
Offset: 0x038 (R/W) BusFault Address Register.
__IM uint32_t PFR[2U]
Offset: 0x040 (R/ ) Processor Feature Register.
__IM uint32_t MMFR[4U]
Offset: 0x050 (R/ ) Memory Model Feature Register.
uint32_t Z
bit: 30 Zero condition code flag
__IOM uint32_t FUNCTION3
Offset: 0x058 (R/W) Function Register 3.
__IOM uint32_t FUNCTION0
Offset: 0x028 (R/W) Function Register 0.
__IOM uint32_t RBAR_A2
Offset: 0x01C (R/W) MPU Region Base Address Register Alias 2.
__IOM uint32_t COMP2
Offset: 0x040 (R/W) Comparator Register 2.
uint32_t Q
bit: 27 Saturation condition flag
__OM uint8_t u8
Offset: 0x000 ( /W) ITM Stimulus Port 8-bit.
uint32_t _reserved0
bit: 9..31 Reserved
uint32_t Q
bit: 27 Saturation condition flag
uint32_t _reserved0
bit: 9 Reserved
__IOM uint32_t SHCSR
Offset: 0x024 (R/W) System Handler Control and State Register.
uint32_t _reserved1
bit: 2..31 Reserved
__IOM uint32_t MASK0
Offset: 0x024 (R/W) Mask Register 0.
__IM uint32_t DFR
Offset: 0x048 (R/ ) Debug Feature Register.
__IOM uint32_t COMP3
Offset: 0x050 (R/W) Comparator Register 3.
__IOM uint32_t FUNCTION1
Offset: 0x038 (R/W) Function Register 1.
uint32_t V
bit: 28 Overflow condition code flag
__IOM uint32_t RASR_A3
Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register.
uint32_t _reserved0
bit: 0..26 Reserved
__OM uint32_t u32
Offset: 0x000 ( /W) ITM Stimulus Port 32-bit.
__IM uint32_t FIFO0
Offset: 0xEEC (R/ ) Integration ETM Data.
uint32_t ICI_IT_1
bit: 10..15 ICI/IT part 1
uint32_t T
bit: 24 Thumb bit
#define ITM_RXBUFFER_EMPTY
Value identifying ITM_RxBuffer is ready for next character.
__IOM uint32_t MASK1
Offset: 0x034 (R/W) Mask Register 1.
uint32_t V
bit: 28 Overflow condition code flag
__IOM uint32_t FUNCTION2
Offset: 0x048 (R/W) Function Register 2.
__IOM uint32_t RASR_A1
Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register.
__IOM uint32_t AFSR
Offset: 0x03C (R/W) Auxiliary Fault Status Register.
uint32_t _reserved1
bit: 16..23 Reserved
__STATIC_INLINE int32_t ITM_ReceiveChar(void)
ITM Receive Character.
__OM uint16_t u16
Offset: 0x000 ( /W) ITM Stimulus Port 16-bit.
__IOM uint32_t RASR_A2
Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register.
__IOM uint32_t CPACR
Offset: 0x088 (R/W) Coprocessor Access Control Register.
__STATIC_INLINE uint32_t ITM_SendChar(uint32_t ch)
ITM Send Character.
__IM uint32_t FSCR
Offset: 0x308 (R/ ) Formatter Synchronization Counter Register.
__IM uint32_t DEVTYPE
Offset: 0xFCC (R/ ) Device Type Register.
uint32_t ICI_IT_2
bit: 25..26 ICI/IT part 2
__STATIC_INLINE int32_t ITM_CheckChar(void)
ITM Check Character.
__IM uint32_t ADR
Offset: 0x04C (R/ ) Auxiliary Feature Register.
uint32_t N
bit: 31 Negative 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 Core Debug Register (CoreDebug).
Structure type to access the Data Watchpoint and Trace Register (DWT).
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).