/**************************************************************************//** * @file core_cm4.h * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File * @version V5.1.2 * @date 04. June 2021 ******************************************************************************//* ... *//* * Copyright (c) 2009-2020 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the License); you may * not use this file except in compliance with the License. * You may obtain a copy of the License at * * www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an AS IS BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* ... */#ifdefined(__ICCARM__)#pragmasystem_include/* treat file as system include file for MISRA check */#elifdefined(__clang__)#pragmaclangsystem_header/* treat file as system include file */#endif#ifndef__CORE_CM4_H_GENERIC#define__CORE_CM4_H_GENERIC#include<stdint.h>#ifdef__cplusplusextern"C"{#endif/** \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions CMSIS violates the following MISRA-C:2004 rules: \li Required Rule 8.5, object/function definition in header file.<br> Function definitions in header files are used to allow 'inlining'. \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br> Unions are used for effective representation of core registers. \li Advisory Rule 19.7, Function-like macro defined.<br> Function-like macros are used to allow more efficient code. *//* ... *//******************************************************************************* * CMSIS definitions ******************************************************************************//* ... *//** \ingroup Cortex_M4 @{ *//* ... */#include"cmsis_version.h"/* CMSIS CM4 definitions */#define__CM4_CMSIS_VERSION_MAIN(__CM_CMSIS_VERSION_MAIN)/*!< \deprecated [31:16] CMSIS HAL main version */#define__CM4_CMSIS_VERSION_SUB(__CM_CMSIS_VERSION_SUB)/*!< \deprecated [15:0] CMSIS HAL sub version */#define__CM4_CMSIS_VERSION((__CM4_CMSIS_VERSION_MAIN<<16U)|\__CM4_CMSIS_VERSION_SUB)/*!< \deprecated CMSIS HAL version number */...#define__CORTEX_M(4U)/*!< Cortex-M Core *//** __FPU_USED indicates whether an FPU is used or not. For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions.*//* ... */#ifdefined(__CC_ARM)#ifdefined__TARGET_FPU_VFP#ifdefined(__FPU_PRESENT)&&(__FPU_PRESENT==1U)#define__FPU_USED1U#else#error"Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"#define__FPU_USED0U/* ... */#endif/* ... */#else#define__FPU_USED0U#endif/* ... */#elifdefined(__ARMCC_VERSION)&&(__ARMCC_VERSION>=6010050)#ifdefined__ARM_FP#ifdefined(__FPU_PRESENT)&&(__FPU_PRESENT==1U)#define__FPU_USED1U#else#warning"Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"#define__FPU_USED0U/* ... */#endif/* ... */#else#define__FPU_USED0U#endif/* ... */#elifdefined(__GNUC__)#ifdefined(__VFP_FP__)&&!defined(__SOFTFP__)#ifdefined(__FPU_PRESENT)&&(__FPU_PRESENT==1U)#define__FPU_USED1U#else#error"Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"#define__FPU_USED0U/* ... */#endif/* ... */#else#define__FPU_USED0U#endif/* ... */#elifdefined(__ICCARM__)#ifdefined__ARMVFP__#ifdefined(__FPU_PRESENT)&&(__FPU_PRESENT==1U)#define__FPU_USED1U#else#error"Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"#define__FPU_USED0U/* ... */#endif/* ... */#else#define__FPU_USED0U#endif/* ... */#elifdefined(__TI_ARM__)#ifdefined__TI_VFP_SUPPORT__#ifdefined(__FPU_PRESENT)&&(__FPU_PRESENT==1U)#define__FPU_USED1U#else#error"Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"#define__FPU_USED0U/* ... */#endif/* ... */#else#define__FPU_USED0U#endif/* ... */#elifdefined(__TASKING__)#ifdefined__FPU_VFP__#ifdefined(__FPU_PRESENT)&&(__FPU_PRESENT==1U)#define__FPU_USED1U#else#error"Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"#define__FPU_USED0U/* ... */#endif/* ... */#else#define__FPU_USED0U#endif/* ... */#elifdefined(__CSMC__)#if(__CSMC__&0x400U)#ifdefined(__FPU_PRESENT)&&(__FPU_PRESENT==1U)#define__FPU_USED1U#else#error"Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"#define__FPU_USED0U/* ... */#endif/* ... */#else#define__FPU_USED0U#endif/* ... */#endif#include"cmsis_compiler.h"/* CMSIS compiler specific defines */#ifdef__cplusplus}extern "C" { ... }#endif/* ... */#endif/* __CORE_CM4_H_GENERIC */#ifndef__CMSIS_GENERIC#ifndef__CORE_CM4_H_DEPENDANT#define__CORE_CM4_H_DEPENDANT#ifdef__cplusplusextern"C"{#endif/* check device defines and use defaults */#ifdefined__CHECK_DEVICE_DEFINES#ifndef__CM4_REV#define__CM4_REV0x0000U#warning"__CM4_REV not defined in device header file; using default!"/* ... */#endif#ifndef__FPU_PRESENT#define__FPU_PRESENT0U#warning"__FPU_PRESENT not defined in device header file; using default!"/* ... */#endif#ifndef__MPU_PRESENT#define__MPU_PRESENT0U#warning"__MPU_PRESENT not defined in device header file; using default!"/* ... */#endif#ifndef__VTOR_PRESENT#define__VTOR_PRESENT1U#warning"__VTOR_PRESENT not defined in device header file; using default!"/* ... */#endif#ifndef__NVIC_PRIO_BITS#define__NVIC_PRIO_BITS3U#warning"__NVIC_PRIO_BITS not defined in device header file; using default!"/* ... */#endif#ifndef__Vendor_SysTickConfig#define__Vendor_SysTickConfig0U#warning"__Vendor_SysTickConfig not defined in device header file; using default!"/* ... */#endif/* ... */#endif/* IO definitions (access restrictions to peripheral registers) *//** \defgroup CMSIS_glob_defs CMSIS Global Defines <strong>IO Type Qualifiers</strong> are used \li to specify the access to peripheral variables. \li for automatic generation of peripheral register debug information.*//* ... */#ifdef__cplusplus#define__Ivolatile/*!< Defines 'read only' permissions */#else#define__Ivolatileconst/*!< Defines 'read only' permissions */#endif#define__Ovolatile/*!< Defines 'write only' permissions */#define__IOvolatile/*!< Defines 'read / write' permissions *//* following defines should be used for structure members */#define__IMvolatileconst/*! Defines 'read only' structure member permissions */#define__OMvolatile/*! Defines 'write only' structure member permissions */#define__IOMvolatile/*! Defines 'read / write' structure member permissions */5 defines/*@} end of group Cortex_M4 *//******************************************************************************* * Register Abstraction Core Register contain: - Core Register - Core NVIC Register - Core SCB Register - Core SysTick Register - Core Debug Register - Core MPU Register - Core FPU Register ******************************************************************************//* ... *//** \defgroup CMSIS_core_register Defines and Type Definitions \brief Type definitions and defines for Cortex-M processor based devices.*//* ... *//** \ingroup CMSIS_core_register \defgroup CMSIS_CORE Status and Control Registers \brief Core Register type definitions. @{ *//* ... *//** \brief Union type to access the Application Program Status Register (APSR). *//* ... */typedefunion{struct{uint32_t_reserved0:16;/*!< bit: 0..15 Reserved */uint32_tGE:4;/*!< bit: 16..19 Greater than or Equal flags */uint32_t_reserved1:7;/*!< bit: 20..26 Reserved */uint32_tQ:1;/*!< bit: 27 Saturation condition flag */uint32_tV:1;/*!< bit: 28 Overflow condition code flag */uint32_tC:1;/*!< bit: 29 Carry condition code flag */uint32_tZ:1;/*!< bit: 30 Zero condition code flag */uint32_tN:1;/*!< bit: 31 Negative condition code flag */...}b;/*!< Structure used for bit access */uint32_tw;/*!< Type used for word access */...}APSR_Type;/* APSR Register Definitions */#defineAPSR_N_Pos31U/*!< APSR: N Position */#defineAPSR_N_Msk(1UL<<APSR_N_Pos)/*!< APSR: N Mask */#defineAPSR_Z_Pos30U/*!< APSR: Z Position */#defineAPSR_Z_Msk(1UL<<APSR_Z_Pos)/*!< APSR: Z Mask */#defineAPSR_C_Pos29U/*!< APSR: C Position */#defineAPSR_C_Msk(1UL<<APSR_C_Pos)/*!< APSR: C Mask */#defineAPSR_V_Pos28U/*!< APSR: V Position */#defineAPSR_V_Msk(1UL<<APSR_V_Pos)/*!< APSR: V Mask */#defineAPSR_Q_Pos27U/*!< APSR: Q Position */#defineAPSR_Q_Msk(1UL<<APSR_Q_Pos)/*!< APSR: Q Mask */#defineAPSR_GE_Pos16U/*!< APSR: GE Position */#defineAPSR_GE_Msk(0xFUL<<APSR_GE_Pos)/*!< APSR: GE Mask */12 defines/** \brief Union type to access the Interrupt Program Status Register (IPSR). *//* ... */typedefunion{struct{uint32_tISR:9;/*!< bit: 0.. 8 Exception number */uint32_t_reserved0:23;/*!< bit: 9..31 Reserved */...}b;/*!< Structure used for bit access */uint32_tw;/*!< Type used for word access */...}IPSR_Type;/* IPSR Register Definitions */#defineIPSR_ISR_Pos0U/*!< IPSR: ISR Position */#defineIPSR_ISR_Msk(0x1FFUL/*<< IPSR_ISR_Pos*/)/*!< IPSR: ISR Mask *//** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). *//* ... */typedefunion{struct{uint32_tISR:9;/*!< bit: 0.. 8 Exception number */uint32_t_reserved0:1;/*!< bit: 9 Reserved */uint32_tICI_IT_1:6;/*!< bit: 10..15 ICI/IT part 1 */uint32_tGE:4;/*!< bit: 16..19 Greater than or Equal flags */uint32_t_reserved1:4;/*!< bit: 20..23 Reserved */uint32_tT:1;/*!< bit: 24 Thumb bit */uint32_tICI_IT_2:2;/*!< bit: 25..26 ICI/IT part 2 */uint32_tQ:1;/*!< bit: 27 Saturation condition flag */uint32_tV:1;/*!< bit: 28 Overflow condition code flag */uint32_tC:1;/*!< bit: 29 Carry condition code flag */uint32_tZ:1;/*!< bit: 30 Zero condition code flag */uint32_tN:1;/*!< bit: 31 Negative condition code flag */...}b;/*!< Structure used for bit access */uint32_tw;/*!< Type used for word access */...}xPSR_Type;/* xPSR Register Definitions */#definexPSR_N_Pos31U/*!< xPSR: N Position */#definexPSR_N_Msk(1UL<<xPSR_N_Pos)/*!< xPSR: N Mask */#definexPSR_Z_Pos30U/*!< xPSR: Z Position */#definexPSR_Z_Msk(1UL<<xPSR_Z_Pos)/*!< xPSR: Z Mask */#definexPSR_C_Pos29U/*!< xPSR: C Position */#definexPSR_C_Msk(1UL<<xPSR_C_Pos)/*!< xPSR: C Mask */#definexPSR_V_Pos28U/*!< xPSR: V Position */#definexPSR_V_Msk(1UL<<xPSR_V_Pos)/*!< xPSR: V Mask */#definexPSR_Q_Pos27U/*!< xPSR: Q Position */#definexPSR_Q_Msk(1UL<<xPSR_Q_Pos)/*!< xPSR: Q Mask */#definexPSR_ICI_IT_2_Pos25U/*!< xPSR: ICI/IT part 2 Position */#definexPSR_ICI_IT_2_Msk(3UL<<xPSR_ICI_IT_2_Pos)/*!< xPSR: ICI/IT part 2 Mask */#definexPSR_T_Pos24U/*!< xPSR: T Position */#definexPSR_T_Msk(1UL<<xPSR_T_Pos)/*!< xPSR: T Mask */#definexPSR_GE_Pos16U/*!< xPSR: GE Position */#definexPSR_GE_Msk(0xFUL<<xPSR_GE_Pos)/*!< xPSR: GE Mask */#definexPSR_ICI_IT_1_Pos10U/*!< xPSR: ICI/IT part 1 Position */#definexPSR_ICI_IT_1_Msk(0x3FUL<<xPSR_ICI_IT_1_Pos)/*!< xPSR: ICI/IT part 1 Mask */#definexPSR_ISR_Pos0U/*!< xPSR: ISR Position */#definexPSR_ISR_Msk(0x1FFUL/*<< xPSR_ISR_Pos*/)/*!< xPSR: ISR Mask */20 defines/** \brief Union type to access the Control Registers (CONTROL). *//* ... */typedefunion{struct{uint32_tnPRIV:1;/*!< bit: 0 Execution privilege in Thread mode */uint32_tSPSEL:1;/*!< bit: 1 Stack to be used */uint32_tFPCA:1;/*!< bit: 2 FP extension active flag */uint32_t_reserved0:29;/*!< bit: 3..31 Reserved */...}b;/*!< Structure used for bit access */uint32_tw;/*!< Type used for word access */...}CONTROL_Type;/* CONTROL Register Definitions */#defineCONTROL_FPCA_Pos2U/*!< CONTROL: FPCA Position */#defineCONTROL_FPCA_Msk(1UL<<CONTROL_FPCA_Pos)/*!< CONTROL: FPCA Mask */#defineCONTROL_SPSEL_Pos1U/*!< CONTROL: SPSEL Position */#defineCONTROL_SPSEL_Msk(1UL<<CONTROL_SPSEL_Pos)/*!< CONTROL: SPSEL Mask */#defineCONTROL_nPRIV_Pos0U/*!< CONTROL: nPRIV Position */#defineCONTROL_nPRIV_Msk(1UL/*<< CONTROL_nPRIV_Pos*/)/*!< CONTROL: nPRIV Mask */6 defines/*@} end of group CMSIS_CORE *//** \ingroup CMSIS_core_register \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) \brief Type definitions for the NVIC Registers @{ *//* ... *//** \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). *//* ... */typedefstruct{__IOMuint32_tISER[8U];/*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */uint32_tRESERVED0[24U];__IOMuint32_tICER[8U];/*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */uint32_tRESERVED1[24U];__IOMuint32_tISPR[8U];/*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */uint32_tRESERVED2[24U];__IOMuint32_tICPR[8U];/*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */uint32_tRESERVED3[24U];__IOMuint32_tIABR[8U];/*!< Offset: 0x200 (R/W) Interrupt Active bit Register */uint32_tRESERVED4[56U];__IOMuint8_tIP[240U];/*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */uint32_tRESERVED5[644U];__OMuint32_tSTIR;/*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */...}NVIC_Type;/* Software Triggered Interrupt Register Definitions */#defineNVIC_STIR_INTID_Pos0U/*!< STIR: INTLINESNUM Position */#defineNVIC_STIR_INTID_Msk(0x1FFUL/*<< NVIC_STIR_INTID_Pos*/)/*!< STIR: INTLINESNUM Mask *//*@} end of group CMSIS_NVIC *//** \ingroup CMSIS_core_register \defgroup CMSIS_SCB System Control Block (SCB) \brief Type definitions for the System Control Block Registers @{ *//* ... *//** \brief Structure type to access the System Control Block (SCB). *//* ... */typedefstruct{__IMuint32_tCPUID;/*!< Offset: 0x000 (R/ ) CPUID Base Register */__IOMuint32_tICSR;/*!< Offset: 0x004 (R/W) Interrupt Control and State Register */__IOMuint32_tVTOR;/*!< Offset: 0x008 (R/W) Vector Table Offset Register */__IOMuint32_tAIRCR;/*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */__IOMuint32_tSCR;/*!< Offset: 0x010 (R/W) System Control Register */__IOMuint32_tCCR;/*!< Offset: 0x014 (R/W) Configuration Control Register */__IOMuint8_tSHP[12U];/*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */__IOMuint32_tSHCSR;/*!< Offset: 0x024 (R/W) System Handler Control and State Register */__IOMuint32_tCFSR;/*!< Offset: 0x028 (R/W) Configurable Fault Status Register */__IOMuint32_tHFSR;/*!< Offset: 0x02C (R/W) HardFault Status Register */__IOMuint32_tDFSR;/*!< Offset: 0x030 (R/W) Debug Fault Status Register */__IOMuint32_tMMFAR;/*!< Offset: 0x034 (R/W) MemManage Fault Address Register */__IOMuint32_tBFAR;/*!< Offset: 0x038 (R/W) BusFault Address Register */__IOMuint32_tAFSR;/*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */__IMuint32_tPFR[2U];/*!< Offset: 0x040 (R/ ) Processor Feature Register */__IMuint32_tDFR;/*!< Offset: 0x048 (R/ ) Debug Feature Register */__IMuint32_tADR;/*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */__IMuint32_tMMFR[4U];/*!< Offset: 0x050 (R/ ) Memory Model Feature Register */__IMuint32_tISAR[5U];/*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */uint32_tRESERVED0[5U];__IOMuint32_tCPACR;/*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */...}SCB_Type;/* SCB CPUID Register Definitions */#defineSCB_CPUID_IMPLEMENTER_Pos24U/*!< SCB CPUID: IMPLEMENTER Position */#defineSCB_CPUID_IMPLEMENTER_Msk(0xFFUL<<SCB_CPUID_IMPLEMENTER_Pos)/*!< SCB CPUID: IMPLEMENTER Mask */#defineSCB_CPUID_VARIANT_Pos20U/*!< SCB CPUID: VARIANT Position */#defineSCB_CPUID_VARIANT_Msk(0xFUL<<SCB_CPUID_VARIANT_Pos)/*!< SCB CPUID: VARIANT Mask */#defineSCB_CPUID_ARCHITECTURE_Pos16U/*!< SCB CPUID: ARCHITECTURE Position */#defineSCB_CPUID_ARCHITECTURE_Msk(0xFUL<<SCB_CPUID_ARCHITECTURE_Pos)/*!< SCB CPUID: ARCHITECTURE Mask */#defineSCB_CPUID_PARTNO_Pos4U/*!< SCB CPUID: PARTNO Position */#defineSCB_CPUID_PARTNO_Msk(0xFFFUL<<SCB_CPUID_PARTNO_Pos)/*!< SCB CPUID: PARTNO Mask */#defineSCB_CPUID_REVISION_Pos0U/*!< SCB CPUID: REVISION Position */#defineSCB_CPUID_REVISION_Msk(0xFUL/*<< SCB_CPUID_REVISION_Pos*/)/*!< SCB CPUID: REVISION Mask *//* SCB Interrupt Control State Register Definitions */#defineSCB_ICSR_NMIPENDSET_Pos31U/*!< SCB ICSR: NMIPENDSET Position */#defineSCB_ICSR_NMIPENDSET_Msk(1UL<<SCB_ICSR_NMIPENDSET_Pos)/*!< SCB ICSR: NMIPENDSET Mask */#defineSCB_ICSR_PENDSVSET_Pos28U/*!< SCB ICSR: PENDSVSET Position */#defineSCB_ICSR_PENDSVSET_Msk(1UL<<SCB_ICSR_PENDSVSET_Pos)/*!< SCB ICSR: PENDSVSET Mask */#defineSCB_ICSR_PENDSVCLR_Pos27U/*!< SCB ICSR: PENDSVCLR Position */#defineSCB_ICSR_PENDSVCLR_Msk(1UL<<SCB_ICSR_PENDSVCLR_Pos)/*!< SCB ICSR: PENDSVCLR Mask */#defineSCB_ICSR_PENDSTSET_Pos26U/*!< SCB ICSR: PENDSTSET Position */#defineSCB_ICSR_PENDSTSET_Msk(1UL<<SCB_ICSR_PENDSTSET_Pos)/*!< SCB ICSR: PENDSTSET Mask */#defineSCB_ICSR_PENDSTCLR_Pos25U/*!< SCB ICSR: PENDSTCLR Position */#defineSCB_ICSR_PENDSTCLR_Msk(1UL<<SCB_ICSR_PENDSTCLR_Pos)/*!< SCB ICSR: PENDSTCLR Mask */#defineSCB_ICSR_ISRPREEMPT_Pos23U/*!< SCB ICSR: ISRPREEMPT Position */#defineSCB_ICSR_ISRPREEMPT_Msk(1UL<<SCB_ICSR_ISRPREEMPT_Pos)/*!< SCB ICSR: ISRPREEMPT Mask */#defineSCB_ICSR_ISRPENDING_Pos22U/*!< SCB ICSR: ISRPENDING Position */#defineSCB_ICSR_ISRPENDING_Msk(1UL<<SCB_ICSR_ISRPENDING_Pos)/*!< SCB ICSR: ISRPENDING Mask */#defineSCB_ICSR_VECTPENDING_Pos12U/*!< SCB ICSR: VECTPENDING Position */#defineSCB_ICSR_VECTPENDING_Msk(0x1FFUL<<SCB_ICSR_VECTPENDING_Pos)/*!< SCB ICSR: VECTPENDING Mask */#defineSCB_ICSR_RETTOBASE_Pos11U/*!< SCB ICSR: RETTOBASE Position */#defineSCB_ICSR_RETTOBASE_Msk(1UL<<SCB_ICSR_RETTOBASE_Pos)/*!< SCB ICSR: RETTOBASE Mask */#defineSCB_ICSR_VECTACTIVE_Pos0U/*!< SCB ICSR: VECTACTIVE Position */#defineSCB_ICSR_VECTACTIVE_Msk(0x1FFUL/*<< SCB_ICSR_VECTACTIVE_Pos*/)/*!< SCB ICSR: VECTACTIVE Mask *//* SCB Vector Table Offset Register Definitions */#defineSCB_VTOR_TBLOFF_Pos7U/*!< SCB VTOR: TBLOFF Position */#defineSCB_VTOR_TBLOFF_Msk(0x1FFFFFFUL<<SCB_VTOR_TBLOFF_Pos)/*!< SCB VTOR: TBLOFF Mask *//* SCB Application Interrupt and Reset Control Register Definitions */#defineSCB_AIRCR_VECTKEY_Pos16U/*!< SCB AIRCR: VECTKEY Position */#defineSCB_AIRCR_VECTKEY_Msk(0xFFFFUL<<SCB_AIRCR_VECTKEY_Pos)/*!< SCB AIRCR: VECTKEY Mask */#defineSCB_AIRCR_VECTKEYSTAT_Pos16U/*!< SCB AIRCR: VECTKEYSTAT Position */#defineSCB_AIRCR_VECTKEYSTAT_Msk(0xFFFFUL<<SCB_AIRCR_VECTKEYSTAT_Pos)/*!< SCB AIRCR: VECTKEYSTAT Mask */#defineSCB_AIRCR_ENDIANESS_Pos15U/*!< SCB AIRCR: ENDIANESS Position */#defineSCB_AIRCR_ENDIANESS_Msk(1UL<<SCB_AIRCR_ENDIANESS_Pos)/*!< SCB AIRCR: ENDIANESS Mask */#defineSCB_AIRCR_PRIGROUP_Pos8U/*!< SCB AIRCR: PRIGROUP Position */#defineSCB_AIRCR_PRIGROUP_Msk(7UL<<SCB_AIRCR_PRIGROUP_Pos)/*!< SCB AIRCR: PRIGROUP Mask */#defineSCB_AIRCR_SYSRESETREQ_Pos2U/*!< SCB AIRCR: SYSRESETREQ Position */#defineSCB_AIRCR_SYSRESETREQ_Msk(1UL<<SCB_AIRCR_SYSRESETREQ_Pos)/*!< SCB AIRCR: SYSRESETREQ Mask */#defineSCB_AIRCR_VECTCLRACTIVE_Pos1U/*!< SCB AIRCR: VECTCLRACTIVE Position */#defineSCB_AIRCR_VECTCLRACTIVE_Msk(1UL<<SCB_AIRCR_VECTCLRACTIVE_Pos)/*!< SCB AIRCR: VECTCLRACTIVE Mask */#defineSCB_AIRCR_VECTRESET_Pos0U/*!< SCB AIRCR: VECTRESET Position */#defineSCB_AIRCR_VECTRESET_Msk(1UL/*<< SCB_AIRCR_VECTRESET_Pos*/)/*!< SCB AIRCR: VECTRESET Mask *//* SCB System Control Register Definitions */#defineSCB_SCR_SEVONPEND_Pos4U/*!< SCB SCR: SEVONPEND Position */#defineSCB_SCR_SEVONPEND_Msk(1UL<<SCB_SCR_SEVONPEND_Pos)/*!< SCB SCR: SEVONPEND Mask */#defineSCB_SCR_SLEEPDEEP_Pos2U/*!< SCB SCR: SLEEPDEEP Position */#defineSCB_SCR_SLEEPDEEP_Msk(1UL<<SCB_SCR_SLEEPDEEP_Pos)/*!< SCB SCR: SLEEPDEEP Mask */#defineSCB_SCR_SLEEPONEXIT_Pos1U/*!< SCB SCR: SLEEPONEXIT Position */#defineSCB_SCR_SLEEPONEXIT_Msk(1UL<<SCB_SCR_SLEEPONEXIT_Pos)/*!< SCB SCR: SLEEPONEXIT Mask *//* SCB Configuration Control Register Definitions */#defineSCB_CCR_STKALIGN_Pos9U/*!< SCB CCR: STKALIGN Position */#defineSCB_CCR_STKALIGN_Msk(1UL<<SCB_CCR_STKALIGN_Pos)/*!< SCB CCR: STKALIGN Mask */#defineSCB_CCR_BFHFNMIGN_Pos8U/*!< SCB CCR: BFHFNMIGN Position */#defineSCB_CCR_BFHFNMIGN_Msk(1UL<<SCB_CCR_BFHFNMIGN_Pos)/*!< SCB CCR: BFHFNMIGN Mask */#defineSCB_CCR_DIV_0_TRP_Pos4U/*!< SCB CCR: DIV_0_TRP Position */#defineSCB_CCR_DIV_0_TRP_Msk(1UL<<SCB_CCR_DIV_0_TRP_Pos)/*!< SCB CCR: DIV_0_TRP Mask */#defineSCB_CCR_UNALIGN_TRP_Pos3U/*!< SCB CCR: UNALIGN_TRP Position */#defineSCB_CCR_UNALIGN_TRP_Msk(1UL<<SCB_CCR_UNALIGN_TRP_Pos)/*!< SCB CCR: UNALIGN_TRP Mask */#defineSCB_CCR_USERSETMPEND_Pos1U/*!< SCB CCR: USERSETMPEND Position */#defineSCB_CCR_USERSETMPEND_Msk(1UL<<SCB_CCR_USERSETMPEND_Pos)/*!< SCB CCR: USERSETMPEND Mask */#defineSCB_CCR_NONBASETHRDENA_Pos0U/*!< SCB CCR: NONBASETHRDENA Position */#defineSCB_CCR_NONBASETHRDENA_Msk(1UL/*<< SCB_CCR_NONBASETHRDENA_Pos*/)/*!< SCB CCR: NONBASETHRDENA Mask *//* SCB System Handler Control and State Register Definitions */#defineSCB_SHCSR_USGFAULTENA_Pos18U/*!< SCB SHCSR: USGFAULTENA Position */#defineSCB_SHCSR_USGFAULTENA_Msk(1UL<<SCB_SHCSR_USGFAULTENA_Pos)/*!< SCB SHCSR: USGFAULTENA Mask */#defineSCB_SHCSR_BUSFAULTENA_Pos17U/*!< SCB SHCSR: BUSFAULTENA Position */#defineSCB_SHCSR_BUSFAULTENA_Msk(1UL<<SCB_SHCSR_BUSFAULTENA_Pos)/*!< SCB SHCSR: BUSFAULTENA Mask */#defineSCB_SHCSR_MEMFAULTENA_Pos16U/*!< SCB SHCSR: MEMFAULTENA Position */#defineSCB_SHCSR_MEMFAULTENA_Msk(1UL<<SCB_SHCSR_MEMFAULTENA_Pos)/*!< SCB SHCSR: MEMFAULTENA Mask */#defineSCB_SHCSR_SVCALLPENDED_Pos15U/*!< SCB SHCSR: SVCALLPENDED Position */#defineSCB_SHCSR_SVCALLPENDED_Msk(1UL<<SCB_SHCSR_SVCALLPENDED_Pos)/*!< SCB SHCSR: SVCALLPENDED Mask */#defineSCB_SHCSR_BUSFAULTPENDED_Pos14U/*!< SCB SHCSR: BUSFAULTPENDED Position */#defineSCB_SHCSR_BUSFAULTPENDED_Msk(1UL<<SCB_SHCSR_BUSFAULTPENDED_Pos)/*!< SCB SHCSR: BUSFAULTPENDED Mask */#defineSCB_SHCSR_MEMFAULTPENDED_Pos13U/*!< SCB SHCSR: MEMFAULTPENDED Position */#defineSCB_SHCSR_MEMFAULTPENDED_Msk(1UL<<SCB_SHCSR_MEMFAULTPENDED_Pos)/*!< SCB SHCSR: MEMFAULTPENDED Mask */#defineSCB_SHCSR_USGFAULTPENDED_Pos12U/*!< SCB SHCSR: USGFAULTPENDED Position */#defineSCB_SHCSR_USGFAULTPENDED_Msk(1UL<<SCB_SHCSR_USGFAULTPENDED_Pos)/*!< SCB SHCSR: USGFAULTPENDED Mask */#defineSCB_SHCSR_SYSTICKACT_Pos11U/*!< SCB SHCSR: SYSTICKACT Position */#defineSCB_SHCSR_SYSTICKACT_Msk(1UL<<SCB_SHCSR_SYSTICKACT_Pos)/*!< SCB SHCSR: SYSTICKACT Mask */#defineSCB_SHCSR_PENDSVACT_Pos10U/*!< SCB SHCSR: PENDSVACT Position */#defineSCB_SHCSR_PENDSVACT_Msk(1UL<<SCB_SHCSR_PENDSVACT_Pos)/*!< SCB SHCSR: PENDSVACT Mask */#defineSCB_SHCSR_MONITORACT_Pos8U/*!< SCB SHCSR: MONITORACT Position */#defineSCB_SHCSR_MONITORACT_Msk(1UL<<SCB_SHCSR_MONITORACT_Pos)/*!< SCB SHCSR: MONITORACT Mask */#defineSCB_SHCSR_SVCALLACT_Pos7U/*!< SCB SHCSR: SVCALLACT Position */#defineSCB_SHCSR_SVCALLACT_Msk(1UL<<SCB_SHCSR_SVCALLACT_Pos)/*!< SCB SHCSR: SVCALLACT Mask */#defineSCB_SHCSR_USGFAULTACT_Pos3U/*!< SCB SHCSR: USGFAULTACT Position */#defineSCB_SHCSR_USGFAULTACT_Msk(1UL<<SCB_SHCSR_USGFAULTACT_Pos)/*!< SCB SHCSR: USGFAULTACT Mask */#defineSCB_SHCSR_BUSFAULTACT_Pos1U/*!< SCB SHCSR: BUSFAULTACT Position */#defineSCB_SHCSR_BUSFAULTACT_Msk(1UL<<SCB_SHCSR_BUSFAULTACT_Pos)/*!< SCB SHCSR: BUSFAULTACT Mask */#defineSCB_SHCSR_MEMFAULTACT_Pos0U/*!< SCB SHCSR: MEMFAULTACT Position */#defineSCB_SHCSR_MEMFAULTACT_Msk(1UL/*<< SCB_SHCSR_MEMFAULTACT_Pos*/)/*!< SCB SHCSR: MEMFAULTACT Mask *//* SCB Configurable Fault Status Register Definitions */#defineSCB_CFSR_USGFAULTSR_Pos16U/*!< SCB CFSR: Usage Fault Status Register Position */#defineSCB_CFSR_USGFAULTSR_Msk(0xFFFFUL<<SCB_CFSR_USGFAULTSR_Pos)/*!< SCB CFSR: Usage Fault Status Register Mask */#defineSCB_CFSR_BUSFAULTSR_Pos8U/*!< SCB CFSR: Bus Fault Status Register Position */#defineSCB_CFSR_BUSFAULTSR_Msk(0xFFUL<<SCB_CFSR_BUSFAULTSR_Pos)/*!< SCB CFSR: Bus Fault Status Register Mask */#defineSCB_CFSR_MEMFAULTSR_Pos0U/*!< SCB CFSR: Memory Manage Fault Status Register Position */#defineSCB_CFSR_MEMFAULTSR_Msk(0xFFUL/*<< SCB_CFSR_MEMFAULTSR_Pos*/)/*!< SCB CFSR: Memory Manage Fault Status Register Mask *//* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */#defineSCB_CFSR_MMARVALID_Pos(SCB_CFSR_MEMFAULTSR_Pos+7U)/*!< SCB CFSR (MMFSR): MMARVALID Position */#defineSCB_CFSR_MMARVALID_Msk(1UL<<SCB_CFSR_MMARVALID_Pos)/*!< SCB CFSR (MMFSR): MMARVALID Mask */#defineSCB_CFSR_MLSPERR_Pos(SCB_CFSR_MEMFAULTSR_Pos+5U)/*!< SCB CFSR (MMFSR): MLSPERR Position */#defineSCB_CFSR_MLSPERR_Msk(1UL<<SCB_CFSR_MLSPERR_Pos)/*!< SCB CFSR (MMFSR): MLSPERR Mask */#defineSCB_CFSR_MSTKERR_Pos(SCB_CFSR_MEMFAULTSR_Pos+4U)/*!< SCB CFSR (MMFSR): MSTKERR Position */#defineSCB_CFSR_MSTKERR_Msk(1UL<<SCB_CFSR_MSTKERR_Pos)/*!< SCB CFSR (MMFSR): MSTKERR Mask */#defineSCB_CFSR_MUNSTKERR_Pos(SCB_CFSR_MEMFAULTSR_Pos+3U)/*!< SCB CFSR (MMFSR): MUNSTKERR Position */#defineSCB_CFSR_MUNSTKERR_Msk(1UL<<SCB_CFSR_MUNSTKERR_Pos)/*!< SCB CFSR (MMFSR): MUNSTKERR Mask */#defineSCB_CFSR_DACCVIOL_Pos(SCB_CFSR_MEMFAULTSR_Pos+1U)/*!< SCB CFSR (MMFSR): DACCVIOL Position */#defineSCB_CFSR_DACCVIOL_Msk(1UL<<SCB_CFSR_DACCVIOL_Pos)/*!< SCB CFSR (MMFSR): DACCVIOL Mask */#defineSCB_CFSR_IACCVIOL_Pos(SCB_CFSR_MEMFAULTSR_Pos+0U)/*!< SCB CFSR (MMFSR): IACCVIOL Position */#defineSCB_CFSR_IACCVIOL_Msk(1UL/*<< SCB_CFSR_IACCVIOL_Pos*/)/*!< SCB CFSR (MMFSR): IACCVIOL Mask *//* BusFault Status Register (part of SCB Configurable Fault Status Register) */#defineSCB_CFSR_BFARVALID_Pos(SCB_CFSR_BUSFAULTSR_Pos+7U)/*!< SCB CFSR (BFSR): BFARVALID Position */#defineSCB_CFSR_BFARVALID_Msk(1UL<<SCB_CFSR_BFARVALID_Pos)/*!< SCB CFSR (BFSR): BFARVALID Mask */#defineSCB_CFSR_LSPERR_Pos(SCB_CFSR_BUSFAULTSR_Pos+5U)/*!< SCB CFSR (BFSR): LSPERR Position */#defineSCB_CFSR_LSPERR_Msk(1UL<<SCB_CFSR_LSPERR_Pos)/*!< SCB CFSR (BFSR): LSPERR Mask */#defineSCB_CFSR_STKERR_Pos(SCB_CFSR_BUSFAULTSR_Pos+4U)/*!< SCB CFSR (BFSR): STKERR Position */#defineSCB_CFSR_STKERR_Msk(1UL<<SCB_CFSR_STKERR_Pos)/*!< SCB CFSR (BFSR): STKERR Mask */#defineSCB_CFSR_UNSTKERR_Pos(SCB_CFSR_BUSFAULTSR_Pos+3U)/*!< SCB CFSR (BFSR): UNSTKERR Position */#defineSCB_CFSR_UNSTKERR_Msk(1UL<<SCB_CFSR_UNSTKERR_Pos)/*!< SCB CFSR (BFSR): UNSTKERR Mask */#defineSCB_CFSR_IMPRECISERR_Pos(SCB_CFSR_BUSFAULTSR_Pos+2U)/*!< SCB CFSR (BFSR): IMPRECISERR Position */#defineSCB_CFSR_IMPRECISERR_Msk(1UL<<SCB_CFSR_IMPRECISERR_Pos)/*!< SCB CFSR (BFSR): IMPRECISERR Mask */#defineSCB_CFSR_PRECISERR_Pos(SCB_CFSR_BUSFAULTSR_Pos+1U)/*!< SCB CFSR (BFSR): PRECISERR Position */#defineSCB_CFSR_PRECISERR_Msk(1UL<<SCB_CFSR_PRECISERR_Pos)/*!< SCB CFSR (BFSR): PRECISERR Mask */#defineSCB_CFSR_IBUSERR_Pos(SCB_CFSR_BUSFAULTSR_Pos+0U)/*!< SCB CFSR (BFSR): IBUSERR Position */#defineSCB_CFSR_IBUSERR_Msk(1UL<<SCB_CFSR_IBUSERR_Pos)/*!< SCB CFSR (BFSR): IBUSERR Mask *//* UsageFault Status Register (part of SCB Configurable Fault Status Register) */#defineSCB_CFSR_DIVBYZERO_Pos(SCB_CFSR_USGFAULTSR_Pos+9U)/*!< SCB CFSR (UFSR): DIVBYZERO Position */#defineSCB_CFSR_DIVBYZERO_Msk(1UL<<SCB_CFSR_DIVBYZERO_Pos)/*!< SCB CFSR (UFSR): DIVBYZERO Mask */#defineSCB_CFSR_UNALIGNED_Pos(SCB_CFSR_USGFAULTSR_Pos+8U)/*!< SCB CFSR (UFSR): UNALIGNED Position */#defineSCB_CFSR_UNALIGNED_Msk(1UL<<SCB_CFSR_UNALIGNED_Pos)/*!< SCB CFSR (UFSR): UNALIGNED Mask */#defineSCB_CFSR_NOCP_Pos(SCB_CFSR_USGFAULTSR_Pos+3U)/*!< SCB CFSR (UFSR): NOCP Position */#defineSCB_CFSR_NOCP_Msk(1UL<<SCB_CFSR_NOCP_Pos)/*!< SCB CFSR (UFSR): NOCP Mask */#defineSCB_CFSR_INVPC_Pos(SCB_CFSR_USGFAULTSR_Pos+2U)/*!< SCB CFSR (UFSR): INVPC Position */#defineSCB_CFSR_INVPC_Msk(1UL<<SCB_CFSR_INVPC_Pos)/*!< SCB CFSR (UFSR): INVPC Mask */#defineSCB_CFSR_INVSTATE_Pos(SCB_CFSR_USGFAULTSR_Pos+1U)/*!< SCB CFSR (UFSR): INVSTATE Position */#defineSCB_CFSR_INVSTATE_Msk(1UL<<SCB_CFSR_INVSTATE_Pos)/*!< SCB CFSR (UFSR): INVSTATE Mask */#defineSCB_CFSR_UNDEFINSTR_Pos(SCB_CFSR_USGFAULTSR_Pos+0U)/*!< SCB CFSR (UFSR): UNDEFINSTR Position */#defineSCB_CFSR_UNDEFINSTR_Msk(1UL<<SCB_CFSR_UNDEFINSTR_Pos)/*!< SCB CFSR (UFSR): UNDEFINSTR Mask *//* SCB Hard Fault Status Register Definitions */#defineSCB_HFSR_DEBUGEVT_Pos31U/*!< SCB HFSR: DEBUGEVT Position */#defineSCB_HFSR_DEBUGEVT_Msk(1UL<<SCB_HFSR_DEBUGEVT_Pos)/*!< SCB HFSR: DEBUGEVT Mask */#defineSCB_HFSR_FORCED_Pos30U/*!< SCB HFSR: FORCED Position */#defineSCB_HFSR_FORCED_Msk(1UL<<SCB_HFSR_FORCED_Pos)/*!< SCB HFSR: FORCED Mask */#defineSCB_HFSR_VECTTBL_Pos1U/*!< SCB HFSR: VECTTBL Position */#defineSCB_HFSR_VECTTBL_Msk(1UL<<SCB_HFSR_VECTTBL_Pos)/*!< SCB HFSR: VECTTBL Mask *//* SCB Debug Fault Status Register Definitions */#defineSCB_DFSR_EXTERNAL_Pos4U/*!< SCB DFSR: EXTERNAL Position */#defineSCB_DFSR_EXTERNAL_Msk(1UL<<SCB_DFSR_EXTERNAL_Pos)/*!< SCB DFSR: EXTERNAL Mask */#defineSCB_DFSR_VCATCH_Pos3U/*!< SCB DFSR: VCATCH Position */#defineSCB_DFSR_VCATCH_Msk(1UL<<SCB_DFSR_VCATCH_Pos)/*!< SCB DFSR: VCATCH Mask */#defineSCB_DFSR_DWTTRAP_Pos2U/*!< SCB DFSR: DWTTRAP Position */#defineSCB_DFSR_DWTTRAP_Msk(1UL<<SCB_DFSR_DWTTRAP_Pos)/*!< SCB DFSR: DWTTRAP Mask */#defineSCB_DFSR_BKPT_Pos1U/*!< SCB DFSR: BKPT Position */#defineSCB_DFSR_BKPT_Msk(1UL<<SCB_DFSR_BKPT_Pos)/*!< SCB DFSR: BKPT Mask */#defineSCB_DFSR_HALTED_Pos0U/*!< SCB DFSR: HALTED Position */#defineSCB_DFSR_HALTED_Msk(1UL/*<< SCB_DFSR_HALTED_Pos*/)/*!< SCB DFSR: HALTED Mask */152 defines/*@} end of group CMSIS_SCB *//** \ingroup CMSIS_core_register \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) \brief Type definitions for the System Control and ID Register not in the SCB @{ *//* ... *//** \brief Structure type to access the System Control and ID Register not in the SCB. *//* ... */typedefstruct{uint32_tRESERVED0[1U];__IMuint32_tICTR;/*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */__IOMuint32_tACTLR;/*!< Offset: 0x008 (R/W) Auxiliary Control Register */...}SCnSCB_Type;/* Interrupt Controller Type Register Definitions */#defineSCnSCB_ICTR_INTLINESNUM_Pos0U/*!< ICTR: INTLINESNUM Position */#defineSCnSCB_ICTR_INTLINESNUM_Msk(0xFUL/*<< SCnSCB_ICTR_INTLINESNUM_Pos*/)/*!< ICTR: INTLINESNUM Mask *//* Auxiliary Control Register Definitions */#defineSCnSCB_ACTLR_DISOOFP_Pos9U/*!< ACTLR: DISOOFP Position */#defineSCnSCB_ACTLR_DISOOFP_Msk(1UL<<SCnSCB_ACTLR_DISOOFP_Pos)/*!< ACTLR: DISOOFP Mask */#defineSCnSCB_ACTLR_DISFPCA_Pos8U/*!< ACTLR: DISFPCA Position */#defineSCnSCB_ACTLR_DISFPCA_Msk(1UL<<SCnSCB_ACTLR_DISFPCA_Pos)/*!< ACTLR: DISFPCA Mask */#defineSCnSCB_ACTLR_DISFOLD_Pos2U/*!< ACTLR: DISFOLD Position */#defineSCnSCB_ACTLR_DISFOLD_Msk(1UL<<SCnSCB_ACTLR_DISFOLD_Pos)/*!< ACTLR: DISFOLD Mask */#defineSCnSCB_ACTLR_DISDEFWBUF_Pos1U/*!< ACTLR: DISDEFWBUF Position */#defineSCnSCB_ACTLR_DISDEFWBUF_Msk(1UL<<SCnSCB_ACTLR_DISDEFWBUF_Pos)/*!< ACTLR: DISDEFWBUF Mask */#defineSCnSCB_ACTLR_DISMCYCINT_Pos0U/*!< ACTLR: DISMCYCINT Position */#defineSCnSCB_ACTLR_DISMCYCINT_Msk(1UL/*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/)/*!< ACTLR: DISMCYCINT Mask */12 defines/*@} end of group CMSIS_SCnotSCB *//** \ingroup CMSIS_core_register \defgroup CMSIS_SysTick System Tick Timer (SysTick) \brief Type definitions for the System Timer Registers. @{ *//* ... *//** \brief Structure type to access the System Timer (SysTick). *//* ... */typedefstruct{__IOMuint32_tCTRL;/*!< Offset: 0x000 (R/W) SysTick Control and Status Register */__IOMuint32_tLOAD;/*!< Offset: 0x004 (R/W) SysTick Reload Value Register */__IOMuint32_tVAL;/*!< Offset: 0x008 (R/W) SysTick Current Value Register */__IMuint32_tCALIB;/*!< Offset: 0x00C (R/ ) SysTick Calibration Register */...}SysTick_Type;/* SysTick Control / Status Register Definitions */#defineSysTick_CTRL_COUNTFLAG_Pos16U/*!< SysTick CTRL: COUNTFLAG Position */#defineSysTick_CTRL_COUNTFLAG_Msk(1UL<<SysTick_CTRL_COUNTFLAG_Pos)/*!< SysTick CTRL: COUNTFLAG Mask */#defineSysTick_CTRL_CLKSOURCE_Pos2U/*!< SysTick CTRL: CLKSOURCE Position */#defineSysTick_CTRL_CLKSOURCE_Msk(1UL<<SysTick_CTRL_CLKSOURCE_Pos)/*!< SysTick CTRL: CLKSOURCE Mask */#defineSysTick_CTRL_TICKINT_Pos1U/*!< SysTick CTRL: TICKINT Position */#defineSysTick_CTRL_TICKINT_Msk(1UL<<SysTick_CTRL_TICKINT_Pos)/*!< SysTick CTRL: TICKINT Mask */#defineSysTick_CTRL_ENABLE_Pos0U/*!< SysTick CTRL: ENABLE Position */#defineSysTick_CTRL_ENABLE_Msk(1UL/*<< SysTick_CTRL_ENABLE_Pos*/)/*!< SysTick CTRL: ENABLE Mask *//* SysTick Reload Register Definitions */#defineSysTick_LOAD_RELOAD_Pos0U/*!< SysTick LOAD: RELOAD Position */#defineSysTick_LOAD_RELOAD_Msk(0xFFFFFFUL/*<< SysTick_LOAD_RELOAD_Pos*/)/*!< SysTick LOAD: RELOAD Mask *//* SysTick Current Register Definitions */#defineSysTick_VAL_CURRENT_Pos0U/*!< SysTick VAL: CURRENT Position */#defineSysTick_VAL_CURRENT_Msk(0xFFFFFFUL/*<< SysTick_VAL_CURRENT_Pos*/)/*!< SysTick VAL: CURRENT Mask *//* SysTick Calibration Register Definitions */#defineSysTick_CALIB_NOREF_Pos31U/*!< SysTick CALIB: NOREF Position */#defineSysTick_CALIB_NOREF_Msk(1UL<<SysTick_CALIB_NOREF_Pos)/*!< SysTick CALIB: NOREF Mask */#defineSysTick_CALIB_SKEW_Pos30U/*!< SysTick CALIB: SKEW Position */#defineSysTick_CALIB_SKEW_Msk(1UL<<SysTick_CALIB_SKEW_Pos)/*!< SysTick CALIB: SKEW Mask */#defineSysTick_CALIB_TENMS_Pos0U/*!< SysTick CALIB: TENMS Position */#defineSysTick_CALIB_TENMS_Msk(0xFFFFFFUL/*<< SysTick_CALIB_TENMS_Pos*/)/*!< SysTick CALIB: TENMS Mask */18 defines/*@} end of group CMSIS_SysTick *//** \ingroup CMSIS_core_register \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) \brief Type definitions for the Instrumentation Trace Macrocell (ITM) @{ *//* ... *//** \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). *//* ... */typedefstruct{__OMunion{__OMuint8_tu8;/*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */__OMuint16_tu16;/*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */__OMuint32_tu32;/*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */...}PORT[32U];/*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */uint32_tRESERVED0[864U];__IOMuint32_tTER;/*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */uint32_tRESERVED1[15U];__IOMuint32_tTPR;/*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */uint32_tRESERVED2[15U];__IOMuint32_tTCR;/*!< Offset: 0xE80 (R/W) ITM Trace Control Register */uint32_tRESERVED3[32U];uint32_tRESERVED4[43U];__OMuint32_tLAR;/*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */__IMuint32_tLSR;/*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */uint32_tRESERVED5[6U];__IMuint32_tPID4;/*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */__IMuint32_tPID5;/*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */__IMuint32_tPID6;/*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */__IMuint32_tPID7;/*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */__IMuint32_tPID0;/*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */__IMuint32_tPID1;/*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */__IMuint32_tPID2;/*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */__IMuint32_tPID3;/*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */__IMuint32_tCID0;/*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */__IMuint32_tCID1;/*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */__IMuint32_tCID2;/*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */__IMuint32_tCID3;/*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */...}ITM_Type;/* ITM Trace Privilege Register Definitions */#defineITM_TPR_PRIVMASK_Pos0U/*!< ITM TPR: PRIVMASK Position */#defineITM_TPR_PRIVMASK_Msk(0xFFFFFFFFUL/*<< ITM_TPR_PRIVMASK_Pos*/)/*!< ITM TPR: PRIVMASK Mask *//* ITM Trace Control Register Definitions */#defineITM_TCR_BUSY_Pos23U/*!< ITM TCR: BUSY Position */#defineITM_TCR_BUSY_Msk(1UL<<ITM_TCR_BUSY_Pos)/*!< ITM TCR: BUSY Mask */#defineITM_TCR_TraceBusID_Pos16U/*!< ITM TCR: ATBID Position */#defineITM_TCR_TraceBusID_Msk(0x7FUL<<ITM_TCR_TraceBusID_Pos)/*!< ITM TCR: ATBID Mask */#defineITM_TCR_GTSFREQ_Pos10U/*!< ITM TCR: Global timestamp frequency Position */#defineITM_TCR_GTSFREQ_Msk(3UL<<ITM_TCR_GTSFREQ_Pos)/*!< ITM TCR: Global timestamp frequency Mask */#defineITM_TCR_TSPrescale_Pos8U/*!< ITM TCR: TSPrescale Position */#defineITM_TCR_TSPrescale_Msk(3UL<<ITM_TCR_TSPrescale_Pos)/*!< ITM TCR: TSPrescale Mask */#defineITM_TCR_SWOENA_Pos4U/*!< ITM TCR: SWOENA Position */#defineITM_TCR_SWOENA_Msk(1UL<<ITM_TCR_SWOENA_Pos)/*!< ITM TCR: SWOENA Mask */#defineITM_TCR_DWTENA_Pos3U/*!< ITM TCR: DWTENA Position */#defineITM_TCR_DWTENA_Msk(1UL<<ITM_TCR_DWTENA_Pos)/*!< ITM TCR: DWTENA Mask */#defineITM_TCR_SYNCENA_Pos2U/*!< ITM TCR: SYNCENA Position */#defineITM_TCR_SYNCENA_Msk(1UL<<ITM_TCR_SYNCENA_Pos)/*!< ITM TCR: SYNCENA Mask */#defineITM_TCR_TSENA_Pos1U/*!< ITM TCR: TSENA Position */#defineITM_TCR_TSENA_Msk(1UL<<ITM_TCR_TSENA_Pos)/*!< ITM TCR: TSENA Mask */#defineITM_TCR_ITMENA_Pos0U/*!< ITM TCR: ITM Enable bit Position */#defineITM_TCR_ITMENA_Msk(1UL/*<< ITM_TCR_ITMENA_Pos*/)/*!< ITM TCR: ITM Enable bit Mask *//* ITM Lock Status Register Definitions */#defineITM_LSR_ByteAcc_Pos2U/*!< ITM LSR: ByteAcc Position */#defineITM_LSR_ByteAcc_Msk(1UL<<ITM_LSR_ByteAcc_Pos)/*!< ITM LSR: ByteAcc Mask */#defineITM_LSR_Access_Pos1U/*!< ITM LSR: Access Position */#defineITM_LSR_Access_Msk(1UL<<ITM_LSR_Access_Pos)/*!< ITM LSR: Access Mask */#defineITM_LSR_Present_Pos0U/*!< ITM LSR: Present Position */#defineITM_LSR_Present_Msk(1UL/*<< ITM_LSR_Present_Pos*/)/*!< ITM LSR: Present Mask */26 defines/*@}*//* end of group CMSIS_ITM *//** \ingroup CMSIS_core_register \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) \brief Type definitions for the Data Watchpoint and Trace (DWT) @{ *//* ... *//** \brief Structure type to access the Data Watchpoint and Trace Register (DWT). *//* ... */typedefstruct{__IOMuint32_tCTRL;/*!< Offset: 0x000 (R/W) Control Register */__IOMuint32_tCYCCNT;/*!< Offset: 0x004 (R/W) Cycle Count Register */__IOMuint32_tCPICNT;/*!< Offset: 0x008 (R/W) CPI Count Register */__IOMuint32_tEXCCNT;/*!< Offset: 0x00C (R/W) Exception Overhead Count Register */__IOMuint32_tSLEEPCNT;/*!< Offset: 0x010 (R/W) Sleep Count Register */__IOMuint32_tLSUCNT;/*!< Offset: 0x014 (R/W) LSU Count Register */__IOMuint32_tFOLDCNT;/*!< Offset: 0x018 (R/W) Folded-instruction Count Register */__IMuint32_tPCSR;/*!< Offset: 0x01C (R/ ) Program Counter Sample Register */__IOMuint32_tCOMP0;/*!< Offset: 0x020 (R/W) Comparator Register 0 */__IOMuint32_tMASK0;/*!< Offset: 0x024 (R/W) Mask Register 0 */__IOMuint32_tFUNCTION0;/*!< Offset: 0x028 (R/W) Function Register 0 */uint32_tRESERVED0[1U];__IOMuint32_tCOMP1;/*!< Offset: 0x030 (R/W) Comparator Register 1 */__IOMuint32_tMASK1;/*!< Offset: 0x034 (R/W) Mask Register 1 */__IOMuint32_tFUNCTION1;/*!< Offset: 0x038 (R/W) Function Register 1 */uint32_tRESERVED1[1U];__IOMuint32_tCOMP2;/*!< Offset: 0x040 (R/W) Comparator Register 2 */__IOMuint32_tMASK2;/*!< Offset: 0x044 (R/W) Mask Register 2 */__IOMuint32_tFUNCTION2;/*!< Offset: 0x048 (R/W) Function Register 2 */uint32_tRESERVED2[1U];__IOMuint32_tCOMP3;/*!< Offset: 0x050 (R/W) Comparator Register 3 */__IOMuint32_tMASK3;/*!< Offset: 0x054 (R/W) Mask Register 3 */__IOMuint32_tFUNCTION3;/*!< Offset: 0x058 (R/W) Function Register 3 */...}DWT_Type;/* DWT Control Register Definitions */#defineDWT_CTRL_NUMCOMP_Pos28U/*!< DWT CTRL: NUMCOMP Position */#defineDWT_CTRL_NUMCOMP_Msk(0xFUL<<DWT_CTRL_NUMCOMP_Pos)/*!< DWT CTRL: NUMCOMP Mask */#defineDWT_CTRL_NOTRCPKT_Pos27U/*!< DWT CTRL: NOTRCPKT Position */#defineDWT_CTRL_NOTRCPKT_Msk(0x1UL<<DWT_CTRL_NOTRCPKT_Pos)/*!< DWT CTRL: NOTRCPKT Mask */#defineDWT_CTRL_NOEXTTRIG_Pos26U/*!< DWT CTRL: NOEXTTRIG Position */#defineDWT_CTRL_NOEXTTRIG_Msk(0x1UL<<DWT_CTRL_NOEXTTRIG_Pos)/*!< DWT CTRL: NOEXTTRIG Mask */#defineDWT_CTRL_NOCYCCNT_Pos25U/*!< DWT CTRL: NOCYCCNT Position */#defineDWT_CTRL_NOCYCCNT_Msk(0x1UL<<DWT_CTRL_NOCYCCNT_Pos)/*!< DWT CTRL: NOCYCCNT Mask */#defineDWT_CTRL_NOPRFCNT_Pos24U/*!< DWT CTRL: NOPRFCNT Position */#defineDWT_CTRL_NOPRFCNT_Msk(0x1UL<<DWT_CTRL_NOPRFCNT_Pos)/*!< DWT CTRL: NOPRFCNT Mask */#defineDWT_CTRL_CYCEVTENA_Pos22U/*!< DWT CTRL: CYCEVTENA Position */#defineDWT_CTRL_CYCEVTENA_Msk(0x1UL<<DWT_CTRL_CYCEVTENA_Pos)/*!< DWT CTRL: CYCEVTENA Mask */#defineDWT_CTRL_FOLDEVTENA_Pos21U/*!< DWT CTRL: FOLDEVTENA Position */#defineDWT_CTRL_FOLDEVTENA_Msk(0x1UL<<DWT_CTRL_FOLDEVTENA_Pos)/*!< DWT CTRL: FOLDEVTENA Mask */#defineDWT_CTRL_LSUEVTENA_Pos20U/*!< DWT CTRL: LSUEVTENA Position */#defineDWT_CTRL_LSUEVTENA_Msk(0x1UL<<DWT_CTRL_LSUEVTENA_Pos)/*!< DWT CTRL: LSUEVTENA Mask */#defineDWT_CTRL_SLEEPEVTENA_Pos19U/*!< DWT CTRL: SLEEPEVTENA Position */#defineDWT_CTRL_SLEEPEVTENA_Msk(0x1UL<<DWT_CTRL_SLEEPEVTENA_Pos)/*!< DWT CTRL: SLEEPEVTENA Mask */#defineDWT_CTRL_EXCEVTENA_Pos18U/*!< DWT CTRL: EXCEVTENA Position */#defineDWT_CTRL_EXCEVTENA_Msk(0x1UL<<DWT_CTRL_EXCEVTENA_Pos)/*!< DWT CTRL: EXCEVTENA Mask */#defineDWT_CTRL_CPIEVTENA_Pos17U/*!< DWT CTRL: CPIEVTENA Position */#defineDWT_CTRL_CPIEVTENA_Msk(0x1UL<<DWT_CTRL_CPIEVTENA_Pos)/*!< DWT CTRL: CPIEVTENA Mask */#defineDWT_CTRL_EXCTRCENA_Pos16U/*!< DWT CTRL: EXCTRCENA Position */#defineDWT_CTRL_EXCTRCENA_Msk(0x1UL<<DWT_CTRL_EXCTRCENA_Pos)/*!< DWT CTRL: EXCTRCENA Mask */#defineDWT_CTRL_PCSAMPLENA_Pos12U/*!< DWT CTRL: PCSAMPLENA Position */#defineDWT_CTRL_PCSAMPLENA_Msk(0x1UL<<DWT_CTRL_PCSAMPLENA_Pos)/*!< DWT CTRL: PCSAMPLENA Mask */#defineDWT_CTRL_SYNCTAP_Pos10U/*!< DWT CTRL: SYNCTAP Position */#defineDWT_CTRL_SYNCTAP_Msk(0x3UL<<DWT_CTRL_SYNCTAP_Pos)/*!< DWT CTRL: SYNCTAP Mask */#defineDWT_CTRL_CYCTAP_Pos9U/*!< DWT CTRL: CYCTAP Position */#defineDWT_CTRL_CYCTAP_Msk(0x1UL<<DWT_CTRL_CYCTAP_Pos)/*!< DWT CTRL: CYCTAP Mask */#defineDWT_CTRL_POSTINIT_Pos5U/*!< DWT CTRL: POSTINIT Position */#defineDWT_CTRL_POSTINIT_Msk(0xFUL<<DWT_CTRL_POSTINIT_Pos)/*!< DWT CTRL: POSTINIT Mask */#defineDWT_CTRL_POSTPRESET_Pos1U/*!< DWT CTRL: POSTPRESET Position */#defineDWT_CTRL_POSTPRESET_Msk(0xFUL<<DWT_CTRL_POSTPRESET_Pos)/*!< DWT CTRL: POSTPRESET Mask */#defineDWT_CTRL_CYCCNTENA_Pos0U/*!< DWT CTRL: CYCCNTENA Position */#defineDWT_CTRL_CYCCNTENA_Msk(0x1UL/*<< DWT_CTRL_CYCCNTENA_Pos*/)/*!< DWT CTRL: CYCCNTENA Mask *//* DWT CPI Count Register Definitions */#defineDWT_CPICNT_CPICNT_Pos0U/*!< DWT CPICNT: CPICNT Position */#defineDWT_CPICNT_CPICNT_Msk(0xFFUL/*<< DWT_CPICNT_CPICNT_Pos*/)/*!< DWT CPICNT: CPICNT Mask *//* DWT Exception Overhead Count Register Definitions */#defineDWT_EXCCNT_EXCCNT_Pos0U/*!< DWT EXCCNT: EXCCNT Position */#defineDWT_EXCCNT_EXCCNT_Msk(0xFFUL/*<< DWT_EXCCNT_EXCCNT_Pos*/)/*!< DWT EXCCNT: EXCCNT Mask *//* DWT Sleep Count Register Definitions */#defineDWT_SLEEPCNT_SLEEPCNT_Pos0U/*!< DWT SLEEPCNT: SLEEPCNT Position */#defineDWT_SLEEPCNT_SLEEPCNT_Msk(0xFFUL/*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/)/*!< DWT SLEEPCNT: SLEEPCNT Mask *//* DWT LSU Count Register Definitions */#defineDWT_LSUCNT_LSUCNT_Pos0U/*!< DWT LSUCNT: LSUCNT Position */#defineDWT_LSUCNT_LSUCNT_Msk(0xFFUL/*<< DWT_LSUCNT_LSUCNT_Pos*/)/*!< DWT LSUCNT: LSUCNT Mask *//* DWT Folded-instruction Count Register Definitions */#defineDWT_FOLDCNT_FOLDCNT_Pos0U/*!< DWT FOLDCNT: FOLDCNT Position */#defineDWT_FOLDCNT_FOLDCNT_Msk(0xFFUL/*<< DWT_FOLDCNT_FOLDCNT_Pos*/)/*!< DWT FOLDCNT: FOLDCNT Mask *//* DWT Comparator Mask Register Definitions */#defineDWT_MASK_MASK_Pos0U/*!< DWT MASK: MASK Position */#defineDWT_MASK_MASK_Msk(0x1FUL/*<< DWT_MASK_MASK_Pos*/)/*!< DWT MASK: MASK Mask *//* DWT Comparator Function Register Definitions */#defineDWT_FUNCTION_MATCHED_Pos24U/*!< DWT FUNCTION: MATCHED Position */#defineDWT_FUNCTION_MATCHED_Msk(0x1UL<<DWT_FUNCTION_MATCHED_Pos)/*!< DWT FUNCTION: MATCHED Mask */#defineDWT_FUNCTION_DATAVADDR1_Pos16U/*!< DWT FUNCTION: DATAVADDR1 Position */#defineDWT_FUNCTION_DATAVADDR1_Msk(0xFUL<<DWT_FUNCTION_DATAVADDR1_Pos)/*!< DWT FUNCTION: DATAVADDR1 Mask */#defineDWT_FUNCTION_DATAVADDR0_Pos12U/*!< DWT FUNCTION: DATAVADDR0 Position */#defineDWT_FUNCTION_DATAVADDR0_Msk(0xFUL<<DWT_FUNCTION_DATAVADDR0_Pos)/*!< DWT FUNCTION: DATAVADDR0 Mask */#defineDWT_FUNCTION_DATAVSIZE_Pos10U/*!< DWT FUNCTION: DATAVSIZE Position */#defineDWT_FUNCTION_DATAVSIZE_Msk(0x3UL<<DWT_FUNCTION_DATAVSIZE_Pos)/*!< DWT FUNCTION: DATAVSIZE Mask */#defineDWT_FUNCTION_LNK1ENA_Pos9U/*!< DWT FUNCTION: LNK1ENA Position */#defineDWT_FUNCTION_LNK1ENA_Msk(0x1UL<<DWT_FUNCTION_LNK1ENA_Pos)/*!< DWT FUNCTION: LNK1ENA Mask */#defineDWT_FUNCTION_DATAVMATCH_Pos8U/*!< DWT FUNCTION: DATAVMATCH Position */#defineDWT_FUNCTION_DATAVMATCH_Msk(0x1UL<<DWT_FUNCTION_DATAVMATCH_Pos)/*!< DWT FUNCTION: DATAVMATCH Mask */#defineDWT_FUNCTION_CYCMATCH_Pos7U/*!< DWT FUNCTION: CYCMATCH Position */#defineDWT_FUNCTION_CYCMATCH_Msk(0x1UL<<DWT_FUNCTION_CYCMATCH_Pos)/*!< DWT FUNCTION: CYCMATCH Mask */#defineDWT_FUNCTION_EMITRANGE_Pos5U/*!< DWT FUNCTION: EMITRANGE Position */#defineDWT_FUNCTION_EMITRANGE_Msk(0x1UL<<DWT_FUNCTION_EMITRANGE_Pos)/*!< DWT FUNCTION: EMITRANGE Mask */#defineDWT_FUNCTION_FUNCTION_Pos0U/*!< DWT FUNCTION: FUNCTION Position */#defineDWT_FUNCTION_FUNCTION_Msk(0xFUL/*<< DWT_FUNCTION_FUNCTION_Pos*/)/*!< DWT FUNCTION: FUNCTION Mask */66 defines/*@}*//* end of group CMSIS_DWT *//** \ingroup CMSIS_core_register \defgroup CMSIS_TPI Trace Port Interface (TPI) \brief Type definitions for the Trace Port Interface (TPI) @{ *//* ... *//** \brief Structure type to access the Trace Port Interface Register (TPI). *//* ... */typedefstruct{__IMuint32_tSSPSR;/*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */__IOMuint32_tCSPSR;/*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */uint32_tRESERVED0[2U];__IOMuint32_tACPR;/*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */uint32_tRESERVED1[55U];__IOMuint32_tSPPR;/*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */uint32_tRESERVED2[131U];__IMuint32_tFFSR;/*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */__IOMuint32_tFFCR;/*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */__IMuint32_tFSCR;/*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */uint32_tRESERVED3[759U];__IMuint32_tTRIGGER;/*!< Offset: 0xEE8 (R/ ) TRIGGER Register */__IMuint32_tFIFO0;/*!< Offset: 0xEEC (R/ ) Integration ETM Data */__IMuint32_tITATBCTR2;/*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */uint32_tRESERVED4[1U];__IMuint32_tITATBCTR0;/*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */__IMuint32_tFIFO1;/*!< Offset: 0xEFC (R/ ) Integration ITM Data */__IOMuint32_tITCTRL;/*!< Offset: 0xF00 (R/W) Integration Mode Control */uint32_tRESERVED5[39U];__IOMuint32_tCLAIMSET;/*!< Offset: 0xFA0 (R/W) Claim tag set */__IOMuint32_tCLAIMCLR;/*!< Offset: 0xFA4 (R/W) Claim tag clear */uint32_tRESERVED7[8U];__IMuint32_tDEVID;/*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */__IMuint32_tDEVTYPE;/*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */...}TPI_Type;/* TPI Asynchronous Clock Prescaler Register Definitions */#defineTPI_ACPR_PRESCALER_Pos0U/*!< TPI ACPR: PRESCALER Position */#defineTPI_ACPR_PRESCALER_Msk(0x1FFFUL/*<< TPI_ACPR_PRESCALER_Pos*/)/*!< TPI ACPR: PRESCALER Mask *//* TPI Selected Pin Protocol Register Definitions */#defineTPI_SPPR_TXMODE_Pos0U/*!< TPI SPPR: TXMODE Position */#defineTPI_SPPR_TXMODE_Msk(0x3UL/*<< TPI_SPPR_TXMODE_Pos*/)/*!< TPI SPPR: TXMODE Mask *//* TPI Formatter and Flush Status Register Definitions */#defineTPI_FFSR_FtNonStop_Pos3U/*!< TPI FFSR: FtNonStop Position */#defineTPI_FFSR_FtNonStop_Msk(0x1UL<<TPI_FFSR_FtNonStop_Pos)/*!< TPI FFSR: FtNonStop Mask */#defineTPI_FFSR_TCPresent_Pos2U/*!< TPI FFSR: TCPresent Position */#defineTPI_FFSR_TCPresent_Msk(0x1UL<<TPI_FFSR_TCPresent_Pos)/*!< TPI FFSR: TCPresent Mask */#defineTPI_FFSR_FtStopped_Pos1U/*!< TPI FFSR: FtStopped Position */#defineTPI_FFSR_FtStopped_Msk(0x1UL<<TPI_FFSR_FtStopped_Pos)/*!< TPI FFSR: FtStopped Mask */#defineTPI_FFSR_FlInProg_Pos0U/*!< TPI FFSR: FlInProg Position */#defineTPI_FFSR_FlInProg_Msk(0x1UL/*<< TPI_FFSR_FlInProg_Pos*/)/*!< TPI FFSR: FlInProg Mask *//* TPI Formatter and Flush Control Register Definitions */#defineTPI_FFCR_TrigIn_Pos8U/*!< TPI FFCR: TrigIn Position */#defineTPI_FFCR_TrigIn_Msk(0x1UL<<TPI_FFCR_TrigIn_Pos)/*!< TPI FFCR: TrigIn Mask */#defineTPI_FFCR_EnFCont_Pos1U/*!< TPI FFCR: EnFCont Position */#defineTPI_FFCR_EnFCont_Msk(0x1UL<<TPI_FFCR_EnFCont_Pos)/*!< TPI FFCR: EnFCont Mask *//* TPI TRIGGER Register Definitions */#defineTPI_TRIGGER_TRIGGER_Pos0U/*!< TPI TRIGGER: TRIGGER Position */#defineTPI_TRIGGER_TRIGGER_Msk(0x1UL/*<< TPI_TRIGGER_TRIGGER_Pos*/)/*!< TPI TRIGGER: TRIGGER Mask *//* TPI Integration ETM Data Register Definitions (FIFO0) */#defineTPI_FIFO0_ITM_ATVALID_Pos29U/*!< TPI FIFO0: ITM_ATVALID Position */#defineTPI_FIFO0_ITM_ATVALID_Msk(0x1UL<<TPI_FIFO0_ITM_ATVALID_Pos)/*!< TPI FIFO0: ITM_ATVALID Mask */#defineTPI_FIFO0_ITM_bytecount_Pos27U/*!< TPI FIFO0: ITM_bytecount Position */#defineTPI_FIFO0_ITM_bytecount_Msk(0x3UL<<TPI_FIFO0_ITM_bytecount_Pos)/*!< TPI FIFO0: ITM_bytecount Mask */#defineTPI_FIFO0_ETM_ATVALID_Pos26U/*!< TPI FIFO0: ETM_ATVALID Position */#defineTPI_FIFO0_ETM_ATVALID_Msk(0x1UL<<TPI_FIFO0_ETM_ATVALID_Pos)/*!< TPI FIFO0: ETM_ATVALID Mask */#defineTPI_FIFO0_ETM_bytecount_Pos24U/*!< TPI FIFO0: ETM_bytecount Position */#defineTPI_FIFO0_ETM_bytecount_Msk(0x3UL<<TPI_FIFO0_ETM_bytecount_Pos)/*!< TPI FIFO0: ETM_bytecount Mask */#defineTPI_FIFO0_ETM2_Pos16U/*!< TPI FIFO0: ETM2 Position */#defineTPI_FIFO0_ETM2_Msk(0xFFUL<<TPI_FIFO0_ETM2_Pos)/*!< TPI FIFO0: ETM2 Mask */#defineTPI_FIFO0_ETM1_Pos8U/*!< TPI FIFO0: ETM1 Position */#defineTPI_FIFO0_ETM1_Msk(0xFFUL<<TPI_FIFO0_ETM1_Pos)/*!< TPI FIFO0: ETM1 Mask */#defineTPI_FIFO0_ETM0_Pos0U/*!< TPI FIFO0: ETM0 Position */#defineTPI_FIFO0_ETM0_Msk(0xFFUL/*<< TPI_FIFO0_ETM0_Pos*/)/*!< TPI FIFO0: ETM0 Mask *//* TPI ITATBCTR2 Register Definitions */#defineTPI_ITATBCTR2_ATREADY2_Pos0U/*!< TPI ITATBCTR2: ATREADY2 Position */#defineTPI_ITATBCTR2_ATREADY2_Msk(0x1UL/*<< TPI_ITATBCTR2_ATREADY2_Pos*/)/*!< TPI ITATBCTR2: ATREADY2 Mask */#defineTPI_ITATBCTR2_ATREADY1_Pos0U/*!< TPI ITATBCTR2: ATREADY1 Position */#defineTPI_ITATBCTR2_ATREADY1_Msk(0x1UL/*<< TPI_ITATBCTR2_ATREADY1_Pos*/)/*!< TPI ITATBCTR2: ATREADY1 Mask *//* TPI Integration ITM Data Register Definitions (FIFO1) */#defineTPI_FIFO1_ITM_ATVALID_Pos29U/*!< TPI FIFO1: ITM_ATVALID Position */#defineTPI_FIFO1_ITM_ATVALID_Msk(0x1UL<<TPI_FIFO1_ITM_ATVALID_Pos)/*!< TPI FIFO1: ITM_ATVALID Mask */#defineTPI_FIFO1_ITM_bytecount_Pos27U/*!< TPI FIFO1: ITM_bytecount Position */#defineTPI_FIFO1_ITM_bytecount_Msk(0x3UL<<TPI_FIFO1_ITM_bytecount_Pos)/*!< TPI FIFO1: ITM_bytecount Mask */#defineTPI_FIFO1_ETM_ATVALID_Pos26U/*!< TPI FIFO1: ETM_ATVALID Position */#defineTPI_FIFO1_ETM_ATVALID_Msk(0x1UL<<TPI_FIFO1_ETM_ATVALID_Pos)/*!< TPI FIFO1: ETM_ATVALID Mask */#defineTPI_FIFO1_ETM_bytecount_Pos24U/*!< TPI FIFO1: ETM_bytecount Position */#defineTPI_FIFO1_ETM_bytecount_Msk(0x3UL<<TPI_FIFO1_ETM_bytecount_Pos)/*!< TPI FIFO1: ETM_bytecount Mask */#defineTPI_FIFO1_ITM2_Pos16U/*!< TPI FIFO1: ITM2 Position */#defineTPI_FIFO1_ITM2_Msk(0xFFUL<<TPI_FIFO1_ITM2_Pos)/*!< TPI FIFO1: ITM2 Mask */#defineTPI_FIFO1_ITM1_Pos8U/*!< TPI FIFO1: ITM1 Position */#defineTPI_FIFO1_ITM1_Msk(0xFFUL<<TPI_FIFO1_ITM1_Pos)/*!< TPI FIFO1: ITM1 Mask */#defineTPI_FIFO1_ITM0_Pos0U/*!< TPI FIFO1: ITM0 Position */#defineTPI_FIFO1_ITM0_Msk(0xFFUL/*<< TPI_FIFO1_ITM0_Pos*/)/*!< TPI FIFO1: ITM0 Mask *//* TPI ITATBCTR0 Register Definitions */#defineTPI_ITATBCTR0_ATREADY2_Pos0U/*!< TPI ITATBCTR0: ATREADY2 Position */#defineTPI_ITATBCTR0_ATREADY2_Msk(0x1UL/*<< TPI_ITATBCTR0_ATREADY2_Pos*/)/*!< TPI ITATBCTR0: ATREADY2 Mask */#defineTPI_ITATBCTR0_ATREADY1_Pos0U/*!< TPI ITATBCTR0: ATREADY1 Position */#defineTPI_ITATBCTR0_ATREADY1_Msk(0x1UL/*<< TPI_ITATBCTR0_ATREADY1_Pos*/)/*!< TPI ITATBCTR0: ATREADY1 Mask *//* TPI Integration Mode Control Register Definitions */#defineTPI_ITCTRL_Mode_Pos0U/*!< TPI ITCTRL: Mode Position */#defineTPI_ITCTRL_Mode_Msk(0x3UL/*<< TPI_ITCTRL_Mode_Pos*/)/*!< TPI ITCTRL: Mode Mask *//* TPI DEVID Register Definitions */#defineTPI_DEVID_NRZVALID_Pos11U/*!< TPI DEVID: NRZVALID Position */#defineTPI_DEVID_NRZVALID_Msk(0x1UL<<TPI_DEVID_NRZVALID_Pos)/*!< TPI DEVID: NRZVALID Mask */#defineTPI_DEVID_MANCVALID_Pos10U/*!< TPI DEVID: MANCVALID Position */#defineTPI_DEVID_MANCVALID_Msk(0x1UL<<TPI_DEVID_MANCVALID_Pos)/*!< TPI DEVID: MANCVALID Mask */#defineTPI_DEVID_PTINVALID_Pos9U/*!< TPI DEVID: PTINVALID Position */#defineTPI_DEVID_PTINVALID_Msk(0x1UL<<TPI_DEVID_PTINVALID_Pos)/*!< TPI DEVID: PTINVALID Mask */#defineTPI_DEVID_MinBufSz_Pos6U/*!< TPI DEVID: MinBufSz Position */#defineTPI_DEVID_MinBufSz_Msk(0x7UL<<TPI_DEVID_MinBufSz_Pos)/*!< TPI DEVID: MinBufSz Mask */#defineTPI_DEVID_AsynClkIn_Pos5U/*!< TPI DEVID: AsynClkIn Position */#defineTPI_DEVID_AsynClkIn_Msk(0x1UL<<TPI_DEVID_AsynClkIn_Pos)/*!< TPI DEVID: AsynClkIn Mask */#defineTPI_DEVID_NrTraceInput_Pos0U/*!< TPI DEVID: NrTraceInput Position */#defineTPI_DEVID_NrTraceInput_Msk(0x1FUL/*<< TPI_DEVID_NrTraceInput_Pos*/)/*!< TPI DEVID: NrTraceInput Mask *//* TPI DEVTYPE Register Definitions */#defineTPI_DEVTYPE_SubType_Pos4U/*!< TPI DEVTYPE: SubType Position */#defineTPI_DEVTYPE_SubType_Msk(0xFUL/*<< TPI_DEVTYPE_SubType_Pos*/)/*!< TPI DEVTYPE: SubType Mask */#defineTPI_DEVTYPE_MajorType_Pos0U/*!< TPI DEVTYPE: MajorType Position */#defineTPI_DEVTYPE_MajorType_Msk(0xFUL<<TPI_DEVTYPE_MajorType_Pos)/*!< TPI DEVTYPE: MajorType Mask */72 defines/*@}*//* end of group CMSIS_TPI */#ifdefined(__MPU_PRESENT)&&(__MPU_PRESENT==1U)/** \ingroup CMSIS_core_register \defgroup CMSIS_MPU Memory Protection Unit (MPU) \brief Type definitions for the Memory Protection Unit (MPU) @{ *//* ... *//** \brief Structure type to access the Memory Protection Unit (MPU). *//* ... */typedefstruct{__IMuint32_tTYPE;/*!< Offset: 0x000 (R/ ) MPU Type Register */__IOMuint32_tCTRL;/*!< Offset: 0x004 (R/W) MPU Control Register */__IOMuint32_tRNR;/*!< Offset: 0x008 (R/W) MPU Region RNRber Register */__IOMuint32_tRBAR;/*!< Offset: 0x00C (R/W) MPU Region Base Address Register */__IOMuint32_tRASR;/*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */__IOMuint32_tRBAR_A1;/*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */__IOMuint32_tRASR_A1;/*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */__IOMuint32_tRBAR_A2;/*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */__IOMuint32_tRASR_A2;/*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */__IOMuint32_tRBAR_A3;/*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */__IOMuint32_tRASR_A3;/*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */...}MPU_Type;#defineMPU_TYPE_RALIASES4U/* MPU Type Register Definitions */#defineMPU_TYPE_IREGION_Pos16U/*!< MPU TYPE: IREGION Position */#defineMPU_TYPE_IREGION_Msk(0xFFUL<<MPU_TYPE_IREGION_Pos)/*!< MPU TYPE: IREGION Mask */#defineMPU_TYPE_DREGION_Pos8U/*!< MPU TYPE: DREGION Position */#defineMPU_TYPE_DREGION_Msk(0xFFUL<<MPU_TYPE_DREGION_Pos)/*!< MPU TYPE: DREGION Mask */#defineMPU_TYPE_SEPARATE_Pos0U/*!< MPU TYPE: SEPARATE Position */#defineMPU_TYPE_SEPARATE_Msk(1UL/*<< MPU_TYPE_SEPARATE_Pos*/)/*!< MPU TYPE: SEPARATE Mask *//* MPU Control Register Definitions */#defineMPU_CTRL_PRIVDEFENA_Pos2U/*!< MPU CTRL: PRIVDEFENA Position */#defineMPU_CTRL_PRIVDEFENA_Msk(1UL<<MPU_CTRL_PRIVDEFENA_Pos)/*!< MPU CTRL: PRIVDEFENA Mask */#defineMPU_CTRL_HFNMIENA_Pos1U/*!< MPU CTRL: HFNMIENA Position */#defineMPU_CTRL_HFNMIENA_Msk(1UL<<MPU_CTRL_HFNMIENA_Pos)/*!< MPU CTRL: HFNMIENA Mask */#defineMPU_CTRL_ENABLE_Pos0U/*!< MPU CTRL: ENABLE Position */#defineMPU_CTRL_ENABLE_Msk(1UL/*<< MPU_CTRL_ENABLE_Pos*/)/*!< MPU CTRL: ENABLE Mask *//* MPU Region Number Register Definitions */#defineMPU_RNR_REGION_Pos0U/*!< MPU RNR: REGION Position */#defineMPU_RNR_REGION_Msk(0xFFUL/*<< MPU_RNR_REGION_Pos*/)/*!< MPU RNR: REGION Mask *//* MPU Region Base Address Register Definitions */#defineMPU_RBAR_ADDR_Pos5U/*!< MPU RBAR: ADDR Position */#defineMPU_RBAR_ADDR_Msk(0x7FFFFFFUL<<MPU_RBAR_ADDR_Pos)/*!< MPU RBAR: ADDR Mask */#defineMPU_RBAR_VALID_Pos4U/*!< MPU RBAR: VALID Position */#defineMPU_RBAR_VALID_Msk(1UL<<MPU_RBAR_VALID_Pos)/*!< MPU RBAR: VALID Mask */#defineMPU_RBAR_REGION_Pos0U/*!< MPU RBAR: REGION Position */#defineMPU_RBAR_REGION_Msk(0xFUL/*<< MPU_RBAR_REGION_Pos*/)/*!< MPU RBAR: REGION Mask *//* MPU Region Attribute and Size Register Definitions */#defineMPU_RASR_ATTRS_Pos16U/*!< MPU RASR: MPU Region Attribute field Position */#defineMPU_RASR_ATTRS_Msk(0xFFFFUL<<MPU_RASR_ATTRS_Pos)/*!< MPU RASR: MPU Region Attribute field Mask */#defineMPU_RASR_XN_Pos28U/*!< MPU RASR: ATTRS.XN Position */#defineMPU_RASR_XN_Msk(1UL<<MPU_RASR_XN_Pos)/*!< MPU RASR: ATTRS.XN Mask */#defineMPU_RASR_AP_Pos24U/*!< MPU RASR: ATTRS.AP Position */#defineMPU_RASR_AP_Msk(0x7UL<<MPU_RASR_AP_Pos)/*!< MPU RASR: ATTRS.AP Mask */#defineMPU_RASR_TEX_Pos19U/*!< MPU RASR: ATTRS.TEX Position */#defineMPU_RASR_TEX_Msk(0x7UL<<MPU_RASR_TEX_Pos)/*!< MPU RASR: ATTRS.TEX Mask */#defineMPU_RASR_S_Pos18U/*!< MPU RASR: ATTRS.S Position */#defineMPU_RASR_S_Msk(1UL<<MPU_RASR_S_Pos)/*!< MPU RASR: ATTRS.S Mask */#defineMPU_RASR_C_Pos17U/*!< MPU RASR: ATTRS.C Position */#defineMPU_RASR_C_Msk(1UL<<MPU_RASR_C_Pos)/*!< MPU RASR: ATTRS.C Mask */#defineMPU_RASR_B_Pos16U/*!< MPU RASR: ATTRS.B Position */#defineMPU_RASR_B_Msk(1UL<<MPU_RASR_B_Pos)/*!< MPU RASR: ATTRS.B Mask */#defineMPU_RASR_SRD_Pos8U/*!< MPU RASR: Sub-Region Disable Position */#defineMPU_RASR_SRD_Msk(0xFFUL<<MPU_RASR_SRD_Pos)/*!< MPU RASR: Sub-Region Disable Mask */#defineMPU_RASR_SIZE_Pos1U/*!< MPU RASR: Region Size Field Position */#defineMPU_RASR_SIZE_Msk(0x1FUL<<MPU_RASR_SIZE_Pos)/*!< MPU RASR: Region Size Field Mask */#defineMPU_RASR_ENABLE_Pos0U/*!< MPU RASR: Region enable bit Position */#defineMPU_RASR_ENABLE_Msk(1UL/*<< MPU_RASR_ENABLE_Pos*/)/*!< MPU RASR: Region enable bit Disable Mask */41 defines/*@} end of group CMSIS_MPU *//* ... */#endif/* defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) *//** \ingroup CMSIS_core_register \defgroup CMSIS_FPU Floating Point Unit (FPU) \brief Type definitions for the Floating Point Unit (FPU) @{ *//* ... *//** \brief Structure type to access the Floating Point Unit (FPU). *//* ... */typedefstruct{uint32_tRESERVED0[1U];__IOMuint32_tFPCCR;/*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */__IOMuint32_tFPCAR;/*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */__IOMuint32_tFPDSCR;/*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */__IMuint32_tMVFR0;/*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */__IMuint32_tMVFR1;/*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */__IMuint32_tMVFR2;/*!< Offset: 0x018 (R/ ) Media and FP Feature Register 2 */...}FPU_Type;/* Floating-Point Context Control Register Definitions */#defineFPU_FPCCR_ASPEN_Pos31U/*!< FPCCR: ASPEN bit Position */#defineFPU_FPCCR_ASPEN_Msk(1UL<<FPU_FPCCR_ASPEN_Pos)/*!< FPCCR: ASPEN bit Mask */#defineFPU_FPCCR_LSPEN_Pos30U/*!< FPCCR: LSPEN Position */#defineFPU_FPCCR_LSPEN_Msk(1UL<<FPU_FPCCR_LSPEN_Pos)/*!< FPCCR: LSPEN bit Mask */#defineFPU_FPCCR_MONRDY_Pos8U/*!< FPCCR: MONRDY Position */#defineFPU_FPCCR_MONRDY_Msk(1UL<<FPU_FPCCR_MONRDY_Pos)/*!< FPCCR: MONRDY bit Mask */#defineFPU_FPCCR_BFRDY_Pos6U/*!< FPCCR: BFRDY Position */#defineFPU_FPCCR_BFRDY_Msk(1UL<<FPU_FPCCR_BFRDY_Pos)/*!< FPCCR: BFRDY bit Mask */#defineFPU_FPCCR_MMRDY_Pos5U/*!< FPCCR: MMRDY Position */#defineFPU_FPCCR_MMRDY_Msk(1UL<<FPU_FPCCR_MMRDY_Pos)/*!< FPCCR: MMRDY bit Mask */#defineFPU_FPCCR_HFRDY_Pos4U/*!< FPCCR: HFRDY Position */#defineFPU_FPCCR_HFRDY_Msk(1UL<<FPU_FPCCR_HFRDY_Pos)/*!< FPCCR: HFRDY bit Mask */#defineFPU_FPCCR_THREAD_Pos3U/*!< FPCCR: processor mode bit Position */#defineFPU_FPCCR_THREAD_Msk(1UL<<FPU_FPCCR_THREAD_Pos)/*!< FPCCR: processor mode active bit Mask */#defineFPU_FPCCR_USER_Pos1U/*!< FPCCR: privilege level bit Position */#defineFPU_FPCCR_USER_Msk(1UL<<FPU_FPCCR_USER_Pos)/*!< FPCCR: privilege level bit Mask */#defineFPU_FPCCR_LSPACT_Pos0U/*!< FPCCR: Lazy state preservation active bit Position */#defineFPU_FPCCR_LSPACT_Msk(1UL/*<< FPU_FPCCR_LSPACT_Pos*/)/*!< FPCCR: Lazy state preservation active bit Mask *//* Floating-Point Context Address Register Definitions */#defineFPU_FPCAR_ADDRESS_Pos3U/*!< FPCAR: ADDRESS bit Position */#defineFPU_FPCAR_ADDRESS_Msk(0x1FFFFFFFUL<<FPU_FPCAR_ADDRESS_Pos)/*!< FPCAR: ADDRESS bit Mask *//* Floating-Point Default Status Control Register Definitions */#defineFPU_FPDSCR_AHP_Pos26U/*!< FPDSCR: AHP bit Position */#defineFPU_FPDSCR_AHP_Msk(1UL<<FPU_FPDSCR_AHP_Pos)/*!< FPDSCR: AHP bit Mask */#defineFPU_FPDSCR_DN_Pos25U/*!< FPDSCR: DN bit Position */#defineFPU_FPDSCR_DN_Msk(1UL<<FPU_FPDSCR_DN_Pos)/*!< FPDSCR: DN bit Mask */#defineFPU_FPDSCR_FZ_Pos24U/*!< FPDSCR: FZ bit Position */#defineFPU_FPDSCR_FZ_Msk(1UL<<FPU_FPDSCR_FZ_Pos)/*!< FPDSCR: FZ bit Mask */#defineFPU_FPDSCR_RMode_Pos22U/*!< FPDSCR: RMode bit Position */#defineFPU_FPDSCR_RMode_Msk(3UL<<FPU_FPDSCR_RMode_Pos)/*!< FPDSCR: RMode bit Mask *//* Media and FP Feature Register 0 Definitions */#defineFPU_MVFR0_FP_rounding_modes_Pos28U/*!< MVFR0: FP rounding modes bits Position */#defineFPU_MVFR0_FP_rounding_modes_Msk(0xFUL<<FPU_MVFR0_FP_rounding_modes_Pos)/*!< MVFR0: FP rounding modes bits Mask */#defineFPU_MVFR0_Short_vectors_Pos24U/*!< MVFR0: Short vectors bits Position */#defineFPU_MVFR0_Short_vectors_Msk(0xFUL<<FPU_MVFR0_Short_vectors_Pos)/*!< MVFR0: Short vectors bits Mask */#defineFPU_MVFR0_Square_root_Pos20U/*!< MVFR0: Square root bits Position */#defineFPU_MVFR0_Square_root_Msk(0xFUL<<FPU_MVFR0_Square_root_Pos)/*!< MVFR0: Square root bits Mask */#defineFPU_MVFR0_Divide_Pos16U/*!< MVFR0: Divide bits Position */#defineFPU_MVFR0_Divide_Msk(0xFUL<<FPU_MVFR0_Divide_Pos)/*!< MVFR0: Divide bits Mask */#defineFPU_MVFR0_FP_excep_trapping_Pos12U/*!< MVFR0: FP exception trapping bits Position */#defineFPU_MVFR0_FP_excep_trapping_Msk(0xFUL<<FPU_MVFR0_FP_excep_trapping_Pos)/*!< MVFR0: FP exception trapping bits Mask */#defineFPU_MVFR0_Double_precision_Pos8U/*!< MVFR0: Double-precision bits Position */#defineFPU_MVFR0_Double_precision_Msk(0xFUL<<FPU_MVFR0_Double_precision_Pos)/*!< MVFR0: Double-precision bits Mask */#defineFPU_MVFR0_Single_precision_Pos4U/*!< MVFR0: Single-precision bits Position */#defineFPU_MVFR0_Single_precision_Msk(0xFUL<<FPU_MVFR0_Single_precision_Pos)/*!< MVFR0: Single-precision bits Mask */#defineFPU_MVFR0_A_SIMD_registers_Pos0U/*!< MVFR0: A_SIMD registers bits Position */#defineFPU_MVFR0_A_SIMD_registers_Msk(0xFUL/*<< FPU_MVFR0_A_SIMD_registers_Pos*/)/*!< MVFR0: A_SIMD registers bits Mask *//* Media and FP Feature Register 1 Definitions */#defineFPU_MVFR1_FP_fused_MAC_Pos28U/*!< MVFR1: FP fused MAC bits Position */#defineFPU_MVFR1_FP_fused_MAC_Msk(0xFUL<<FPU_MVFR1_FP_fused_MAC_Pos)/*!< MVFR1: FP fused MAC bits Mask */#defineFPU_MVFR1_FP_HPFP_Pos24U/*!< MVFR1: FP HPFP bits Position */#defineFPU_MVFR1_FP_HPFP_Msk(0xFUL<<FPU_MVFR1_FP_HPFP_Pos)/*!< MVFR1: FP HPFP bits Mask */#defineFPU_MVFR1_D_NaN_mode_Pos4U/*!< MVFR1: D_NaN mode bits Position */#defineFPU_MVFR1_D_NaN_mode_Msk(0xFUL<<FPU_MVFR1_D_NaN_mode_Pos)/*!< MVFR1: D_NaN mode bits Mask */#defineFPU_MVFR1_FtZ_mode_Pos0U/*!< MVFR1: FtZ mode bits Position */#defineFPU_MVFR1_FtZ_mode_Msk(0xFUL/*<< FPU_MVFR1_FtZ_mode_Pos*/)/*!< MVFR1: FtZ mode bits Mask *//* Media and FP Feature Register 2 Definitions */#defineFPU_MVFR2_VFP_Misc_Pos4U/*!< MVFR2: VFP Misc bits Position */#defineFPU_MVFR2_VFP_Misc_Msk(0xFUL<<FPU_MVFR2_VFP_Misc_Pos)/*!< MVFR2: VFP Misc bits Mask */54 defines/*@} end of group CMSIS_FPU *//** \ingroup CMSIS_core_register \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) \brief Type definitions for the Core Debug Registers @{ *//* ... *//** \brief Structure type to access the Core Debug Register (CoreDebug). *//* ... */typedefstruct{__IOMuint32_tDHCSR;/*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */__OMuint32_tDCRSR;/*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */__IOMuint32_tDCRDR;/*!< Offset: 0x008 (R/W) Debug Core Register Data Register */__IOMuint32_tDEMCR;/*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */...}CoreDebug_Type;/* Debug Halting Control and Status Register Definitions */#defineCoreDebug_DHCSR_DBGKEY_Pos16U/*!< CoreDebug DHCSR: DBGKEY Position */#defineCoreDebug_DHCSR_DBGKEY_Msk(0xFFFFUL<<CoreDebug_DHCSR_DBGKEY_Pos)/*!< CoreDebug DHCSR: DBGKEY Mask */#defineCoreDebug_DHCSR_S_RESET_ST_Pos25U/*!< CoreDebug DHCSR: S_RESET_ST Position */#defineCoreDebug_DHCSR_S_RESET_ST_Msk(1UL<<CoreDebug_DHCSR_S_RESET_ST_Pos)/*!< CoreDebug DHCSR: S_RESET_ST Mask */#defineCoreDebug_DHCSR_S_RETIRE_ST_Pos24U/*!< CoreDebug DHCSR: S_RETIRE_ST Position */#defineCoreDebug_DHCSR_S_RETIRE_ST_Msk(1UL<<CoreDebug_DHCSR_S_RETIRE_ST_Pos)/*!< CoreDebug DHCSR: S_RETIRE_ST Mask */#defineCoreDebug_DHCSR_S_LOCKUP_Pos19U/*!< CoreDebug DHCSR: S_LOCKUP Position */#defineCoreDebug_DHCSR_S_LOCKUP_Msk(1UL<<CoreDebug_DHCSR_S_LOCKUP_Pos)/*!< CoreDebug DHCSR: S_LOCKUP Mask */#defineCoreDebug_DHCSR_S_SLEEP_Pos18U/*!< CoreDebug DHCSR: S_SLEEP Position */#defineCoreDebug_DHCSR_S_SLEEP_Msk(1UL<<CoreDebug_DHCSR_S_SLEEP_Pos)/*!< CoreDebug DHCSR: S_SLEEP Mask */#defineCoreDebug_DHCSR_S_HALT_Pos17U/*!< CoreDebug DHCSR: S_HALT Position */#defineCoreDebug_DHCSR_S_HALT_Msk(1UL<<CoreDebug_DHCSR_S_HALT_Pos)/*!< CoreDebug DHCSR: S_HALT Mask */#defineCoreDebug_DHCSR_S_REGRDY_Pos16U/*!< CoreDebug DHCSR: S_REGRDY Position */#defineCoreDebug_DHCSR_S_REGRDY_Msk(1UL<<CoreDebug_DHCSR_S_REGRDY_Pos)/*!< CoreDebug DHCSR: S_REGRDY Mask */#defineCoreDebug_DHCSR_C_SNAPSTALL_Pos5U/*!< CoreDebug DHCSR: C_SNAPSTALL Position */#defineCoreDebug_DHCSR_C_SNAPSTALL_Msk(1UL<<CoreDebug_DHCSR_C_SNAPSTALL_Pos)/*!< CoreDebug DHCSR: C_SNAPSTALL Mask */#defineCoreDebug_DHCSR_C_MASKINTS_Pos3U/*!< CoreDebug DHCSR: C_MASKINTS Position */#defineCoreDebug_DHCSR_C_MASKINTS_Msk(1UL<<CoreDebug_DHCSR_C_MASKINTS_Pos)/*!< CoreDebug DHCSR: C_MASKINTS Mask */#defineCoreDebug_DHCSR_C_STEP_Pos2U/*!< CoreDebug DHCSR: C_STEP Position */#defineCoreDebug_DHCSR_C_STEP_Msk(1UL<<CoreDebug_DHCSR_C_STEP_Pos)/*!< CoreDebug DHCSR: C_STEP Mask */#defineCoreDebug_DHCSR_C_HALT_Pos1U/*!< CoreDebug DHCSR: C_HALT Position */#defineCoreDebug_DHCSR_C_HALT_Msk(1UL<<CoreDebug_DHCSR_C_HALT_Pos)/*!< CoreDebug DHCSR: C_HALT Mask */#defineCoreDebug_DHCSR_C_DEBUGEN_Pos0U/*!< CoreDebug DHCSR: C_DEBUGEN Position */#defineCoreDebug_DHCSR_C_DEBUGEN_Msk(1UL/*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/)/*!< CoreDebug DHCSR: C_DEBUGEN Mask *//* Debug Core Register Selector Register Definitions */#defineCoreDebug_DCRSR_REGWnR_Pos16U/*!< CoreDebug DCRSR: REGWnR Position */#defineCoreDebug_DCRSR_REGWnR_Msk(1UL<<CoreDebug_DCRSR_REGWnR_Pos)/*!< CoreDebug DCRSR: REGWnR Mask */#defineCoreDebug_DCRSR_REGSEL_Pos0U/*!< CoreDebug DCRSR: REGSEL Position */#defineCoreDebug_DCRSR_REGSEL_Msk(0x1FUL/*<< CoreDebug_DCRSR_REGSEL_Pos*/)/*!< CoreDebug DCRSR: REGSEL Mask *//* Debug Exception and Monitor Control Register Definitions */#defineCoreDebug_DEMCR_TRCENA_Pos24U/*!< CoreDebug DEMCR: TRCENA Position */#defineCoreDebug_DEMCR_TRCENA_Msk(1UL<<CoreDebug_DEMCR_TRCENA_Pos)/*!< CoreDebug DEMCR: TRCENA Mask */#defineCoreDebug_DEMCR_MON_REQ_Pos19U/*!< CoreDebug DEMCR: MON_REQ Position */#defineCoreDebug_DEMCR_MON_REQ_Msk(1UL<<CoreDebug_DEMCR_MON_REQ_Pos)/*!< CoreDebug DEMCR: MON_REQ Mask */#defineCoreDebug_DEMCR_MON_STEP_Pos18U/*!< CoreDebug DEMCR: MON_STEP Position */#defineCoreDebug_DEMCR_MON_STEP_Msk(1UL<<CoreDebug_DEMCR_MON_STEP_Pos)/*!< CoreDebug DEMCR: MON_STEP Mask */#defineCoreDebug_DEMCR_MON_PEND_Pos17U/*!< CoreDebug DEMCR: MON_PEND Position */#defineCoreDebug_DEMCR_MON_PEND_Msk(1UL<<CoreDebug_DEMCR_MON_PEND_Pos)/*!< CoreDebug DEMCR: MON_PEND Mask */#defineCoreDebug_DEMCR_MON_EN_Pos16U/*!< CoreDebug DEMCR: MON_EN Position */#defineCoreDebug_DEMCR_MON_EN_Msk(1UL<<CoreDebug_DEMCR_MON_EN_Pos)/*!< CoreDebug DEMCR: MON_EN Mask */#defineCoreDebug_DEMCR_VC_HARDERR_Pos10U/*!< CoreDebug DEMCR: VC_HARDERR Position */#defineCoreDebug_DEMCR_VC_HARDERR_Msk(1UL<<CoreDebug_DEMCR_VC_HARDERR_Pos)/*!< CoreDebug DEMCR: VC_HARDERR Mask */#defineCoreDebug_DEMCR_VC_INTERR_Pos9U/*!< CoreDebug DEMCR: VC_INTERR Position */#defineCoreDebug_DEMCR_VC_INTERR_Msk(1UL<<CoreDebug_DEMCR_VC_INTERR_Pos)/*!< CoreDebug DEMCR: VC_INTERR Mask */#defineCoreDebug_DEMCR_VC_BUSERR_Pos8U/*!< CoreDebug DEMCR: VC_BUSERR Position */#defineCoreDebug_DEMCR_VC_BUSERR_Msk(1UL<<CoreDebug_DEMCR_VC_BUSERR_Pos)/*!< CoreDebug DEMCR: VC_BUSERR Mask */#defineCoreDebug_DEMCR_VC_STATERR_Pos7U/*!< CoreDebug DEMCR: VC_STATERR Position */#defineCoreDebug_DEMCR_VC_STATERR_Msk(1UL<<CoreDebug_DEMCR_VC_STATERR_Pos)/*!< CoreDebug DEMCR: VC_STATERR Mask */#defineCoreDebug_DEMCR_VC_CHKERR_Pos6U/*!< CoreDebug DEMCR: VC_CHKERR Position */#defineCoreDebug_DEMCR_VC_CHKERR_Msk(1UL<<CoreDebug_DEMCR_VC_CHKERR_Pos)/*!< CoreDebug DEMCR: VC_CHKERR Mask */#defineCoreDebug_DEMCR_VC_NOCPERR_Pos5U/*!< CoreDebug DEMCR: VC_NOCPERR Position */#defineCoreDebug_DEMCR_VC_NOCPERR_Msk(1UL<<CoreDebug_DEMCR_VC_NOCPERR_Pos)/*!< CoreDebug DEMCR: VC_NOCPERR Mask */#defineCoreDebug_DEMCR_VC_MMERR_Pos4U/*!< CoreDebug DEMCR: VC_MMERR Position */#defineCoreDebug_DEMCR_VC_MMERR_Msk(1UL<<CoreDebug_DEMCR_VC_MMERR_Pos)/*!< CoreDebug DEMCR: VC_MMERR Mask */#defineCoreDebug_DEMCR_VC_CORERESET_Pos0U/*!< CoreDebug DEMCR: VC_CORERESET Position */#defineCoreDebug_DEMCR_VC_CORERESET_Msk(1UL/*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/)/*!< CoreDebug DEMCR: VC_CORERESET Mask *//*@} end of group CMSIS_CoreDebug *//** \ingroup CMSIS_core_register \defgroup CMSIS_core_bitfield Core register bit field macros \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). @{ *//* ... *//** \brief Mask and shift a bit field value for use in a register bit range. \param[in] field Name of the register bit field. \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type. \return Masked and shifted value.*//* ... */#define_VAL2FLD(field,value)(((uint32_t)(value)<<field##_Pos)&field##_Msk)/** \brief Mask and shift a register value to extract a bit filed value. \param[in] field Name of the register bit field. \param[in] value Value of register. This parameter is interpreted as an uint32_t type. \return Masked and shifted bit field value.*//* ... */#define_FLD2VAL(field,value)(((uint32_t)(value)&field##_Msk)>>field##_Pos)/*@} end of group CMSIS_core_bitfield *//** \ingroup CMSIS_core_register \defgroup CMSIS_core_base Core Definitions \brief Definitions for base addresses, unions, and structures. @{ *//* ... *//* Memory mapping of Core Hardware */#defineSCS_BASE(0xE000E000UL)/*!< System Control Space Base Address */#defineITM_BASE(0xE0000000UL)/*!< ITM Base Address */#defineDWT_BASE(0xE0001000UL)/*!< DWT Base Address */#defineTPI_BASE(0xE0040000UL)/*!< TPI Base Address */#defineCoreDebug_BASE(0xE000EDF0UL)/*!< Core Debug Base Address */#defineSysTick_BASE(SCS_BASE+0x0010UL)/*!< SysTick Base Address */#defineNVIC_BASE(SCS_BASE+0x0100UL)/*!< NVIC Base Address */#defineSCB_BASE(SCS_BASE+0x0D00UL)/*!< System Control Block Base Address */#defineSCnSCB((SCnSCB_Type*)SCS_BASE)/*!< System control Register not in SCB */#defineSCB((SCB_Type*)SCB_BASE)/*!< SCB configuration struct */#defineSysTick((SysTick_Type*)SysTick_BASE)/*!< SysTick configuration struct */#defineNVIC((NVIC_Type*)NVIC_BASE)/*!< NVIC configuration struct */#defineITM((ITM_Type*)ITM_BASE)/*!< ITM configuration struct */#defineDWT((DWT_Type*)DWT_BASE)/*!< DWT configuration struct */#defineTPI((TPI_Type*)TPI_BASE)/*!< TPI configuration struct */#defineCoreDebug((CoreDebug_Type*)CoreDebug_BASE)/*!< Core Debug configuration struct */72 defines#ifdefined(__MPU_PRESENT)&&(__MPU_PRESENT==1U)#defineMPU_BASE(SCS_BASE+0x0D90UL)/*!< Memory Protection Unit */#defineMPU((MPU_Type*)MPU_BASE)/*!< Memory Protection Unit *//* ... */#endif#defineFPU_BASE(SCS_BASE+0x0F30UL)/*!< Floating Point Unit */#defineFPU((FPU_Type*)FPU_BASE)/*!< Floating Point Unit *//*@} *//******************************************************************************* * Hardware Abstraction Layer Core Function Interface contains: - Core NVIC Functions - Core SysTick Functions - Core Debug Functions - Core Register Access Functions ******************************************************************************//* ... *//** \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference*//* ... *//* ########################## NVIC functions #################################### *//** \ingroup CMSIS_Core_FunctionInterface \defgroup CMSIS_Core_NVICFunctions NVIC Functions \brief Functions that manage interrupts and exceptions via the NVIC. @{ *//* ... */#ifdefCMSIS_NVIC_VIRTUAL#ifndefCMSIS_NVIC_VIRTUAL_HEADER_FILE#defineCMSIS_NVIC_VIRTUAL_HEADER_FILE"cmsis_nvic_virtual.h"#endif#includeCMSIS_NVIC_VIRTUAL_HEADER_FILE/* ... */#else#defineNVIC_SetPriorityGrouping__NVIC_SetPriorityGrouping#defineNVIC_GetPriorityGrouping__NVIC_GetPriorityGrouping#defineNVIC_EnableIRQ__NVIC_EnableIRQ#defineNVIC_GetEnableIRQ__NVIC_GetEnableIRQ#defineNVIC_DisableIRQ__NVIC_DisableIRQ#defineNVIC_GetPendingIRQ__NVIC_GetPendingIRQ#defineNVIC_SetPendingIRQ__NVIC_SetPendingIRQ#defineNVIC_ClearPendingIRQ__NVIC_ClearPendingIRQ#defineNVIC_GetActive__NVIC_GetActive#defineNVIC_SetPriority__NVIC_SetPriority#defineNVIC_GetPriority__NVIC_GetPriority#defineNVIC_SystemReset__NVIC_SystemReset/* ... */#endif/* CMSIS_NVIC_VIRTUAL */#ifdefCMSIS_VECTAB_VIRTUAL#ifndefCMSIS_VECTAB_VIRTUAL_HEADER_FILE#defineCMSIS_VECTAB_VIRTUAL_HEADER_FILE"cmsis_vectab_virtual.h"#endif#includeCMSIS_VECTAB_VIRTUAL_HEADER_FILE/* ... */#else#defineNVIC_SetVector__NVIC_SetVector#defineNVIC_GetVector__NVIC_GetVector/* ... */#endif/* (CMSIS_VECTAB_VIRTUAL) */#defineNVIC_USER_IRQ_OFFSET16/* The following EXC_RETURN values are saved the LR on exception entry */#defineEXC_RETURN_HANDLER(0xFFFFFFF1UL)/* return to Handler mode, uses MSP after return */#defineEXC_RETURN_THREAD_MSP(0xFFFFFFF9UL)/* return to Thread mode, uses MSP after return */#defineEXC_RETURN_THREAD_PSP(0xFFFFFFFDUL)/* return to Thread mode, uses PSP after return */#defineEXC_RETURN_HANDLER_FPU(0xFFFFFFE1UL)/* return to Handler mode, uses MSP after return, restore floating-point state */#defineEXC_RETURN_THREAD_MSP_FPU(0xFFFFFFE9UL)/* return to Thread mode, uses MSP after return, restore floating-point state */#defineEXC_RETURN_THREAD_PSP_FPU(0xFFFFFFEDUL)/* return to Thread mode, uses PSP after return, restore floating-point state */7 defines/** \brief Set Priority Grouping \details Sets the priority grouping field using the required unlock sequence. The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. Only values from 0..7 are used. In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. \param [in] PriorityGroup Priority grouping field. *//* ... */__STATIC_INLINEvoid__NVIC_SetPriorityGrouping(uint32_tPriorityGroup){uint32_treg_value;uint32_tPriorityGroupTmp=(PriorityGroup&(uint32_t)0x07UL);/* only values 0..7 are used */reg_value=SCB->AIRCR;/* read old register configuration */reg_value&=~((uint32_t)(SCB_AIRCR_VECTKEY_Msk|SCB_AIRCR_PRIGROUP_Msk));/* clear bits to change */reg_value=(reg_value|((uint32_t)0x5FAUL<<SCB_AIRCR_VECTKEY_Pos)|(PriorityGroupTmp<<SCB_AIRCR_PRIGROUP_Pos));/* Insert write key and priority group */SCB->AIRCR=reg_value;}{ ... }/** \brief Get Priority Grouping \details Reads the priority grouping field from the NVIC Interrupt Controller. \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). *//* ... */__STATIC_INLINEuint32_t__NVIC_GetPriorityGrouping(void){return((uint32_t)((SCB->AIRCR&SCB_AIRCR_PRIGROUP_Msk)>>SCB_AIRCR_PRIGROUP_Pos));}{ ... }/** \brief Enable Interrupt \details Enables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. *//* ... */__STATIC_INLINEvoid__NVIC_EnableIRQ(IRQn_TypeIRQn){if((int32_t)(IRQn)>=0){__COMPILER_BARRIER();NVIC->ISER[(((uint32_t)IRQn)>>5UL)]=(uint32_t)(1UL<<(((uint32_t)IRQn)&0x1FUL));__COMPILER_BARRIER();}if ((int32_t)(IRQn) >= 0) { ... }}{ ... }/** \brief Get Interrupt Enable status \details Returns a device specific interrupt enable status from the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \return 0 Interrupt is not enabled. \return 1 Interrupt is enabled. \note IRQn must not be negative. *//* ... */__STATIC_INLINEuint32_t__NVIC_GetEnableIRQ(IRQn_TypeIRQn){if((int32_t)(IRQn)>=0){return((uint32_t)(((NVIC->ISER[(((uint32_t)IRQn)>>5UL)]&(1UL<<(((uint32_t)IRQn)&0x1FUL)))!=0UL)?1UL:0UL));}if ((int32_t)(IRQn) >= 0) { ... }else{return(0U);}else { ... }}{ ... }/** \brief Disable Interrupt \details Disables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. *//* ... */__STATIC_INLINEvoid__NVIC_DisableIRQ(IRQn_TypeIRQn){if((int32_t)(IRQn)>=0){NVIC->ICER[(((uint32_t)IRQn)>>5UL)]=(uint32_t)(1UL<<(((uint32_t)IRQn)&0x1FUL));__DSB();__ISB();}if ((int32_t)(IRQn) >= 0) { ... }}{ ... }/** \brief Get Pending Interrupt \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt. \param [in] IRQn Device specific interrupt number. \return 0 Interrupt status is not pending. \return 1 Interrupt status is pending. \note IRQn must not be negative. *//* ... */__STATIC_INLINEuint32_t__NVIC_GetPendingIRQ(IRQn_TypeIRQn){if((int32_t)(IRQn)>=0){return((uint32_t)(((NVIC->ISPR[(((uint32_t)IRQn)>>5UL)]&(1UL<<(((uint32_t)IRQn)&0x1FUL)))!=0UL)?1UL:0UL));}if ((int32_t)(IRQn) >= 0) { ... }else{return(0U);}else { ... }}{ ... }/** \brief Set Pending Interrupt \details Sets the pending bit of a device specific interrupt in the NVIC pending register. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. *//* ... */__STATIC_INLINEvoid__NVIC_SetPendingIRQ(IRQn_TypeIRQn){if((int32_t)(IRQn)>=0){NVIC->ISPR[(((uint32_t)IRQn)>>5UL)]=(uint32_t)(1UL<<(((uint32_t)IRQn)&0x1FUL));}if ((int32_t)(IRQn) >= 0) { ... }}{ ... }/** \brief Clear Pending Interrupt \details Clears the pending bit of a device specific interrupt in the NVIC pending register. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. *//* ... */__STATIC_INLINEvoid__NVIC_ClearPendingIRQ(IRQn_TypeIRQn){if((int32_t)(IRQn)>=0){NVIC->ICPR[(((uint32_t)IRQn)>>5UL)]=(uint32_t)(1UL<<(((uint32_t)IRQn)&0x1FUL));}if ((int32_t)(IRQn) >= 0) { ... }}{ ... }/** \brief Get Active Interrupt \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt. \param [in] IRQn Device specific interrupt number. \return 0 Interrupt status is not active. \return 1 Interrupt status is active. \note IRQn must not be negative. *//* ... */__STATIC_INLINEuint32_t__NVIC_GetActive(IRQn_TypeIRQn){if((int32_t)(IRQn)>=0){return((uint32_t)(((NVIC->IABR[(((uint32_t)IRQn)>>5UL)]&(1UL<<(((uint32_t)IRQn)&0x1FUL)))!=0UL)?1UL:0UL));}if ((int32_t)(IRQn) >= 0) { ... }else{return(0U);}else { ... }}{ ... }/** \brief Set Interrupt Priority \details Sets the priority of a device specific interrupt or a processor exception. The interrupt number can be positive to specify a device specific interrupt, or negative to specify a processor exception. \param [in] IRQn Interrupt number. \param [in] priority Priority to set. \note The priority cannot be set for every processor exception. *//* ... */__STATIC_INLINEvoid__NVIC_SetPriority(IRQn_TypeIRQn,uint32_tpriority){if((int32_t)(IRQn)>=0){NVIC->IP[((uint32_t)IRQn)]=(uint8_t)((priority<<(8U-__NVIC_PRIO_BITS))&(uint32_t)0xFFUL);}if ((int32_t)(IRQn) >= 0) { ... }else{SCB->SHP[(((uint32_t)IRQn)&0xFUL)-4UL]=(uint8_t)((priority<<(8U-__NVIC_PRIO_BITS))&(uint32_t)0xFFUL);}else { ... }}{ ... }/** \brief Get Interrupt Priority \details Reads the priority of a device specific interrupt or a processor exception. The interrupt number can be positive to specify a device specific interrupt, or negative to specify a processor exception. \param [in] IRQn Interrupt number. \return Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller. *//* ... */__STATIC_INLINEuint32_t__NVIC_GetPriority(IRQn_TypeIRQn){if((int32_t)(IRQn)>=0){return(((uint32_t)NVIC->IP[((uint32_t)IRQn)]>>(8U-__NVIC_PRIO_BITS)));}if ((int32_t)(IRQn) >= 0) { ... }else{return(((uint32_t)SCB->SHP[(((uint32_t)IRQn)&0xFUL)-4UL]>>(8U-__NVIC_PRIO_BITS)));}else { ... }}{ ... }/** \brief Encode Priority \details Encodes the priority for an interrupt with the given priority group, preemptive priority value, and subpriority value. In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. \param [in] PriorityGroup Used priority group. \param [in] PreemptPriority Preemptive priority value (starting from 0). \param [in] SubPriority Subpriority value (starting from 0). \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). *//* ... */__STATIC_INLINEuint32_tNVIC_EncodePriority(uint32_tPriorityGroup,uint32_tPreemptPriority,uint32_tSubPriority){uint32_tPriorityGroupTmp=(PriorityGroup&(uint32_t)0x07UL);/* only values 0..7 are used */uint32_tPreemptPriorityBits;uint32_tSubPriorityBits;PreemptPriorityBits=((7UL-PriorityGroupTmp)>(uint32_t)(__NVIC_PRIO_BITS))?(uint32_t)(__NVIC_PRIO_BITS):(uint32_t)(7UL-PriorityGroupTmp);SubPriorityBits=((PriorityGroupTmp+(uint32_t)(__NVIC_PRIO_BITS))<(uint32_t)7UL)?(uint32_t)0UL:(uint32_t)((PriorityGroupTmp-7UL)+(uint32_t)(__NVIC_PRIO_BITS));return(((PreemptPriority&(uint32_t)((1UL<<(PreemptPriorityBits))-1UL))<<SubPriorityBits)|((SubPriority&(uint32_t)((1UL<<(SubPriorityBits))-1UL))));}{ ... }/** \brief Decode Priority \details Decodes an interrupt priority value with a given priority group to preemptive priority value and subpriority value. In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). \param [in] PriorityGroup Used priority group. \param [out] pPreemptPriority Preemptive priority value (starting from 0). \param [out] pSubPriority Subpriority value (starting from 0). *//* ... */__STATIC_INLINEvoidNVIC_DecodePriority(uint32_tPriority,uint32_tPriorityGroup,uint32_t*constpPreemptPriority,uint32_t*constpSubPriority){uint32_tPriorityGroupTmp=(PriorityGroup&(uint32_t)0x07UL);/* only values 0..7 are used */uint32_tPreemptPriorityBits;uint32_tSubPriorityBits;PreemptPriorityBits=((7UL-PriorityGroupTmp)>(uint32_t)(__NVIC_PRIO_BITS))?(uint32_t)(__NVIC_PRIO_BITS):(uint32_t)(7UL-PriorityGroupTmp);SubPriorityBits=((PriorityGroupTmp+(uint32_t)(__NVIC_PRIO_BITS))<(uint32_t)7UL)?(uint32_t)0UL:(uint32_t)((PriorityGroupTmp-7UL)+(uint32_t)(__NVIC_PRIO_BITS));*pPreemptPriority=(Priority>>SubPriorityBits)&(uint32_t)((1UL<<(PreemptPriorityBits))-1UL);*pSubPriority=(Priority)&(uint32_t)((1UL<<(SubPriorityBits))-1UL);}{ ... }/** \brief Set Interrupt Vector \details Sets an interrupt vector in SRAM based interrupt vector table. The interrupt number can be positive to specify a device specific interrupt, or negative to specify a processor exception. VTOR must been relocated to SRAM before. \param [in] IRQn Interrupt number \param [in] vector Address of interrupt handler function *//* ... */__STATIC_INLINEvoid__NVIC_SetVector(IRQn_TypeIRQn,uint32_tvector){uint32_t*vectors=(uint32_t*)SCB->VTOR;vectors[(int32_t)IRQn+NVIC_USER_IRQ_OFFSET]=vector;/* ARM Application Note 321 states that the M4 does not require the architectural barrier */}{ ... }/** \brief Get Interrupt Vector \details Reads an interrupt vector from interrupt vector table. The interrupt number can be positive to specify a device specific interrupt, or negative to specify a processor exception. \param [in] IRQn Interrupt number. \return Address of interrupt handler function *//* ... */__STATIC_INLINEuint32_t__NVIC_GetVector(IRQn_TypeIRQn){uint32_t*vectors=(uint32_t*)SCB->VTOR;returnvectors[(int32_t)IRQn+NVIC_USER_IRQ_OFFSET];}{ ... }/** \brief System Reset \details Initiates a system reset request to reset the MCU. *//* ... */__NO_RETURN__STATIC_INLINEvoid__NVIC_SystemReset(void){__DSB();/* Ensure all outstanding memory accesses included buffered write are completed before reset *//* ... */SCB->AIRCR=(uint32_t)((0x5FAUL<<SCB_AIRCR_VECTKEY_Pos)|(SCB->AIRCR&SCB_AIRCR_PRIGROUP_Msk)|SCB_AIRCR_SYSRESETREQ_Msk);/* Keep priority group unchanged */__DSB();/* Ensure completion of memory access */for(;;)/* wait until reset */{__NOP();...}}{ ... }/*@} end of CMSIS_Core_NVICFunctions *//* ########################## MPU functions #################################### */#ifdefined(__MPU_PRESENT)&&(__MPU_PRESENT==1U)#include"mpu_armv7.h"/* ... */#endif/* ########################## FPU functions #################################### *//** \ingroup CMSIS_Core_FunctionInterface \defgroup CMSIS_Core_FpuFunctions FPU Functions \brief Function that provides FPU type. @{ *//* ... *//** \brief get FPU type \details returns the FPU type \returns - \b 0: No FPU - \b 1: Single precision FPU - \b 2: Double + Single precision FPU *//* ... */__STATIC_INLINEuint32_tSCB_GetFPUType(void){uint32_tmvfr0;mvfr0=FPU->MVFR0;if((mvfr0&(FPU_MVFR0_Single_precision_Msk|FPU_MVFR0_Double_precision_Msk))==0x020U){return1U;/* Single precision FPU */}if ((mvfr0 & (FPU_MVFR0_Single_precision_Msk | FPU_MVFR0_Double_precision_Msk)) == 0x020U) { ... }else{return0U;/* No FPU */}else { ... }}{ ... }/*@} end of CMSIS_Core_FpuFunctions *//* ################################## SysTick function ############################################ *//** \ingroup CMSIS_Core_FunctionInterface \defgroup CMSIS_Core_SysTickFunctions SysTick Functions \brief Functions that configure the System. @{ *//* ... */#ifdefined(__Vendor_SysTickConfig)&&(__Vendor_SysTickConfig==0U)/** \brief System Tick Configuration \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. Counter is in free running mode to generate periodic interrupts. \param [in] ticks Number of ticks between two interrupts. \return 0 Function succeeded. \return 1 Function failed. \note When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b> must contain a vendor-specific implementation of this function. *//* ... */__STATIC_INLINEuint32_tSysTick_Config(uint32_tticks){if((ticks-1UL)>SysTick_LOAD_RELOAD_Msk){return(1UL);/* Reload value impossible */}if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) { ... }SysTick->LOAD=(uint32_t)(ticks-1UL);/* set reload register */NVIC_SetPriority(SysTick_IRQn,(1UL<<__NVIC_PRIO_BITS)-1UL);/* set Priority for Systick Interrupt */SysTick->VAL=0UL;/* Load the SysTick Counter Value */SysTick->CTRL=SysTick_CTRL_CLKSOURCE_Msk|SysTick_CTRL_TICKINT_Msk|SysTick_CTRL_ENABLE_Msk;/* Enable SysTick IRQ and SysTick Timer */return(0UL);/* Function successful */}{ ... }/* ... */#endif/*@} end of CMSIS_Core_SysTickFunctions *//* ##################################### Debug In/Output function ########################################### *//** \ingroup CMSIS_Core_FunctionInterface \defgroup CMSIS_core_DebugFunctions ITM Functions \brief Functions that access the ITM debug interface. @{ *//* ... */externvolatileint32_tITM_RxBuffer;/*!< External variable to receive characters. */#defineITM_RXBUFFER_EMPTY((int32_t)0x5AA55AA5U)/*!< Value identifying \ref ITM_RxBuffer is ready for next character. *//** \brief ITM Send Character \details Transmits a character via the ITM channel 0, and \li Just returns when no debugger is connected that has booked the output. \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. \param [in] ch Character to transmit. \returns Character to transmit. *//* ... */__STATIC_INLINEuint32_tITM_SendChar(uint32_tch){if(((ITM->TCR&ITM_TCR_ITMENA_Msk)!=0UL)&&/* ITM enabled */((ITM->TER&1UL)!=0UL))/* ITM Port #0 enabled */{while(ITM->PORT[0U].u32==0UL){__NOP();}while (ITM->PORT[0U].u32 == 0UL) { ... }ITM->PORT[0U].u8=(uint8_t)ch;...}return(ch);}{ ... }/** \brief ITM Receive Character \details Inputs a character via the external variable \ref ITM_RxBuffer. \return Received character. \return -1 No character pending. *//* ... */__STATIC_INLINEint32_tITM_ReceiveChar(void){int32_tch=-1;/* no character available */if(ITM_RxBuffer!=ITM_RXBUFFER_EMPTY){ch=ITM_RxBuffer;ITM_RxBuffer=ITM_RXBUFFER_EMPTY;/* ready for next character */}if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) { ... }return(ch);}{ ... }/** \brief ITM Check Character \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. \return 0 No character available. \return 1 Character available. *//* ... */__STATIC_INLINEint32_tITM_CheckChar(void){if(ITM_RxBuffer==ITM_RXBUFFER_EMPTY){return(0);/* no character available */}if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) { ... }else{return(1);/* character available */}else { ... }}{ ... }/*@} end of CMSIS_core_DebugFunctions */#ifdef__cplusplus}extern "C" { ... }#endif/* ... */#endif/* __CORE_CM4_H_DEPENDANT *//* ... */#endif/* __CMSIS_GENERIC */
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.