added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Committer:
JojoS
Date:
Sat Sep 10 15:32:04 2016 +0000
Revision:
147:ba84b7dc41a7
Parent:
144:ef7eb2e8f9f7
added prescaler for 16 bit timers (solution as in LPC11xx), default prescaler 31 for max 28 ms period time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /**************************************************************************//**
<> 144:ef7eb2e8f9f7 2 * @file core_cm4.h
<> 144:ef7eb2e8f9f7 3 * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File
<> 144:ef7eb2e8f9f7 4 * @version V4.10
<> 144:ef7eb2e8f9f7 5 * @date 18. March 2015
<> 144:ef7eb2e8f9f7 6 *
<> 144:ef7eb2e8f9f7 7 * @note
<> 144:ef7eb2e8f9f7 8 *
<> 144:ef7eb2e8f9f7 9 ******************************************************************************/
<> 144:ef7eb2e8f9f7 10 /* Copyright (c) 2009 - 2015 ARM LIMITED
<> 144:ef7eb2e8f9f7 11
<> 144:ef7eb2e8f9f7 12 All rights reserved.
<> 144:ef7eb2e8f9f7 13 Redistribution and use in source and binary forms, with or without
<> 144:ef7eb2e8f9f7 14 modification, are permitted provided that the following conditions are met:
<> 144:ef7eb2e8f9f7 15 - Redistributions of source code must retain the above copyright
<> 144:ef7eb2e8f9f7 16 notice, this list of conditions and the following disclaimer.
<> 144:ef7eb2e8f9f7 17 - Redistributions in binary form must reproduce the above copyright
<> 144:ef7eb2e8f9f7 18 notice, this list of conditions and the following disclaimer in the
<> 144:ef7eb2e8f9f7 19 documentation and/or other materials provided with the distribution.
<> 144:ef7eb2e8f9f7 20 - Neither the name of ARM nor the names of its contributors may be used
<> 144:ef7eb2e8f9f7 21 to endorse or promote products derived from this software without
<> 144:ef7eb2e8f9f7 22 specific prior written permission.
<> 144:ef7eb2e8f9f7 23 *
<> 144:ef7eb2e8f9f7 24 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
<> 144:ef7eb2e8f9f7 25 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
<> 144:ef7eb2e8f9f7 26 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
<> 144:ef7eb2e8f9f7 27 ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
<> 144:ef7eb2e8f9f7 28 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
<> 144:ef7eb2e8f9f7 29 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
<> 144:ef7eb2e8f9f7 30 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
<> 144:ef7eb2e8f9f7 31 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
<> 144:ef7eb2e8f9f7 32 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
<> 144:ef7eb2e8f9f7 33 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
<> 144:ef7eb2e8f9f7 34 POSSIBILITY OF SUCH DAMAGE.
<> 144:ef7eb2e8f9f7 35 ---------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 36
<> 144:ef7eb2e8f9f7 37
<> 144:ef7eb2e8f9f7 38 #if defined ( __ICCARM__ )
<> 144:ef7eb2e8f9f7 39 #pragma system_include /* treat file as system include file for MISRA check */
<> 144:ef7eb2e8f9f7 40 #endif
<> 144:ef7eb2e8f9f7 41
<> 144:ef7eb2e8f9f7 42 #ifndef __CORE_CM4_H_GENERIC
<> 144:ef7eb2e8f9f7 43 #define __CORE_CM4_H_GENERIC
<> 144:ef7eb2e8f9f7 44
<> 144:ef7eb2e8f9f7 45 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 46 extern "C" {
<> 144:ef7eb2e8f9f7 47 #endif
<> 144:ef7eb2e8f9f7 48
<> 144:ef7eb2e8f9f7 49 /** \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions
<> 144:ef7eb2e8f9f7 50 CMSIS violates the following MISRA-C:2004 rules:
<> 144:ef7eb2e8f9f7 51
<> 144:ef7eb2e8f9f7 52 \li Required Rule 8.5, object/function definition in header file.<br>
<> 144:ef7eb2e8f9f7 53 Function definitions in header files are used to allow 'inlining'.
<> 144:ef7eb2e8f9f7 54
<> 144:ef7eb2e8f9f7 55 \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br>
<> 144:ef7eb2e8f9f7 56 Unions are used for effective representation of core registers.
<> 144:ef7eb2e8f9f7 57
<> 144:ef7eb2e8f9f7 58 \li Advisory Rule 19.7, Function-like macro defined.<br>
<> 144:ef7eb2e8f9f7 59 Function-like macros are used to allow more efficient code.
<> 144:ef7eb2e8f9f7 60 */
<> 144:ef7eb2e8f9f7 61
<> 144:ef7eb2e8f9f7 62
<> 144:ef7eb2e8f9f7 63 /*******************************************************************************
<> 144:ef7eb2e8f9f7 64 * CMSIS definitions
<> 144:ef7eb2e8f9f7 65 ******************************************************************************/
<> 144:ef7eb2e8f9f7 66 /** \ingroup Cortex_M4
<> 144:ef7eb2e8f9f7 67 @{
<> 144:ef7eb2e8f9f7 68 */
<> 144:ef7eb2e8f9f7 69
<> 144:ef7eb2e8f9f7 70 /* CMSIS CM4 definitions */
<> 144:ef7eb2e8f9f7 71 #define __CM4_CMSIS_VERSION_MAIN (0x04) /*!< [31:16] CMSIS HAL main version */
<> 144:ef7eb2e8f9f7 72 #define __CM4_CMSIS_VERSION_SUB (0x00) /*!< [15:0] CMSIS HAL sub version */
<> 144:ef7eb2e8f9f7 73 #define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16) | \
<> 144:ef7eb2e8f9f7 74 __CM4_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */
<> 144:ef7eb2e8f9f7 75
<> 144:ef7eb2e8f9f7 76 #define __CORTEX_M (0x04) /*!< Cortex-M Core */
<> 144:ef7eb2e8f9f7 77
<> 144:ef7eb2e8f9f7 78
<> 144:ef7eb2e8f9f7 79 #if defined ( __CC_ARM )
<> 144:ef7eb2e8f9f7 80 #define __ASM __asm /*!< asm keyword for ARM Compiler */
<> 144:ef7eb2e8f9f7 81 #define __INLINE __inline /*!< inline keyword for ARM Compiler */
<> 144:ef7eb2e8f9f7 82 #define __STATIC_INLINE static __inline
<> 144:ef7eb2e8f9f7 83
<> 144:ef7eb2e8f9f7 84 #elif defined ( __GNUC__ )
<> 144:ef7eb2e8f9f7 85 #define __ASM __asm /*!< asm keyword for GNU Compiler */
<> 144:ef7eb2e8f9f7 86 #define __INLINE inline /*!< inline keyword for GNU Compiler */
<> 144:ef7eb2e8f9f7 87 #define __STATIC_INLINE static inline
<> 144:ef7eb2e8f9f7 88
<> 144:ef7eb2e8f9f7 89 #elif defined ( __ICCARM__ )
<> 144:ef7eb2e8f9f7 90 #define __ASM __asm /*!< asm keyword for IAR Compiler */
<> 144:ef7eb2e8f9f7 91 #define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */
<> 144:ef7eb2e8f9f7 92 #define __STATIC_INLINE static inline
<> 144:ef7eb2e8f9f7 93
<> 144:ef7eb2e8f9f7 94 #elif defined ( __TMS470__ )
<> 144:ef7eb2e8f9f7 95 #define __ASM __asm /*!< asm keyword for TI CCS Compiler */
<> 144:ef7eb2e8f9f7 96 #define __STATIC_INLINE static inline
<> 144:ef7eb2e8f9f7 97
<> 144:ef7eb2e8f9f7 98 #elif defined ( __TASKING__ )
<> 144:ef7eb2e8f9f7 99 #define __ASM __asm /*!< asm keyword for TASKING Compiler */
<> 144:ef7eb2e8f9f7 100 #define __INLINE inline /*!< inline keyword for TASKING Compiler */
<> 144:ef7eb2e8f9f7 101 #define __STATIC_INLINE static inline
<> 144:ef7eb2e8f9f7 102
<> 144:ef7eb2e8f9f7 103 #elif defined ( __CSMC__ )
<> 144:ef7eb2e8f9f7 104 #define __packed
<> 144:ef7eb2e8f9f7 105 #define __ASM _asm /*!< asm keyword for COSMIC Compiler */
<> 144:ef7eb2e8f9f7 106 #define __INLINE inline /*use -pc99 on compile line !< inline keyword for COSMIC Compiler */
<> 144:ef7eb2e8f9f7 107 #define __STATIC_INLINE static inline
<> 144:ef7eb2e8f9f7 108
<> 144:ef7eb2e8f9f7 109 #endif
<> 144:ef7eb2e8f9f7 110
<> 144:ef7eb2e8f9f7 111 /** __FPU_USED indicates whether an FPU is used or not.
<> 144:ef7eb2e8f9f7 112 For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions.
<> 144:ef7eb2e8f9f7 113 */
<> 144:ef7eb2e8f9f7 114 #if defined ( __CC_ARM )
<> 144:ef7eb2e8f9f7 115 #if defined __TARGET_FPU_VFP
<> 144:ef7eb2e8f9f7 116 #if (__FPU_PRESENT == 1)
<> 144:ef7eb2e8f9f7 117 #define __FPU_USED 1
<> 144:ef7eb2e8f9f7 118 #else
<> 144:ef7eb2e8f9f7 119 #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
<> 144:ef7eb2e8f9f7 120 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 121 #endif
<> 144:ef7eb2e8f9f7 122 #else
<> 144:ef7eb2e8f9f7 123 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 124 #endif
<> 144:ef7eb2e8f9f7 125
<> 144:ef7eb2e8f9f7 126 #elif defined ( __GNUC__ )
<> 144:ef7eb2e8f9f7 127 #if defined (__VFP_FP__) && !defined(__SOFTFP__)
<> 144:ef7eb2e8f9f7 128 #if (__FPU_PRESENT == 1)
<> 144:ef7eb2e8f9f7 129 #define __FPU_USED 1
<> 144:ef7eb2e8f9f7 130 #else
<> 144:ef7eb2e8f9f7 131 #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
<> 144:ef7eb2e8f9f7 132 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 133 #endif
<> 144:ef7eb2e8f9f7 134 #else
<> 144:ef7eb2e8f9f7 135 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 136 #endif
<> 144:ef7eb2e8f9f7 137
<> 144:ef7eb2e8f9f7 138 #elif defined ( __ICCARM__ )
<> 144:ef7eb2e8f9f7 139 #if defined __ARMVFP__
<> 144:ef7eb2e8f9f7 140 #if (__FPU_PRESENT == 1)
<> 144:ef7eb2e8f9f7 141 #define __FPU_USED 1
<> 144:ef7eb2e8f9f7 142 #else
<> 144:ef7eb2e8f9f7 143 #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
<> 144:ef7eb2e8f9f7 144 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 145 #endif
<> 144:ef7eb2e8f9f7 146 #else
<> 144:ef7eb2e8f9f7 147 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 148 #endif
<> 144:ef7eb2e8f9f7 149
<> 144:ef7eb2e8f9f7 150 #elif defined ( __TMS470__ )
<> 144:ef7eb2e8f9f7 151 #if defined __TI_VFP_SUPPORT__
<> 144:ef7eb2e8f9f7 152 #if (__FPU_PRESENT == 1)
<> 144:ef7eb2e8f9f7 153 #define __FPU_USED 1
<> 144:ef7eb2e8f9f7 154 #else
<> 144:ef7eb2e8f9f7 155 #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
<> 144:ef7eb2e8f9f7 156 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 157 #endif
<> 144:ef7eb2e8f9f7 158 #else
<> 144:ef7eb2e8f9f7 159 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 160 #endif
<> 144:ef7eb2e8f9f7 161
<> 144:ef7eb2e8f9f7 162 #elif defined ( __TASKING__ )
<> 144:ef7eb2e8f9f7 163 #if defined __FPU_VFP__
<> 144:ef7eb2e8f9f7 164 #if (__FPU_PRESENT == 1)
<> 144:ef7eb2e8f9f7 165 #define __FPU_USED 1
<> 144:ef7eb2e8f9f7 166 #else
<> 144:ef7eb2e8f9f7 167 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
<> 144:ef7eb2e8f9f7 168 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 169 #endif
<> 144:ef7eb2e8f9f7 170 #else
<> 144:ef7eb2e8f9f7 171 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 172 #endif
<> 144:ef7eb2e8f9f7 173
<> 144:ef7eb2e8f9f7 174 #elif defined ( __CSMC__ ) /* Cosmic */
<> 144:ef7eb2e8f9f7 175 #if ( __CSMC__ & 0x400) // FPU present for parser
<> 144:ef7eb2e8f9f7 176 #if (__FPU_PRESENT == 1)
<> 144:ef7eb2e8f9f7 177 #define __FPU_USED 1
<> 144:ef7eb2e8f9f7 178 #else
<> 144:ef7eb2e8f9f7 179 #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
<> 144:ef7eb2e8f9f7 180 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 181 #endif
<> 144:ef7eb2e8f9f7 182 #else
<> 144:ef7eb2e8f9f7 183 #define __FPU_USED 0
<> 144:ef7eb2e8f9f7 184 #endif
<> 144:ef7eb2e8f9f7 185 #endif
<> 144:ef7eb2e8f9f7 186
<> 144:ef7eb2e8f9f7 187 #include <stdint.h> /* standard types definitions */
<> 144:ef7eb2e8f9f7 188 #include <core_cmInstr.h> /* Core Instruction Access */
<> 144:ef7eb2e8f9f7 189 #include <core_cmFunc.h> /* Core Function Access */
<> 144:ef7eb2e8f9f7 190 #include <core_cmSimd.h> /* Compiler specific SIMD Intrinsics */
<> 144:ef7eb2e8f9f7 191
<> 144:ef7eb2e8f9f7 192 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 193 }
<> 144:ef7eb2e8f9f7 194 #endif
<> 144:ef7eb2e8f9f7 195
<> 144:ef7eb2e8f9f7 196 #endif /* __CORE_CM4_H_GENERIC */
<> 144:ef7eb2e8f9f7 197
<> 144:ef7eb2e8f9f7 198 #ifndef __CMSIS_GENERIC
<> 144:ef7eb2e8f9f7 199
<> 144:ef7eb2e8f9f7 200 #ifndef __CORE_CM4_H_DEPENDANT
<> 144:ef7eb2e8f9f7 201 #define __CORE_CM4_H_DEPENDANT
<> 144:ef7eb2e8f9f7 202
<> 144:ef7eb2e8f9f7 203 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 204 extern "C" {
<> 144:ef7eb2e8f9f7 205 #endif
<> 144:ef7eb2e8f9f7 206
<> 144:ef7eb2e8f9f7 207 /* check device defines and use defaults */
<> 144:ef7eb2e8f9f7 208 #if defined __CHECK_DEVICE_DEFINES
<> 144:ef7eb2e8f9f7 209 #ifndef __CM4_REV
<> 144:ef7eb2e8f9f7 210 #define __CM4_REV 0x0000
<> 144:ef7eb2e8f9f7 211 #warning "__CM4_REV not defined in device header file; using default!"
<> 144:ef7eb2e8f9f7 212 #endif
<> 144:ef7eb2e8f9f7 213
<> 144:ef7eb2e8f9f7 214 #ifndef __FPU_PRESENT
<> 144:ef7eb2e8f9f7 215 #define __FPU_PRESENT 0
<> 144:ef7eb2e8f9f7 216 #warning "__FPU_PRESENT not defined in device header file; using default!"
<> 144:ef7eb2e8f9f7 217 #endif
<> 144:ef7eb2e8f9f7 218
<> 144:ef7eb2e8f9f7 219 #ifndef __MPU_PRESENT
<> 144:ef7eb2e8f9f7 220 #define __MPU_PRESENT 0
<> 144:ef7eb2e8f9f7 221 #warning "__MPU_PRESENT not defined in device header file; using default!"
<> 144:ef7eb2e8f9f7 222 #endif
<> 144:ef7eb2e8f9f7 223
<> 144:ef7eb2e8f9f7 224 #ifndef __NVIC_PRIO_BITS
<> 144:ef7eb2e8f9f7 225 #define __NVIC_PRIO_BITS 4
<> 144:ef7eb2e8f9f7 226 #warning "__NVIC_PRIO_BITS not defined in device header file; using default!"
<> 144:ef7eb2e8f9f7 227 #endif
<> 144:ef7eb2e8f9f7 228
<> 144:ef7eb2e8f9f7 229 #ifndef __Vendor_SysTickConfig
<> 144:ef7eb2e8f9f7 230 #define __Vendor_SysTickConfig 0
<> 144:ef7eb2e8f9f7 231 #warning "__Vendor_SysTickConfig not defined in device header file; using default!"
<> 144:ef7eb2e8f9f7 232 #endif
<> 144:ef7eb2e8f9f7 233 #endif
<> 144:ef7eb2e8f9f7 234
<> 144:ef7eb2e8f9f7 235 /* IO definitions (access restrictions to peripheral registers) */
<> 144:ef7eb2e8f9f7 236 /**
<> 144:ef7eb2e8f9f7 237 \defgroup CMSIS_glob_defs CMSIS Global Defines
<> 144:ef7eb2e8f9f7 238
<> 144:ef7eb2e8f9f7 239 <strong>IO Type Qualifiers</strong> are used
<> 144:ef7eb2e8f9f7 240 \li to specify the access to peripheral variables.
<> 144:ef7eb2e8f9f7 241 \li for automatic generation of peripheral register debug information.
<> 144:ef7eb2e8f9f7 242 */
<> 144:ef7eb2e8f9f7 243 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 244 #define __I volatile /*!< Defines 'read only' permissions */
<> 144:ef7eb2e8f9f7 245 #else
<> 144:ef7eb2e8f9f7 246 #define __I volatile const /*!< Defines 'read only' permissions */
<> 144:ef7eb2e8f9f7 247 #endif
<> 144:ef7eb2e8f9f7 248 #define __O volatile /*!< Defines 'write only' permissions */
<> 144:ef7eb2e8f9f7 249 #define __IO volatile /*!< Defines 'read / write' permissions */
<> 144:ef7eb2e8f9f7 250
<> 144:ef7eb2e8f9f7 251 /*@} end of group Cortex_M4 */
<> 144:ef7eb2e8f9f7 252
<> 144:ef7eb2e8f9f7 253
<> 144:ef7eb2e8f9f7 254
<> 144:ef7eb2e8f9f7 255 /*******************************************************************************
<> 144:ef7eb2e8f9f7 256 * Register Abstraction
<> 144:ef7eb2e8f9f7 257 Core Register contain:
<> 144:ef7eb2e8f9f7 258 - Core Register
<> 144:ef7eb2e8f9f7 259 - Core NVIC Register
<> 144:ef7eb2e8f9f7 260 - Core SCB Register
<> 144:ef7eb2e8f9f7 261 - Core SysTick Register
<> 144:ef7eb2e8f9f7 262 - Core Debug Register
<> 144:ef7eb2e8f9f7 263 - Core MPU Register
<> 144:ef7eb2e8f9f7 264 - Core FPU Register
<> 144:ef7eb2e8f9f7 265 ******************************************************************************/
<> 144:ef7eb2e8f9f7 266 /** \defgroup CMSIS_core_register Defines and Type Definitions
<> 144:ef7eb2e8f9f7 267 \brief Type definitions and defines for Cortex-M processor based devices.
<> 144:ef7eb2e8f9f7 268 */
<> 144:ef7eb2e8f9f7 269
<> 144:ef7eb2e8f9f7 270 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 271 \defgroup CMSIS_CORE Status and Control Registers
<> 144:ef7eb2e8f9f7 272 \brief Core Register type definitions.
<> 144:ef7eb2e8f9f7 273 @{
<> 144:ef7eb2e8f9f7 274 */
<> 144:ef7eb2e8f9f7 275
<> 144:ef7eb2e8f9f7 276 /** \brief Union type to access the Application Program Status Register (APSR).
<> 144:ef7eb2e8f9f7 277 */
<> 144:ef7eb2e8f9f7 278 typedef union
<> 144:ef7eb2e8f9f7 279 {
<> 144:ef7eb2e8f9f7 280 struct
<> 144:ef7eb2e8f9f7 281 {
<> 144:ef7eb2e8f9f7 282 uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */
<> 144:ef7eb2e8f9f7 283 uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */
<> 144:ef7eb2e8f9f7 284 uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */
<> 144:ef7eb2e8f9f7 285 uint32_t Q:1; /*!< bit: 27 Saturation condition flag */
<> 144:ef7eb2e8f9f7 286 uint32_t V:1; /*!< bit: 28 Overflow condition code flag */
<> 144:ef7eb2e8f9f7 287 uint32_t C:1; /*!< bit: 29 Carry condition code flag */
<> 144:ef7eb2e8f9f7 288 uint32_t Z:1; /*!< bit: 30 Zero condition code flag */
<> 144:ef7eb2e8f9f7 289 uint32_t N:1; /*!< bit: 31 Negative condition code flag */
<> 144:ef7eb2e8f9f7 290 } b; /*!< Structure used for bit access */
<> 144:ef7eb2e8f9f7 291 uint32_t w; /*!< Type used for word access */
<> 144:ef7eb2e8f9f7 292 } APSR_Type;
<> 144:ef7eb2e8f9f7 293
<> 144:ef7eb2e8f9f7 294 /* APSR Register Definitions */
<> 144:ef7eb2e8f9f7 295 #define APSR_N_Pos 31 /*!< APSR: N Position */
<> 144:ef7eb2e8f9f7 296 #define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */
<> 144:ef7eb2e8f9f7 297
<> 144:ef7eb2e8f9f7 298 #define APSR_Z_Pos 30 /*!< APSR: Z Position */
<> 144:ef7eb2e8f9f7 299 #define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */
<> 144:ef7eb2e8f9f7 300
<> 144:ef7eb2e8f9f7 301 #define APSR_C_Pos 29 /*!< APSR: C Position */
<> 144:ef7eb2e8f9f7 302 #define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */
<> 144:ef7eb2e8f9f7 303
<> 144:ef7eb2e8f9f7 304 #define APSR_V_Pos 28 /*!< APSR: V Position */
<> 144:ef7eb2e8f9f7 305 #define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */
<> 144:ef7eb2e8f9f7 306
<> 144:ef7eb2e8f9f7 307 #define APSR_Q_Pos 27 /*!< APSR: Q Position */
<> 144:ef7eb2e8f9f7 308 #define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */
<> 144:ef7eb2e8f9f7 309
<> 144:ef7eb2e8f9f7 310 #define APSR_GE_Pos 16 /*!< APSR: GE Position */
<> 144:ef7eb2e8f9f7 311 #define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */
<> 144:ef7eb2e8f9f7 312
<> 144:ef7eb2e8f9f7 313
<> 144:ef7eb2e8f9f7 314 /** \brief Union type to access the Interrupt Program Status Register (IPSR).
<> 144:ef7eb2e8f9f7 315 */
<> 144:ef7eb2e8f9f7 316 typedef union
<> 144:ef7eb2e8f9f7 317 {
<> 144:ef7eb2e8f9f7 318 struct
<> 144:ef7eb2e8f9f7 319 {
<> 144:ef7eb2e8f9f7 320 uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */
<> 144:ef7eb2e8f9f7 321 uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */
<> 144:ef7eb2e8f9f7 322 } b; /*!< Structure used for bit access */
<> 144:ef7eb2e8f9f7 323 uint32_t w; /*!< Type used for word access */
<> 144:ef7eb2e8f9f7 324 } IPSR_Type;
<> 144:ef7eb2e8f9f7 325
<> 144:ef7eb2e8f9f7 326 /* IPSR Register Definitions */
<> 144:ef7eb2e8f9f7 327 #define IPSR_ISR_Pos 0 /*!< IPSR: ISR Position */
<> 144:ef7eb2e8f9f7 328 #define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */
<> 144:ef7eb2e8f9f7 329
<> 144:ef7eb2e8f9f7 330
<> 144:ef7eb2e8f9f7 331 /** \brief Union type to access the Special-Purpose Program Status Registers (xPSR).
<> 144:ef7eb2e8f9f7 332 */
<> 144:ef7eb2e8f9f7 333 typedef union
<> 144:ef7eb2e8f9f7 334 {
<> 144:ef7eb2e8f9f7 335 struct
<> 144:ef7eb2e8f9f7 336 {
<> 144:ef7eb2e8f9f7 337 uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */
<> 144:ef7eb2e8f9f7 338 uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */
<> 144:ef7eb2e8f9f7 339 uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */
<> 144:ef7eb2e8f9f7 340 uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */
<> 144:ef7eb2e8f9f7 341 uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */
<> 144:ef7eb2e8f9f7 342 uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */
<> 144:ef7eb2e8f9f7 343 uint32_t Q:1; /*!< bit: 27 Saturation condition flag */
<> 144:ef7eb2e8f9f7 344 uint32_t V:1; /*!< bit: 28 Overflow condition code flag */
<> 144:ef7eb2e8f9f7 345 uint32_t C:1; /*!< bit: 29 Carry condition code flag */
<> 144:ef7eb2e8f9f7 346 uint32_t Z:1; /*!< bit: 30 Zero condition code flag */
<> 144:ef7eb2e8f9f7 347 uint32_t N:1; /*!< bit: 31 Negative condition code flag */
<> 144:ef7eb2e8f9f7 348 } b; /*!< Structure used for bit access */
<> 144:ef7eb2e8f9f7 349 uint32_t w; /*!< Type used for word access */
<> 144:ef7eb2e8f9f7 350 } xPSR_Type;
<> 144:ef7eb2e8f9f7 351
<> 144:ef7eb2e8f9f7 352 /* xPSR Register Definitions */
<> 144:ef7eb2e8f9f7 353 #define xPSR_N_Pos 31 /*!< xPSR: N Position */
<> 144:ef7eb2e8f9f7 354 #define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */
<> 144:ef7eb2e8f9f7 355
<> 144:ef7eb2e8f9f7 356 #define xPSR_Z_Pos 30 /*!< xPSR: Z Position */
<> 144:ef7eb2e8f9f7 357 #define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */
<> 144:ef7eb2e8f9f7 358
<> 144:ef7eb2e8f9f7 359 #define xPSR_C_Pos 29 /*!< xPSR: C Position */
<> 144:ef7eb2e8f9f7 360 #define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */
<> 144:ef7eb2e8f9f7 361
<> 144:ef7eb2e8f9f7 362 #define xPSR_V_Pos 28 /*!< xPSR: V Position */
<> 144:ef7eb2e8f9f7 363 #define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */
<> 144:ef7eb2e8f9f7 364
<> 144:ef7eb2e8f9f7 365 #define xPSR_Q_Pos 27 /*!< xPSR: Q Position */
<> 144:ef7eb2e8f9f7 366 #define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */
<> 144:ef7eb2e8f9f7 367
<> 144:ef7eb2e8f9f7 368 #define xPSR_IT_Pos 25 /*!< xPSR: IT Position */
<> 144:ef7eb2e8f9f7 369 #define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */
<> 144:ef7eb2e8f9f7 370
<> 144:ef7eb2e8f9f7 371 #define xPSR_T_Pos 24 /*!< xPSR: T Position */
<> 144:ef7eb2e8f9f7 372 #define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */
<> 144:ef7eb2e8f9f7 373
<> 144:ef7eb2e8f9f7 374 #define xPSR_GE_Pos 16 /*!< xPSR: GE Position */
<> 144:ef7eb2e8f9f7 375 #define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */
<> 144:ef7eb2e8f9f7 376
<> 144:ef7eb2e8f9f7 377 #define xPSR_ISR_Pos 0 /*!< xPSR: ISR Position */
<> 144:ef7eb2e8f9f7 378 #define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */
<> 144:ef7eb2e8f9f7 379
<> 144:ef7eb2e8f9f7 380
<> 144:ef7eb2e8f9f7 381 /** \brief Union type to access the Control Registers (CONTROL).
<> 144:ef7eb2e8f9f7 382 */
<> 144:ef7eb2e8f9f7 383 typedef union
<> 144:ef7eb2e8f9f7 384 {
<> 144:ef7eb2e8f9f7 385 struct
<> 144:ef7eb2e8f9f7 386 {
<> 144:ef7eb2e8f9f7 387 uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */
<> 144:ef7eb2e8f9f7 388 uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */
<> 144:ef7eb2e8f9f7 389 uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */
<> 144:ef7eb2e8f9f7 390 uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */
<> 144:ef7eb2e8f9f7 391 } b; /*!< Structure used for bit access */
<> 144:ef7eb2e8f9f7 392 uint32_t w; /*!< Type used for word access */
<> 144:ef7eb2e8f9f7 393 } CONTROL_Type;
<> 144:ef7eb2e8f9f7 394
<> 144:ef7eb2e8f9f7 395 /* CONTROL Register Definitions */
<> 144:ef7eb2e8f9f7 396 #define CONTROL_FPCA_Pos 2 /*!< CONTROL: FPCA Position */
<> 144:ef7eb2e8f9f7 397 #define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */
<> 144:ef7eb2e8f9f7 398
<> 144:ef7eb2e8f9f7 399 #define CONTROL_SPSEL_Pos 1 /*!< CONTROL: SPSEL Position */
<> 144:ef7eb2e8f9f7 400 #define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */
<> 144:ef7eb2e8f9f7 401
<> 144:ef7eb2e8f9f7 402 #define CONTROL_nPRIV_Pos 0 /*!< CONTROL: nPRIV Position */
<> 144:ef7eb2e8f9f7 403 #define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */
<> 144:ef7eb2e8f9f7 404
<> 144:ef7eb2e8f9f7 405 /*@} end of group CMSIS_CORE */
<> 144:ef7eb2e8f9f7 406
<> 144:ef7eb2e8f9f7 407
<> 144:ef7eb2e8f9f7 408 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 409 \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC)
<> 144:ef7eb2e8f9f7 410 \brief Type definitions for the NVIC Registers
<> 144:ef7eb2e8f9f7 411 @{
<> 144:ef7eb2e8f9f7 412 */
<> 144:ef7eb2e8f9f7 413
<> 144:ef7eb2e8f9f7 414 /** \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC).
<> 144:ef7eb2e8f9f7 415 */
<> 144:ef7eb2e8f9f7 416 typedef struct
<> 144:ef7eb2e8f9f7 417 {
<> 144:ef7eb2e8f9f7 418 __IO uint32_t ISER[8]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */
<> 144:ef7eb2e8f9f7 419 uint32_t RESERVED0[24];
<> 144:ef7eb2e8f9f7 420 __IO uint32_t ICER[8]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */
<> 144:ef7eb2e8f9f7 421 uint32_t RSERVED1[24];
<> 144:ef7eb2e8f9f7 422 __IO uint32_t ISPR[8]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */
<> 144:ef7eb2e8f9f7 423 uint32_t RESERVED2[24];
<> 144:ef7eb2e8f9f7 424 __IO uint32_t ICPR[8]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */
<> 144:ef7eb2e8f9f7 425 uint32_t RESERVED3[24];
<> 144:ef7eb2e8f9f7 426 __IO uint32_t IABR[8]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */
<> 144:ef7eb2e8f9f7 427 uint32_t RESERVED4[56];
<> 144:ef7eb2e8f9f7 428 __IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */
<> 144:ef7eb2e8f9f7 429 uint32_t RESERVED5[644];
<> 144:ef7eb2e8f9f7 430 __O uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */
<> 144:ef7eb2e8f9f7 431 } NVIC_Type;
<> 144:ef7eb2e8f9f7 432
<> 144:ef7eb2e8f9f7 433 /* Software Triggered Interrupt Register Definitions */
<> 144:ef7eb2e8f9f7 434 #define NVIC_STIR_INTID_Pos 0 /*!< STIR: INTLINESNUM Position */
<> 144:ef7eb2e8f9f7 435 #define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */
<> 144:ef7eb2e8f9f7 436
<> 144:ef7eb2e8f9f7 437 /*@} end of group CMSIS_NVIC */
<> 144:ef7eb2e8f9f7 438
<> 144:ef7eb2e8f9f7 439
<> 144:ef7eb2e8f9f7 440 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 441 \defgroup CMSIS_SCB System Control Block (SCB)
<> 144:ef7eb2e8f9f7 442 \brief Type definitions for the System Control Block Registers
<> 144:ef7eb2e8f9f7 443 @{
<> 144:ef7eb2e8f9f7 444 */
<> 144:ef7eb2e8f9f7 445
<> 144:ef7eb2e8f9f7 446 /** \brief Structure type to access the System Control Block (SCB).
<> 144:ef7eb2e8f9f7 447 */
<> 144:ef7eb2e8f9f7 448 typedef struct
<> 144:ef7eb2e8f9f7 449 {
<> 144:ef7eb2e8f9f7 450 __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */
<> 144:ef7eb2e8f9f7 451 __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */
<> 144:ef7eb2e8f9f7 452 __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */
<> 144:ef7eb2e8f9f7 453 __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */
<> 144:ef7eb2e8f9f7 454 __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */
<> 144:ef7eb2e8f9f7 455 __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */
<> 144:ef7eb2e8f9f7 456 __IO uint8_t SHP[12]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */
<> 144:ef7eb2e8f9f7 457 __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */
<> 144:ef7eb2e8f9f7 458 __IO uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */
<> 144:ef7eb2e8f9f7 459 __IO uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */
<> 144:ef7eb2e8f9f7 460 __IO uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */
<> 144:ef7eb2e8f9f7 461 __IO uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */
<> 144:ef7eb2e8f9f7 462 __IO uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */
<> 144:ef7eb2e8f9f7 463 __IO uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */
<> 144:ef7eb2e8f9f7 464 __I uint32_t PFR[2]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */
<> 144:ef7eb2e8f9f7 465 __I uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */
<> 144:ef7eb2e8f9f7 466 __I uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */
<> 144:ef7eb2e8f9f7 467 __I uint32_t MMFR[4]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */
<> 144:ef7eb2e8f9f7 468 __I uint32_t ISAR[5]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */
<> 144:ef7eb2e8f9f7 469 uint32_t RESERVED0[5];
<> 144:ef7eb2e8f9f7 470 __IO uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */
<> 144:ef7eb2e8f9f7 471 } SCB_Type;
<> 144:ef7eb2e8f9f7 472
<> 144:ef7eb2e8f9f7 473 /* SCB CPUID Register Definitions */
<> 144:ef7eb2e8f9f7 474 #define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */
<> 144:ef7eb2e8f9f7 475 #define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */
<> 144:ef7eb2e8f9f7 476
<> 144:ef7eb2e8f9f7 477 #define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */
<> 144:ef7eb2e8f9f7 478 #define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */
<> 144:ef7eb2e8f9f7 479
<> 144:ef7eb2e8f9f7 480 #define SCB_CPUID_ARCHITECTURE_Pos 16 /*!< SCB CPUID: ARCHITECTURE Position */
<> 144:ef7eb2e8f9f7 481 #define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */
<> 144:ef7eb2e8f9f7 482
<> 144:ef7eb2e8f9f7 483 #define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */
<> 144:ef7eb2e8f9f7 484 #define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */
<> 144:ef7eb2e8f9f7 485
<> 144:ef7eb2e8f9f7 486 #define SCB_CPUID_REVISION_Pos 0 /*!< SCB CPUID: REVISION Position */
<> 144:ef7eb2e8f9f7 487 #define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */
<> 144:ef7eb2e8f9f7 488
<> 144:ef7eb2e8f9f7 489 /* SCB Interrupt Control State Register Definitions */
<> 144:ef7eb2e8f9f7 490 #define SCB_ICSR_NMIPENDSET_Pos 31 /*!< SCB ICSR: NMIPENDSET Position */
<> 144:ef7eb2e8f9f7 491 #define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */
<> 144:ef7eb2e8f9f7 492
<> 144:ef7eb2e8f9f7 493 #define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */
<> 144:ef7eb2e8f9f7 494 #define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */
<> 144:ef7eb2e8f9f7 495
<> 144:ef7eb2e8f9f7 496 #define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */
<> 144:ef7eb2e8f9f7 497 #define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */
<> 144:ef7eb2e8f9f7 498
<> 144:ef7eb2e8f9f7 499 #define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */
<> 144:ef7eb2e8f9f7 500 #define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */
<> 144:ef7eb2e8f9f7 501
<> 144:ef7eb2e8f9f7 502 #define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */
<> 144:ef7eb2e8f9f7 503 #define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */
<> 144:ef7eb2e8f9f7 504
<> 144:ef7eb2e8f9f7 505 #define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */
<> 144:ef7eb2e8f9f7 506 #define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */
<> 144:ef7eb2e8f9f7 507
<> 144:ef7eb2e8f9f7 508 #define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */
<> 144:ef7eb2e8f9f7 509 #define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */
<> 144:ef7eb2e8f9f7 510
<> 144:ef7eb2e8f9f7 511 #define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */
<> 144:ef7eb2e8f9f7 512 #define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */
<> 144:ef7eb2e8f9f7 513
<> 144:ef7eb2e8f9f7 514 #define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */
<> 144:ef7eb2e8f9f7 515 #define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */
<> 144:ef7eb2e8f9f7 516
<> 144:ef7eb2e8f9f7 517 #define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */
<> 144:ef7eb2e8f9f7 518 #define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */
<> 144:ef7eb2e8f9f7 519
<> 144:ef7eb2e8f9f7 520 /* SCB Vector Table Offset Register Definitions */
<> 144:ef7eb2e8f9f7 521 #define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */
<> 144:ef7eb2e8f9f7 522 #define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */
<> 144:ef7eb2e8f9f7 523
<> 144:ef7eb2e8f9f7 524 /* SCB Application Interrupt and Reset Control Register Definitions */
<> 144:ef7eb2e8f9f7 525 #define SCB_AIRCR_VECTKEY_Pos 16 /*!< SCB AIRCR: VECTKEY Position */
<> 144:ef7eb2e8f9f7 526 #define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */
<> 144:ef7eb2e8f9f7 527
<> 144:ef7eb2e8f9f7 528 #define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */
<> 144:ef7eb2e8f9f7 529 #define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */
<> 144:ef7eb2e8f9f7 530
<> 144:ef7eb2e8f9f7 531 #define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */
<> 144:ef7eb2e8f9f7 532 #define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */
<> 144:ef7eb2e8f9f7 533
<> 144:ef7eb2e8f9f7 534 #define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */
<> 144:ef7eb2e8f9f7 535 #define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */
<> 144:ef7eb2e8f9f7 536
<> 144:ef7eb2e8f9f7 537 #define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */
<> 144:ef7eb2e8f9f7 538 #define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */
<> 144:ef7eb2e8f9f7 539
<> 144:ef7eb2e8f9f7 540 #define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */
<> 144:ef7eb2e8f9f7 541 #define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */
<> 144:ef7eb2e8f9f7 542
<> 144:ef7eb2e8f9f7 543 #define SCB_AIRCR_VECTRESET_Pos 0 /*!< SCB AIRCR: VECTRESET Position */
<> 144:ef7eb2e8f9f7 544 #define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */
<> 144:ef7eb2e8f9f7 545
<> 144:ef7eb2e8f9f7 546 /* SCB System Control Register Definitions */
<> 144:ef7eb2e8f9f7 547 #define SCB_SCR_SEVONPEND_Pos 4 /*!< SCB SCR: SEVONPEND Position */
<> 144:ef7eb2e8f9f7 548 #define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */
<> 144:ef7eb2e8f9f7 549
<> 144:ef7eb2e8f9f7 550 #define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */
<> 144:ef7eb2e8f9f7 551 #define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */
<> 144:ef7eb2e8f9f7 552
<> 144:ef7eb2e8f9f7 553 #define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< SCB SCR: SLEEPONEXIT Position */
<> 144:ef7eb2e8f9f7 554 #define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */
<> 144:ef7eb2e8f9f7 555
<> 144:ef7eb2e8f9f7 556 /* SCB Configuration Control Register Definitions */
<> 144:ef7eb2e8f9f7 557 #define SCB_CCR_STKALIGN_Pos 9 /*!< SCB CCR: STKALIGN Position */
<> 144:ef7eb2e8f9f7 558 #define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */
<> 144:ef7eb2e8f9f7 559
<> 144:ef7eb2e8f9f7 560 #define SCB_CCR_BFHFNMIGN_Pos 8 /*!< SCB CCR: BFHFNMIGN Position */
<> 144:ef7eb2e8f9f7 561 #define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */
<> 144:ef7eb2e8f9f7 562
<> 144:ef7eb2e8f9f7 563 #define SCB_CCR_DIV_0_TRP_Pos 4 /*!< SCB CCR: DIV_0_TRP Position */
<> 144:ef7eb2e8f9f7 564 #define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */
<> 144:ef7eb2e8f9f7 565
<> 144:ef7eb2e8f9f7 566 #define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< SCB CCR: UNALIGN_TRP Position */
<> 144:ef7eb2e8f9f7 567 #define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */
<> 144:ef7eb2e8f9f7 568
<> 144:ef7eb2e8f9f7 569 #define SCB_CCR_USERSETMPEND_Pos 1 /*!< SCB CCR: USERSETMPEND Position */
<> 144:ef7eb2e8f9f7 570 #define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */
<> 144:ef7eb2e8f9f7 571
<> 144:ef7eb2e8f9f7 572 #define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< SCB CCR: NONBASETHRDENA Position */
<> 144:ef7eb2e8f9f7 573 #define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */
<> 144:ef7eb2e8f9f7 574
<> 144:ef7eb2e8f9f7 575 /* SCB System Handler Control and State Register Definitions */
<> 144:ef7eb2e8f9f7 576 #define SCB_SHCSR_USGFAULTENA_Pos 18 /*!< SCB SHCSR: USGFAULTENA Position */
<> 144:ef7eb2e8f9f7 577 #define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */
<> 144:ef7eb2e8f9f7 578
<> 144:ef7eb2e8f9f7 579 #define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */
<> 144:ef7eb2e8f9f7 580 #define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */
<> 144:ef7eb2e8f9f7 581
<> 144:ef7eb2e8f9f7 582 #define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */
<> 144:ef7eb2e8f9f7 583 #define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */
<> 144:ef7eb2e8f9f7 584
<> 144:ef7eb2e8f9f7 585 #define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */
<> 144:ef7eb2e8f9f7 586 #define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */
<> 144:ef7eb2e8f9f7 587
<> 144:ef7eb2e8f9f7 588 #define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */
<> 144:ef7eb2e8f9f7 589 #define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */
<> 144:ef7eb2e8f9f7 590
<> 144:ef7eb2e8f9f7 591 #define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */
<> 144:ef7eb2e8f9f7 592 #define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */
<> 144:ef7eb2e8f9f7 593
<> 144:ef7eb2e8f9f7 594 #define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */
<> 144:ef7eb2e8f9f7 595 #define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */
<> 144:ef7eb2e8f9f7 596
<> 144:ef7eb2e8f9f7 597 #define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */
<> 144:ef7eb2e8f9f7 598 #define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */
<> 144:ef7eb2e8f9f7 599
<> 144:ef7eb2e8f9f7 600 #define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */
<> 144:ef7eb2e8f9f7 601 #define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */
<> 144:ef7eb2e8f9f7 602
<> 144:ef7eb2e8f9f7 603 #define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */
<> 144:ef7eb2e8f9f7 604 #define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */
<> 144:ef7eb2e8f9f7 605
<> 144:ef7eb2e8f9f7 606 #define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */
<> 144:ef7eb2e8f9f7 607 #define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */
<> 144:ef7eb2e8f9f7 608
<> 144:ef7eb2e8f9f7 609 #define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */
<> 144:ef7eb2e8f9f7 610 #define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */
<> 144:ef7eb2e8f9f7 611
<> 144:ef7eb2e8f9f7 612 #define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */
<> 144:ef7eb2e8f9f7 613 #define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */
<> 144:ef7eb2e8f9f7 614
<> 144:ef7eb2e8f9f7 615 #define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */
<> 144:ef7eb2e8f9f7 616 #define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */
<> 144:ef7eb2e8f9f7 617
<> 144:ef7eb2e8f9f7 618 /* SCB Configurable Fault Status Registers Definitions */
<> 144:ef7eb2e8f9f7 619 #define SCB_CFSR_USGFAULTSR_Pos 16 /*!< SCB CFSR: Usage Fault Status Register Position */
<> 144:ef7eb2e8f9f7 620 #define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */
<> 144:ef7eb2e8f9f7 621
<> 144:ef7eb2e8f9f7 622 #define SCB_CFSR_BUSFAULTSR_Pos 8 /*!< SCB CFSR: Bus Fault Status Register Position */
<> 144:ef7eb2e8f9f7 623 #define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */
<> 144:ef7eb2e8f9f7 624
<> 144:ef7eb2e8f9f7 625 #define SCB_CFSR_MEMFAULTSR_Pos 0 /*!< SCB CFSR: Memory Manage Fault Status Register Position */
<> 144:ef7eb2e8f9f7 626 #define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */
<> 144:ef7eb2e8f9f7 627
<> 144:ef7eb2e8f9f7 628 /* SCB Hard Fault Status Registers Definitions */
<> 144:ef7eb2e8f9f7 629 #define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */
<> 144:ef7eb2e8f9f7 630 #define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */
<> 144:ef7eb2e8f9f7 631
<> 144:ef7eb2e8f9f7 632 #define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */
<> 144:ef7eb2e8f9f7 633 #define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */
<> 144:ef7eb2e8f9f7 634
<> 144:ef7eb2e8f9f7 635 #define SCB_HFSR_VECTTBL_Pos 1 /*!< SCB HFSR: VECTTBL Position */
<> 144:ef7eb2e8f9f7 636 #define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */
<> 144:ef7eb2e8f9f7 637
<> 144:ef7eb2e8f9f7 638 /* SCB Debug Fault Status Register Definitions */
<> 144:ef7eb2e8f9f7 639 #define SCB_DFSR_EXTERNAL_Pos 4 /*!< SCB DFSR: EXTERNAL Position */
<> 144:ef7eb2e8f9f7 640 #define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */
<> 144:ef7eb2e8f9f7 641
<> 144:ef7eb2e8f9f7 642 #define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */
<> 144:ef7eb2e8f9f7 643 #define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */
<> 144:ef7eb2e8f9f7 644
<> 144:ef7eb2e8f9f7 645 #define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */
<> 144:ef7eb2e8f9f7 646 #define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */
<> 144:ef7eb2e8f9f7 647
<> 144:ef7eb2e8f9f7 648 #define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */
<> 144:ef7eb2e8f9f7 649 #define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */
<> 144:ef7eb2e8f9f7 650
<> 144:ef7eb2e8f9f7 651 #define SCB_DFSR_HALTED_Pos 0 /*!< SCB DFSR: HALTED Position */
<> 144:ef7eb2e8f9f7 652 #define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */
<> 144:ef7eb2e8f9f7 653
<> 144:ef7eb2e8f9f7 654 /*@} end of group CMSIS_SCB */
<> 144:ef7eb2e8f9f7 655
<> 144:ef7eb2e8f9f7 656
<> 144:ef7eb2e8f9f7 657 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 658 \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB)
<> 144:ef7eb2e8f9f7 659 \brief Type definitions for the System Control and ID Register not in the SCB
<> 144:ef7eb2e8f9f7 660 @{
<> 144:ef7eb2e8f9f7 661 */
<> 144:ef7eb2e8f9f7 662
<> 144:ef7eb2e8f9f7 663 /** \brief Structure type to access the System Control and ID Register not in the SCB.
<> 144:ef7eb2e8f9f7 664 */
<> 144:ef7eb2e8f9f7 665 typedef struct
<> 144:ef7eb2e8f9f7 666 {
<> 144:ef7eb2e8f9f7 667 uint32_t RESERVED0[1];
<> 144:ef7eb2e8f9f7 668 __I uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */
<> 144:ef7eb2e8f9f7 669 __IO uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */
<> 144:ef7eb2e8f9f7 670 } SCnSCB_Type;
<> 144:ef7eb2e8f9f7 671
<> 144:ef7eb2e8f9f7 672 /* Interrupt Controller Type Register Definitions */
<> 144:ef7eb2e8f9f7 673 #define SCnSCB_ICTR_INTLINESNUM_Pos 0 /*!< ICTR: INTLINESNUM Position */
<> 144:ef7eb2e8f9f7 674 #define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */
<> 144:ef7eb2e8f9f7 675
<> 144:ef7eb2e8f9f7 676 /* Auxiliary Control Register Definitions */
<> 144:ef7eb2e8f9f7 677 #define SCnSCB_ACTLR_DISOOFP_Pos 9 /*!< ACTLR: DISOOFP Position */
<> 144:ef7eb2e8f9f7 678 #define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */
<> 144:ef7eb2e8f9f7 679
<> 144:ef7eb2e8f9f7 680 #define SCnSCB_ACTLR_DISFPCA_Pos 8 /*!< ACTLR: DISFPCA Position */
<> 144:ef7eb2e8f9f7 681 #define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */
<> 144:ef7eb2e8f9f7 682
<> 144:ef7eb2e8f9f7 683 #define SCnSCB_ACTLR_DISFOLD_Pos 2 /*!< ACTLR: DISFOLD Position */
<> 144:ef7eb2e8f9f7 684 #define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */
<> 144:ef7eb2e8f9f7 685
<> 144:ef7eb2e8f9f7 686 #define SCnSCB_ACTLR_DISDEFWBUF_Pos 1 /*!< ACTLR: DISDEFWBUF Position */
<> 144:ef7eb2e8f9f7 687 #define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */
<> 144:ef7eb2e8f9f7 688
<> 144:ef7eb2e8f9f7 689 #define SCnSCB_ACTLR_DISMCYCINT_Pos 0 /*!< ACTLR: DISMCYCINT Position */
<> 144:ef7eb2e8f9f7 690 #define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */
<> 144:ef7eb2e8f9f7 691
<> 144:ef7eb2e8f9f7 692 /*@} end of group CMSIS_SCnotSCB */
<> 144:ef7eb2e8f9f7 693
<> 144:ef7eb2e8f9f7 694
<> 144:ef7eb2e8f9f7 695 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 696 \defgroup CMSIS_SysTick System Tick Timer (SysTick)
<> 144:ef7eb2e8f9f7 697 \brief Type definitions for the System Timer Registers.
<> 144:ef7eb2e8f9f7 698 @{
<> 144:ef7eb2e8f9f7 699 */
<> 144:ef7eb2e8f9f7 700
<> 144:ef7eb2e8f9f7 701 /** \brief Structure type to access the System Timer (SysTick).
<> 144:ef7eb2e8f9f7 702 */
<> 144:ef7eb2e8f9f7 703 typedef struct
<> 144:ef7eb2e8f9f7 704 {
<> 144:ef7eb2e8f9f7 705 __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */
<> 144:ef7eb2e8f9f7 706 __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */
<> 144:ef7eb2e8f9f7 707 __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */
<> 144:ef7eb2e8f9f7 708 __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */
<> 144:ef7eb2e8f9f7 709 } SysTick_Type;
<> 144:ef7eb2e8f9f7 710
<> 144:ef7eb2e8f9f7 711 /* SysTick Control / Status Register Definitions */
<> 144:ef7eb2e8f9f7 712 #define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */
<> 144:ef7eb2e8f9f7 713 #define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */
<> 144:ef7eb2e8f9f7 714
<> 144:ef7eb2e8f9f7 715 #define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */
<> 144:ef7eb2e8f9f7 716 #define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */
<> 144:ef7eb2e8f9f7 717
<> 144:ef7eb2e8f9f7 718 #define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */
<> 144:ef7eb2e8f9f7 719 #define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */
<> 144:ef7eb2e8f9f7 720
<> 144:ef7eb2e8f9f7 721 #define SysTick_CTRL_ENABLE_Pos 0 /*!< SysTick CTRL: ENABLE Position */
<> 144:ef7eb2e8f9f7 722 #define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */
<> 144:ef7eb2e8f9f7 723
<> 144:ef7eb2e8f9f7 724 /* SysTick Reload Register Definitions */
<> 144:ef7eb2e8f9f7 725 #define SysTick_LOAD_RELOAD_Pos 0 /*!< SysTick LOAD: RELOAD Position */
<> 144:ef7eb2e8f9f7 726 #define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */
<> 144:ef7eb2e8f9f7 727
<> 144:ef7eb2e8f9f7 728 /* SysTick Current Register Definitions */
<> 144:ef7eb2e8f9f7 729 #define SysTick_VAL_CURRENT_Pos 0 /*!< SysTick VAL: CURRENT Position */
<> 144:ef7eb2e8f9f7 730 #define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */
<> 144:ef7eb2e8f9f7 731
<> 144:ef7eb2e8f9f7 732 /* SysTick Calibration Register Definitions */
<> 144:ef7eb2e8f9f7 733 #define SysTick_CALIB_NOREF_Pos 31 /*!< SysTick CALIB: NOREF Position */
<> 144:ef7eb2e8f9f7 734 #define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */
<> 144:ef7eb2e8f9f7 735
<> 144:ef7eb2e8f9f7 736 #define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */
<> 144:ef7eb2e8f9f7 737 #define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */
<> 144:ef7eb2e8f9f7 738
<> 144:ef7eb2e8f9f7 739 #define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */
<> 144:ef7eb2e8f9f7 740 #define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */
<> 144:ef7eb2e8f9f7 741
<> 144:ef7eb2e8f9f7 742 /*@} end of group CMSIS_SysTick */
<> 144:ef7eb2e8f9f7 743
<> 144:ef7eb2e8f9f7 744
<> 144:ef7eb2e8f9f7 745 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 746 \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM)
<> 144:ef7eb2e8f9f7 747 \brief Type definitions for the Instrumentation Trace Macrocell (ITM)
<> 144:ef7eb2e8f9f7 748 @{
<> 144:ef7eb2e8f9f7 749 */
<> 144:ef7eb2e8f9f7 750
<> 144:ef7eb2e8f9f7 751 /** \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM).
<> 144:ef7eb2e8f9f7 752 */
<> 144:ef7eb2e8f9f7 753 typedef struct
<> 144:ef7eb2e8f9f7 754 {
<> 144:ef7eb2e8f9f7 755 __O union
<> 144:ef7eb2e8f9f7 756 {
<> 144:ef7eb2e8f9f7 757 __O uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */
<> 144:ef7eb2e8f9f7 758 __O uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */
<> 144:ef7eb2e8f9f7 759 __O uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */
<> 144:ef7eb2e8f9f7 760 } PORT [32]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */
<> 144:ef7eb2e8f9f7 761 uint32_t RESERVED0[864];
<> 144:ef7eb2e8f9f7 762 __IO uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */
<> 144:ef7eb2e8f9f7 763 uint32_t RESERVED1[15];
<> 144:ef7eb2e8f9f7 764 __IO uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */
<> 144:ef7eb2e8f9f7 765 uint32_t RESERVED2[15];
<> 144:ef7eb2e8f9f7 766 __IO uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */
<> 144:ef7eb2e8f9f7 767 uint32_t RESERVED3[29];
<> 144:ef7eb2e8f9f7 768 __O uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */
<> 144:ef7eb2e8f9f7 769 __I uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */
<> 144:ef7eb2e8f9f7 770 __IO uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */
<> 144:ef7eb2e8f9f7 771 uint32_t RESERVED4[43];
<> 144:ef7eb2e8f9f7 772 __O uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */
<> 144:ef7eb2e8f9f7 773 __I uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */
<> 144:ef7eb2e8f9f7 774 uint32_t RESERVED5[6];
<> 144:ef7eb2e8f9f7 775 __I uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */
<> 144:ef7eb2e8f9f7 776 __I uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */
<> 144:ef7eb2e8f9f7 777 __I uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */
<> 144:ef7eb2e8f9f7 778 __I uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */
<> 144:ef7eb2e8f9f7 779 __I uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */
<> 144:ef7eb2e8f9f7 780 __I uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */
<> 144:ef7eb2e8f9f7 781 __I uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */
<> 144:ef7eb2e8f9f7 782 __I uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */
<> 144:ef7eb2e8f9f7 783 __I uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */
<> 144:ef7eb2e8f9f7 784 __I uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */
<> 144:ef7eb2e8f9f7 785 __I uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */
<> 144:ef7eb2e8f9f7 786 __I uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */
<> 144:ef7eb2e8f9f7 787 } ITM_Type;
<> 144:ef7eb2e8f9f7 788
<> 144:ef7eb2e8f9f7 789 /* ITM Trace Privilege Register Definitions */
<> 144:ef7eb2e8f9f7 790 #define ITM_TPR_PRIVMASK_Pos 0 /*!< ITM TPR: PRIVMASK Position */
<> 144:ef7eb2e8f9f7 791 #define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */
<> 144:ef7eb2e8f9f7 792
<> 144:ef7eb2e8f9f7 793 /* ITM Trace Control Register Definitions */
<> 144:ef7eb2e8f9f7 794 #define ITM_TCR_BUSY_Pos 23 /*!< ITM TCR: BUSY Position */
<> 144:ef7eb2e8f9f7 795 #define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */
<> 144:ef7eb2e8f9f7 796
<> 144:ef7eb2e8f9f7 797 #define ITM_TCR_TraceBusID_Pos 16 /*!< ITM TCR: ATBID Position */
<> 144:ef7eb2e8f9f7 798 #define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */
<> 144:ef7eb2e8f9f7 799
<> 144:ef7eb2e8f9f7 800 #define ITM_TCR_GTSFREQ_Pos 10 /*!< ITM TCR: Global timestamp frequency Position */
<> 144:ef7eb2e8f9f7 801 #define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */
<> 144:ef7eb2e8f9f7 802
<> 144:ef7eb2e8f9f7 803 #define ITM_TCR_TSPrescale_Pos 8 /*!< ITM TCR: TSPrescale Position */
<> 144:ef7eb2e8f9f7 804 #define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */
<> 144:ef7eb2e8f9f7 805
<> 144:ef7eb2e8f9f7 806 #define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */
<> 144:ef7eb2e8f9f7 807 #define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */
<> 144:ef7eb2e8f9f7 808
<> 144:ef7eb2e8f9f7 809 #define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */
<> 144:ef7eb2e8f9f7 810 #define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */
<> 144:ef7eb2e8f9f7 811
<> 144:ef7eb2e8f9f7 812 #define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */
<> 144:ef7eb2e8f9f7 813 #define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */
<> 144:ef7eb2e8f9f7 814
<> 144:ef7eb2e8f9f7 815 #define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */
<> 144:ef7eb2e8f9f7 816 #define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */
<> 144:ef7eb2e8f9f7 817
<> 144:ef7eb2e8f9f7 818 #define ITM_TCR_ITMENA_Pos 0 /*!< ITM TCR: ITM Enable bit Position */
<> 144:ef7eb2e8f9f7 819 #define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */
<> 144:ef7eb2e8f9f7 820
<> 144:ef7eb2e8f9f7 821 /* ITM Integration Write Register Definitions */
<> 144:ef7eb2e8f9f7 822 #define ITM_IWR_ATVALIDM_Pos 0 /*!< ITM IWR: ATVALIDM Position */
<> 144:ef7eb2e8f9f7 823 #define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */
<> 144:ef7eb2e8f9f7 824
<> 144:ef7eb2e8f9f7 825 /* ITM Integration Read Register Definitions */
<> 144:ef7eb2e8f9f7 826 #define ITM_IRR_ATREADYM_Pos 0 /*!< ITM IRR: ATREADYM Position */
<> 144:ef7eb2e8f9f7 827 #define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */
<> 144:ef7eb2e8f9f7 828
<> 144:ef7eb2e8f9f7 829 /* ITM Integration Mode Control Register Definitions */
<> 144:ef7eb2e8f9f7 830 #define ITM_IMCR_INTEGRATION_Pos 0 /*!< ITM IMCR: INTEGRATION Position */
<> 144:ef7eb2e8f9f7 831 #define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */
<> 144:ef7eb2e8f9f7 832
<> 144:ef7eb2e8f9f7 833 /* ITM Lock Status Register Definitions */
<> 144:ef7eb2e8f9f7 834 #define ITM_LSR_ByteAcc_Pos 2 /*!< ITM LSR: ByteAcc Position */
<> 144:ef7eb2e8f9f7 835 #define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */
<> 144:ef7eb2e8f9f7 836
<> 144:ef7eb2e8f9f7 837 #define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */
<> 144:ef7eb2e8f9f7 838 #define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */
<> 144:ef7eb2e8f9f7 839
<> 144:ef7eb2e8f9f7 840 #define ITM_LSR_Present_Pos 0 /*!< ITM LSR: Present Position */
<> 144:ef7eb2e8f9f7 841 #define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */
<> 144:ef7eb2e8f9f7 842
<> 144:ef7eb2e8f9f7 843 /*@}*/ /* end of group CMSIS_ITM */
<> 144:ef7eb2e8f9f7 844
<> 144:ef7eb2e8f9f7 845
<> 144:ef7eb2e8f9f7 846 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 847 \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT)
<> 144:ef7eb2e8f9f7 848 \brief Type definitions for the Data Watchpoint and Trace (DWT)
<> 144:ef7eb2e8f9f7 849 @{
<> 144:ef7eb2e8f9f7 850 */
<> 144:ef7eb2e8f9f7 851
<> 144:ef7eb2e8f9f7 852 /** \brief Structure type to access the Data Watchpoint and Trace Register (DWT).
<> 144:ef7eb2e8f9f7 853 */
<> 144:ef7eb2e8f9f7 854 typedef struct
<> 144:ef7eb2e8f9f7 855 {
<> 144:ef7eb2e8f9f7 856 __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
<> 144:ef7eb2e8f9f7 857 __IO uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
<> 144:ef7eb2e8f9f7 858 __IO uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */
<> 144:ef7eb2e8f9f7 859 __IO uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */
<> 144:ef7eb2e8f9f7 860 __IO uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */
<> 144:ef7eb2e8f9f7 861 __IO uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */
<> 144:ef7eb2e8f9f7 862 __IO uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */
<> 144:ef7eb2e8f9f7 863 __I uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */
<> 144:ef7eb2e8f9f7 864 __IO uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */
<> 144:ef7eb2e8f9f7 865 __IO uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */
<> 144:ef7eb2e8f9f7 866 __IO uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */
<> 144:ef7eb2e8f9f7 867 uint32_t RESERVED0[1];
<> 144:ef7eb2e8f9f7 868 __IO uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */
<> 144:ef7eb2e8f9f7 869 __IO uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */
<> 144:ef7eb2e8f9f7 870 __IO uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */
<> 144:ef7eb2e8f9f7 871 uint32_t RESERVED1[1];
<> 144:ef7eb2e8f9f7 872 __IO uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */
<> 144:ef7eb2e8f9f7 873 __IO uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */
<> 144:ef7eb2e8f9f7 874 __IO uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */
<> 144:ef7eb2e8f9f7 875 uint32_t RESERVED2[1];
<> 144:ef7eb2e8f9f7 876 __IO uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */
<> 144:ef7eb2e8f9f7 877 __IO uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */
<> 144:ef7eb2e8f9f7 878 __IO uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */
<> 144:ef7eb2e8f9f7 879 } DWT_Type;
<> 144:ef7eb2e8f9f7 880
<> 144:ef7eb2e8f9f7 881 /* DWT Control Register Definitions */
<> 144:ef7eb2e8f9f7 882 #define DWT_CTRL_NUMCOMP_Pos 28 /*!< DWT CTRL: NUMCOMP Position */
<> 144:ef7eb2e8f9f7 883 #define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */
<> 144:ef7eb2e8f9f7 884
<> 144:ef7eb2e8f9f7 885 #define DWT_CTRL_NOTRCPKT_Pos 27 /*!< DWT CTRL: NOTRCPKT Position */
<> 144:ef7eb2e8f9f7 886 #define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */
<> 144:ef7eb2e8f9f7 887
<> 144:ef7eb2e8f9f7 888 #define DWT_CTRL_NOEXTTRIG_Pos 26 /*!< DWT CTRL: NOEXTTRIG Position */
<> 144:ef7eb2e8f9f7 889 #define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */
<> 144:ef7eb2e8f9f7 890
<> 144:ef7eb2e8f9f7 891 #define DWT_CTRL_NOCYCCNT_Pos 25 /*!< DWT CTRL: NOCYCCNT Position */
<> 144:ef7eb2e8f9f7 892 #define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */
<> 144:ef7eb2e8f9f7 893
<> 144:ef7eb2e8f9f7 894 #define DWT_CTRL_NOPRFCNT_Pos 24 /*!< DWT CTRL: NOPRFCNT Position */
<> 144:ef7eb2e8f9f7 895 #define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */
<> 144:ef7eb2e8f9f7 896
<> 144:ef7eb2e8f9f7 897 #define DWT_CTRL_CYCEVTENA_Pos 22 /*!< DWT CTRL: CYCEVTENA Position */
<> 144:ef7eb2e8f9f7 898 #define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */
<> 144:ef7eb2e8f9f7 899
<> 144:ef7eb2e8f9f7 900 #define DWT_CTRL_FOLDEVTENA_Pos 21 /*!< DWT CTRL: FOLDEVTENA Position */
<> 144:ef7eb2e8f9f7 901 #define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */
<> 144:ef7eb2e8f9f7 902
<> 144:ef7eb2e8f9f7 903 #define DWT_CTRL_LSUEVTENA_Pos 20 /*!< DWT CTRL: LSUEVTENA Position */
<> 144:ef7eb2e8f9f7 904 #define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */
<> 144:ef7eb2e8f9f7 905
<> 144:ef7eb2e8f9f7 906 #define DWT_CTRL_SLEEPEVTENA_Pos 19 /*!< DWT CTRL: SLEEPEVTENA Position */
<> 144:ef7eb2e8f9f7 907 #define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */
<> 144:ef7eb2e8f9f7 908
<> 144:ef7eb2e8f9f7 909 #define DWT_CTRL_EXCEVTENA_Pos 18 /*!< DWT CTRL: EXCEVTENA Position */
<> 144:ef7eb2e8f9f7 910 #define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */
<> 144:ef7eb2e8f9f7 911
<> 144:ef7eb2e8f9f7 912 #define DWT_CTRL_CPIEVTENA_Pos 17 /*!< DWT CTRL: CPIEVTENA Position */
<> 144:ef7eb2e8f9f7 913 #define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */
<> 144:ef7eb2e8f9f7 914
<> 144:ef7eb2e8f9f7 915 #define DWT_CTRL_EXCTRCENA_Pos 16 /*!< DWT CTRL: EXCTRCENA Position */
<> 144:ef7eb2e8f9f7 916 #define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */
<> 144:ef7eb2e8f9f7 917
<> 144:ef7eb2e8f9f7 918 #define DWT_CTRL_PCSAMPLENA_Pos 12 /*!< DWT CTRL: PCSAMPLENA Position */
<> 144:ef7eb2e8f9f7 919 #define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */
<> 144:ef7eb2e8f9f7 920
<> 144:ef7eb2e8f9f7 921 #define DWT_CTRL_SYNCTAP_Pos 10 /*!< DWT CTRL: SYNCTAP Position */
<> 144:ef7eb2e8f9f7 922 #define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */
<> 144:ef7eb2e8f9f7 923
<> 144:ef7eb2e8f9f7 924 #define DWT_CTRL_CYCTAP_Pos 9 /*!< DWT CTRL: CYCTAP Position */
<> 144:ef7eb2e8f9f7 925 #define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */
<> 144:ef7eb2e8f9f7 926
<> 144:ef7eb2e8f9f7 927 #define DWT_CTRL_POSTINIT_Pos 5 /*!< DWT CTRL: POSTINIT Position */
<> 144:ef7eb2e8f9f7 928 #define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */
<> 144:ef7eb2e8f9f7 929
<> 144:ef7eb2e8f9f7 930 #define DWT_CTRL_POSTPRESET_Pos 1 /*!< DWT CTRL: POSTPRESET Position */
<> 144:ef7eb2e8f9f7 931 #define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */
<> 144:ef7eb2e8f9f7 932
<> 144:ef7eb2e8f9f7 933 #define DWT_CTRL_CYCCNTENA_Pos 0 /*!< DWT CTRL: CYCCNTENA Position */
<> 144:ef7eb2e8f9f7 934 #define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */
<> 144:ef7eb2e8f9f7 935
<> 144:ef7eb2e8f9f7 936 /* DWT CPI Count Register Definitions */
<> 144:ef7eb2e8f9f7 937 #define DWT_CPICNT_CPICNT_Pos 0 /*!< DWT CPICNT: CPICNT Position */
<> 144:ef7eb2e8f9f7 938 #define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */
<> 144:ef7eb2e8f9f7 939
<> 144:ef7eb2e8f9f7 940 /* DWT Exception Overhead Count Register Definitions */
<> 144:ef7eb2e8f9f7 941 #define DWT_EXCCNT_EXCCNT_Pos 0 /*!< DWT EXCCNT: EXCCNT Position */
<> 144:ef7eb2e8f9f7 942 #define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */
<> 144:ef7eb2e8f9f7 943
<> 144:ef7eb2e8f9f7 944 /* DWT Sleep Count Register Definitions */
<> 144:ef7eb2e8f9f7 945 #define DWT_SLEEPCNT_SLEEPCNT_Pos 0 /*!< DWT SLEEPCNT: SLEEPCNT Position */
<> 144:ef7eb2e8f9f7 946 #define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */
<> 144:ef7eb2e8f9f7 947
<> 144:ef7eb2e8f9f7 948 /* DWT LSU Count Register Definitions */
<> 144:ef7eb2e8f9f7 949 #define DWT_LSUCNT_LSUCNT_Pos 0 /*!< DWT LSUCNT: LSUCNT Position */
<> 144:ef7eb2e8f9f7 950 #define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */
<> 144:ef7eb2e8f9f7 951
<> 144:ef7eb2e8f9f7 952 /* DWT Folded-instruction Count Register Definitions */
<> 144:ef7eb2e8f9f7 953 #define DWT_FOLDCNT_FOLDCNT_Pos 0 /*!< DWT FOLDCNT: FOLDCNT Position */
<> 144:ef7eb2e8f9f7 954 #define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */
<> 144:ef7eb2e8f9f7 955
<> 144:ef7eb2e8f9f7 956 /* DWT Comparator Mask Register Definitions */
<> 144:ef7eb2e8f9f7 957 #define DWT_MASK_MASK_Pos 0 /*!< DWT MASK: MASK Position */
<> 144:ef7eb2e8f9f7 958 #define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */
<> 144:ef7eb2e8f9f7 959
<> 144:ef7eb2e8f9f7 960 /* DWT Comparator Function Register Definitions */
<> 144:ef7eb2e8f9f7 961 #define DWT_FUNCTION_MATCHED_Pos 24 /*!< DWT FUNCTION: MATCHED Position */
<> 144:ef7eb2e8f9f7 962 #define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */
<> 144:ef7eb2e8f9f7 963
<> 144:ef7eb2e8f9f7 964 #define DWT_FUNCTION_DATAVADDR1_Pos 16 /*!< DWT FUNCTION: DATAVADDR1 Position */
<> 144:ef7eb2e8f9f7 965 #define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */
<> 144:ef7eb2e8f9f7 966
<> 144:ef7eb2e8f9f7 967 #define DWT_FUNCTION_DATAVADDR0_Pos 12 /*!< DWT FUNCTION: DATAVADDR0 Position */
<> 144:ef7eb2e8f9f7 968 #define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */
<> 144:ef7eb2e8f9f7 969
<> 144:ef7eb2e8f9f7 970 #define DWT_FUNCTION_DATAVSIZE_Pos 10 /*!< DWT FUNCTION: DATAVSIZE Position */
<> 144:ef7eb2e8f9f7 971 #define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */
<> 144:ef7eb2e8f9f7 972
<> 144:ef7eb2e8f9f7 973 #define DWT_FUNCTION_LNK1ENA_Pos 9 /*!< DWT FUNCTION: LNK1ENA Position */
<> 144:ef7eb2e8f9f7 974 #define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */
<> 144:ef7eb2e8f9f7 975
<> 144:ef7eb2e8f9f7 976 #define DWT_FUNCTION_DATAVMATCH_Pos 8 /*!< DWT FUNCTION: DATAVMATCH Position */
<> 144:ef7eb2e8f9f7 977 #define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */
<> 144:ef7eb2e8f9f7 978
<> 144:ef7eb2e8f9f7 979 #define DWT_FUNCTION_CYCMATCH_Pos 7 /*!< DWT FUNCTION: CYCMATCH Position */
<> 144:ef7eb2e8f9f7 980 #define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */
<> 144:ef7eb2e8f9f7 981
<> 144:ef7eb2e8f9f7 982 #define DWT_FUNCTION_EMITRANGE_Pos 5 /*!< DWT FUNCTION: EMITRANGE Position */
<> 144:ef7eb2e8f9f7 983 #define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */
<> 144:ef7eb2e8f9f7 984
<> 144:ef7eb2e8f9f7 985 #define DWT_FUNCTION_FUNCTION_Pos 0 /*!< DWT FUNCTION: FUNCTION Position */
<> 144:ef7eb2e8f9f7 986 #define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */
<> 144:ef7eb2e8f9f7 987
<> 144:ef7eb2e8f9f7 988 /*@}*/ /* end of group CMSIS_DWT */
<> 144:ef7eb2e8f9f7 989
<> 144:ef7eb2e8f9f7 990
<> 144:ef7eb2e8f9f7 991 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 992 \defgroup CMSIS_TPI Trace Port Interface (TPI)
<> 144:ef7eb2e8f9f7 993 \brief Type definitions for the Trace Port Interface (TPI)
<> 144:ef7eb2e8f9f7 994 @{
<> 144:ef7eb2e8f9f7 995 */
<> 144:ef7eb2e8f9f7 996
<> 144:ef7eb2e8f9f7 997 /** \brief Structure type to access the Trace Port Interface Register (TPI).
<> 144:ef7eb2e8f9f7 998 */
<> 144:ef7eb2e8f9f7 999 typedef struct
<> 144:ef7eb2e8f9f7 1000 {
<> 144:ef7eb2e8f9f7 1001 __IO uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */
<> 144:ef7eb2e8f9f7 1002 __IO uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */
<> 144:ef7eb2e8f9f7 1003 uint32_t RESERVED0[2];
<> 144:ef7eb2e8f9f7 1004 __IO uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */
<> 144:ef7eb2e8f9f7 1005 uint32_t RESERVED1[55];
<> 144:ef7eb2e8f9f7 1006 __IO uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */
<> 144:ef7eb2e8f9f7 1007 uint32_t RESERVED2[131];
<> 144:ef7eb2e8f9f7 1008 __I uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */
<> 144:ef7eb2e8f9f7 1009 __IO uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */
<> 144:ef7eb2e8f9f7 1010 __I uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */
<> 144:ef7eb2e8f9f7 1011 uint32_t RESERVED3[759];
<> 144:ef7eb2e8f9f7 1012 __I uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */
<> 144:ef7eb2e8f9f7 1013 __I uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */
<> 144:ef7eb2e8f9f7 1014 __I uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */
<> 144:ef7eb2e8f9f7 1015 uint32_t RESERVED4[1];
<> 144:ef7eb2e8f9f7 1016 __I uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */
<> 144:ef7eb2e8f9f7 1017 __I uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */
<> 144:ef7eb2e8f9f7 1018 __IO uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */
<> 144:ef7eb2e8f9f7 1019 uint32_t RESERVED5[39];
<> 144:ef7eb2e8f9f7 1020 __IO uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */
<> 144:ef7eb2e8f9f7 1021 __IO uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */
<> 144:ef7eb2e8f9f7 1022 uint32_t RESERVED7[8];
<> 144:ef7eb2e8f9f7 1023 __I uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */
<> 144:ef7eb2e8f9f7 1024 __I uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */
<> 144:ef7eb2e8f9f7 1025 } TPI_Type;
<> 144:ef7eb2e8f9f7 1026
<> 144:ef7eb2e8f9f7 1027 /* TPI Asynchronous Clock Prescaler Register Definitions */
<> 144:ef7eb2e8f9f7 1028 #define TPI_ACPR_PRESCALER_Pos 0 /*!< TPI ACPR: PRESCALER Position */
<> 144:ef7eb2e8f9f7 1029 #define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */
<> 144:ef7eb2e8f9f7 1030
<> 144:ef7eb2e8f9f7 1031 /* TPI Selected Pin Protocol Register Definitions */
<> 144:ef7eb2e8f9f7 1032 #define TPI_SPPR_TXMODE_Pos 0 /*!< TPI SPPR: TXMODE Position */
<> 144:ef7eb2e8f9f7 1033 #define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */
<> 144:ef7eb2e8f9f7 1034
<> 144:ef7eb2e8f9f7 1035 /* TPI Formatter and Flush Status Register Definitions */
<> 144:ef7eb2e8f9f7 1036 #define TPI_FFSR_FtNonStop_Pos 3 /*!< TPI FFSR: FtNonStop Position */
<> 144:ef7eb2e8f9f7 1037 #define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */
<> 144:ef7eb2e8f9f7 1038
<> 144:ef7eb2e8f9f7 1039 #define TPI_FFSR_TCPresent_Pos 2 /*!< TPI FFSR: TCPresent Position */
<> 144:ef7eb2e8f9f7 1040 #define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */
<> 144:ef7eb2e8f9f7 1041
<> 144:ef7eb2e8f9f7 1042 #define TPI_FFSR_FtStopped_Pos 1 /*!< TPI FFSR: FtStopped Position */
<> 144:ef7eb2e8f9f7 1043 #define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */
<> 144:ef7eb2e8f9f7 1044
<> 144:ef7eb2e8f9f7 1045 #define TPI_FFSR_FlInProg_Pos 0 /*!< TPI FFSR: FlInProg Position */
<> 144:ef7eb2e8f9f7 1046 #define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */
<> 144:ef7eb2e8f9f7 1047
<> 144:ef7eb2e8f9f7 1048 /* TPI Formatter and Flush Control Register Definitions */
<> 144:ef7eb2e8f9f7 1049 #define TPI_FFCR_TrigIn_Pos 8 /*!< TPI FFCR: TrigIn Position */
<> 144:ef7eb2e8f9f7 1050 #define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */
<> 144:ef7eb2e8f9f7 1051
<> 144:ef7eb2e8f9f7 1052 #define TPI_FFCR_EnFCont_Pos 1 /*!< TPI FFCR: EnFCont Position */
<> 144:ef7eb2e8f9f7 1053 #define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */
<> 144:ef7eb2e8f9f7 1054
<> 144:ef7eb2e8f9f7 1055 /* TPI TRIGGER Register Definitions */
<> 144:ef7eb2e8f9f7 1056 #define TPI_TRIGGER_TRIGGER_Pos 0 /*!< TPI TRIGGER: TRIGGER Position */
<> 144:ef7eb2e8f9f7 1057 #define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */
<> 144:ef7eb2e8f9f7 1058
<> 144:ef7eb2e8f9f7 1059 /* TPI Integration ETM Data Register Definitions (FIFO0) */
<> 144:ef7eb2e8f9f7 1060 #define TPI_FIFO0_ITM_ATVALID_Pos 29 /*!< TPI FIFO0: ITM_ATVALID Position */
<> 144:ef7eb2e8f9f7 1061 #define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */
<> 144:ef7eb2e8f9f7 1062
<> 144:ef7eb2e8f9f7 1063 #define TPI_FIFO0_ITM_bytecount_Pos 27 /*!< TPI FIFO0: ITM_bytecount Position */
<> 144:ef7eb2e8f9f7 1064 #define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */
<> 144:ef7eb2e8f9f7 1065
<> 144:ef7eb2e8f9f7 1066 #define TPI_FIFO0_ETM_ATVALID_Pos 26 /*!< TPI FIFO0: ETM_ATVALID Position */
<> 144:ef7eb2e8f9f7 1067 #define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */
<> 144:ef7eb2e8f9f7 1068
<> 144:ef7eb2e8f9f7 1069 #define TPI_FIFO0_ETM_bytecount_Pos 24 /*!< TPI FIFO0: ETM_bytecount Position */
<> 144:ef7eb2e8f9f7 1070 #define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */
<> 144:ef7eb2e8f9f7 1071
<> 144:ef7eb2e8f9f7 1072 #define TPI_FIFO0_ETM2_Pos 16 /*!< TPI FIFO0: ETM2 Position */
<> 144:ef7eb2e8f9f7 1073 #define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */
<> 144:ef7eb2e8f9f7 1074
<> 144:ef7eb2e8f9f7 1075 #define TPI_FIFO0_ETM1_Pos 8 /*!< TPI FIFO0: ETM1 Position */
<> 144:ef7eb2e8f9f7 1076 #define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */
<> 144:ef7eb2e8f9f7 1077
<> 144:ef7eb2e8f9f7 1078 #define TPI_FIFO0_ETM0_Pos 0 /*!< TPI FIFO0: ETM0 Position */
<> 144:ef7eb2e8f9f7 1079 #define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */
<> 144:ef7eb2e8f9f7 1080
<> 144:ef7eb2e8f9f7 1081 /* TPI ITATBCTR2 Register Definitions */
<> 144:ef7eb2e8f9f7 1082 #define TPI_ITATBCTR2_ATREADY_Pos 0 /*!< TPI ITATBCTR2: ATREADY Position */
<> 144:ef7eb2e8f9f7 1083 #define TPI_ITATBCTR2_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY_Pos*/) /*!< TPI ITATBCTR2: ATREADY Mask */
<> 144:ef7eb2e8f9f7 1084
<> 144:ef7eb2e8f9f7 1085 /* TPI Integration ITM Data Register Definitions (FIFO1) */
<> 144:ef7eb2e8f9f7 1086 #define TPI_FIFO1_ITM_ATVALID_Pos 29 /*!< TPI FIFO1: ITM_ATVALID Position */
<> 144:ef7eb2e8f9f7 1087 #define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */
<> 144:ef7eb2e8f9f7 1088
<> 144:ef7eb2e8f9f7 1089 #define TPI_FIFO1_ITM_bytecount_Pos 27 /*!< TPI FIFO1: ITM_bytecount Position */
<> 144:ef7eb2e8f9f7 1090 #define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */
<> 144:ef7eb2e8f9f7 1091
<> 144:ef7eb2e8f9f7 1092 #define TPI_FIFO1_ETM_ATVALID_Pos 26 /*!< TPI FIFO1: ETM_ATVALID Position */
<> 144:ef7eb2e8f9f7 1093 #define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */
<> 144:ef7eb2e8f9f7 1094
<> 144:ef7eb2e8f9f7 1095 #define TPI_FIFO1_ETM_bytecount_Pos 24 /*!< TPI FIFO1: ETM_bytecount Position */
<> 144:ef7eb2e8f9f7 1096 #define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */
<> 144:ef7eb2e8f9f7 1097
<> 144:ef7eb2e8f9f7 1098 #define TPI_FIFO1_ITM2_Pos 16 /*!< TPI FIFO1: ITM2 Position */
<> 144:ef7eb2e8f9f7 1099 #define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */
<> 144:ef7eb2e8f9f7 1100
<> 144:ef7eb2e8f9f7 1101 #define TPI_FIFO1_ITM1_Pos 8 /*!< TPI FIFO1: ITM1 Position */
<> 144:ef7eb2e8f9f7 1102 #define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */
<> 144:ef7eb2e8f9f7 1103
<> 144:ef7eb2e8f9f7 1104 #define TPI_FIFO1_ITM0_Pos 0 /*!< TPI FIFO1: ITM0 Position */
<> 144:ef7eb2e8f9f7 1105 #define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */
<> 144:ef7eb2e8f9f7 1106
<> 144:ef7eb2e8f9f7 1107 /* TPI ITATBCTR0 Register Definitions */
<> 144:ef7eb2e8f9f7 1108 #define TPI_ITATBCTR0_ATREADY_Pos 0 /*!< TPI ITATBCTR0: ATREADY Position */
<> 144:ef7eb2e8f9f7 1109 #define TPI_ITATBCTR0_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY_Pos*/) /*!< TPI ITATBCTR0: ATREADY Mask */
<> 144:ef7eb2e8f9f7 1110
<> 144:ef7eb2e8f9f7 1111 /* TPI Integration Mode Control Register Definitions */
<> 144:ef7eb2e8f9f7 1112 #define TPI_ITCTRL_Mode_Pos 0 /*!< TPI ITCTRL: Mode Position */
<> 144:ef7eb2e8f9f7 1113 #define TPI_ITCTRL_Mode_Msk (0x1UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */
<> 144:ef7eb2e8f9f7 1114
<> 144:ef7eb2e8f9f7 1115 /* TPI DEVID Register Definitions */
<> 144:ef7eb2e8f9f7 1116 #define TPI_DEVID_NRZVALID_Pos 11 /*!< TPI DEVID: NRZVALID Position */
<> 144:ef7eb2e8f9f7 1117 #define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */
<> 144:ef7eb2e8f9f7 1118
<> 144:ef7eb2e8f9f7 1119 #define TPI_DEVID_MANCVALID_Pos 10 /*!< TPI DEVID: MANCVALID Position */
<> 144:ef7eb2e8f9f7 1120 #define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */
<> 144:ef7eb2e8f9f7 1121
<> 144:ef7eb2e8f9f7 1122 #define TPI_DEVID_PTINVALID_Pos 9 /*!< TPI DEVID: PTINVALID Position */
<> 144:ef7eb2e8f9f7 1123 #define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */
<> 144:ef7eb2e8f9f7 1124
<> 144:ef7eb2e8f9f7 1125 #define TPI_DEVID_MinBufSz_Pos 6 /*!< TPI DEVID: MinBufSz Position */
<> 144:ef7eb2e8f9f7 1126 #define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */
<> 144:ef7eb2e8f9f7 1127
<> 144:ef7eb2e8f9f7 1128 #define TPI_DEVID_AsynClkIn_Pos 5 /*!< TPI DEVID: AsynClkIn Position */
<> 144:ef7eb2e8f9f7 1129 #define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */
<> 144:ef7eb2e8f9f7 1130
<> 144:ef7eb2e8f9f7 1131 #define TPI_DEVID_NrTraceInput_Pos 0 /*!< TPI DEVID: NrTraceInput Position */
<> 144:ef7eb2e8f9f7 1132 #define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */
<> 144:ef7eb2e8f9f7 1133
<> 144:ef7eb2e8f9f7 1134 /* TPI DEVTYPE Register Definitions */
<> 144:ef7eb2e8f9f7 1135 #define TPI_DEVTYPE_MajorType_Pos 4 /*!< TPI DEVTYPE: MajorType Position */
<> 144:ef7eb2e8f9f7 1136 #define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */
<> 144:ef7eb2e8f9f7 1137
<> 144:ef7eb2e8f9f7 1138 #define TPI_DEVTYPE_SubType_Pos 0 /*!< TPI DEVTYPE: SubType Position */
<> 144:ef7eb2e8f9f7 1139 #define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */
<> 144:ef7eb2e8f9f7 1140
<> 144:ef7eb2e8f9f7 1141 /*@}*/ /* end of group CMSIS_TPI */
<> 144:ef7eb2e8f9f7 1142
<> 144:ef7eb2e8f9f7 1143
<> 144:ef7eb2e8f9f7 1144 #if (__MPU_PRESENT == 1)
<> 144:ef7eb2e8f9f7 1145 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 1146 \defgroup CMSIS_MPU Memory Protection Unit (MPU)
<> 144:ef7eb2e8f9f7 1147 \brief Type definitions for the Memory Protection Unit (MPU)
<> 144:ef7eb2e8f9f7 1148 @{
<> 144:ef7eb2e8f9f7 1149 */
<> 144:ef7eb2e8f9f7 1150
<> 144:ef7eb2e8f9f7 1151 /** \brief Structure type to access the Memory Protection Unit (MPU).
<> 144:ef7eb2e8f9f7 1152 */
<> 144:ef7eb2e8f9f7 1153 typedef struct
<> 144:ef7eb2e8f9f7 1154 {
<> 144:ef7eb2e8f9f7 1155 __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */
<> 144:ef7eb2e8f9f7 1156 __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */
<> 144:ef7eb2e8f9f7 1157 __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */
<> 144:ef7eb2e8f9f7 1158 __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */
<> 144:ef7eb2e8f9f7 1159 __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */
<> 144:ef7eb2e8f9f7 1160 __IO uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */
<> 144:ef7eb2e8f9f7 1161 __IO uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */
<> 144:ef7eb2e8f9f7 1162 __IO uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */
<> 144:ef7eb2e8f9f7 1163 __IO uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */
<> 144:ef7eb2e8f9f7 1164 __IO uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */
<> 144:ef7eb2e8f9f7 1165 __IO uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */
<> 144:ef7eb2e8f9f7 1166 } MPU_Type;
<> 144:ef7eb2e8f9f7 1167
<> 144:ef7eb2e8f9f7 1168 /* MPU Type Register */
<> 144:ef7eb2e8f9f7 1169 #define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */
<> 144:ef7eb2e8f9f7 1170 #define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */
<> 144:ef7eb2e8f9f7 1171
<> 144:ef7eb2e8f9f7 1172 #define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */
<> 144:ef7eb2e8f9f7 1173 #define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */
<> 144:ef7eb2e8f9f7 1174
<> 144:ef7eb2e8f9f7 1175 #define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */
<> 144:ef7eb2e8f9f7 1176 #define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */
<> 144:ef7eb2e8f9f7 1177
<> 144:ef7eb2e8f9f7 1178 /* MPU Control Register */
<> 144:ef7eb2e8f9f7 1179 #define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */
<> 144:ef7eb2e8f9f7 1180 #define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */
<> 144:ef7eb2e8f9f7 1181
<> 144:ef7eb2e8f9f7 1182 #define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */
<> 144:ef7eb2e8f9f7 1183 #define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */
<> 144:ef7eb2e8f9f7 1184
<> 144:ef7eb2e8f9f7 1185 #define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */
<> 144:ef7eb2e8f9f7 1186 #define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */
<> 144:ef7eb2e8f9f7 1187
<> 144:ef7eb2e8f9f7 1188 /* MPU Region Number Register */
<> 144:ef7eb2e8f9f7 1189 #define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */
<> 144:ef7eb2e8f9f7 1190 #define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */
<> 144:ef7eb2e8f9f7 1191
<> 144:ef7eb2e8f9f7 1192 /* MPU Region Base Address Register */
<> 144:ef7eb2e8f9f7 1193 #define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */
<> 144:ef7eb2e8f9f7 1194 #define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */
<> 144:ef7eb2e8f9f7 1195
<> 144:ef7eb2e8f9f7 1196 #define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */
<> 144:ef7eb2e8f9f7 1197 #define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */
<> 144:ef7eb2e8f9f7 1198
<> 144:ef7eb2e8f9f7 1199 #define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */
<> 144:ef7eb2e8f9f7 1200 #define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */
<> 144:ef7eb2e8f9f7 1201
<> 144:ef7eb2e8f9f7 1202 /* MPU Region Attribute and Size Register */
<> 144:ef7eb2e8f9f7 1203 #define MPU_RASR_ATTRS_Pos 16 /*!< MPU RASR: MPU Region Attribute field Position */
<> 144:ef7eb2e8f9f7 1204 #define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */
<> 144:ef7eb2e8f9f7 1205
<> 144:ef7eb2e8f9f7 1206 #define MPU_RASR_XN_Pos 28 /*!< MPU RASR: ATTRS.XN Position */
<> 144:ef7eb2e8f9f7 1207 #define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */
<> 144:ef7eb2e8f9f7 1208
<> 144:ef7eb2e8f9f7 1209 #define MPU_RASR_AP_Pos 24 /*!< MPU RASR: ATTRS.AP Position */
<> 144:ef7eb2e8f9f7 1210 #define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */
<> 144:ef7eb2e8f9f7 1211
<> 144:ef7eb2e8f9f7 1212 #define MPU_RASR_TEX_Pos 19 /*!< MPU RASR: ATTRS.TEX Position */
<> 144:ef7eb2e8f9f7 1213 #define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */
<> 144:ef7eb2e8f9f7 1214
<> 144:ef7eb2e8f9f7 1215 #define MPU_RASR_S_Pos 18 /*!< MPU RASR: ATTRS.S Position */
<> 144:ef7eb2e8f9f7 1216 #define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */
<> 144:ef7eb2e8f9f7 1217
<> 144:ef7eb2e8f9f7 1218 #define MPU_RASR_C_Pos 17 /*!< MPU RASR: ATTRS.C Position */
<> 144:ef7eb2e8f9f7 1219 #define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */
<> 144:ef7eb2e8f9f7 1220
<> 144:ef7eb2e8f9f7 1221 #define MPU_RASR_B_Pos 16 /*!< MPU RASR: ATTRS.B Position */
<> 144:ef7eb2e8f9f7 1222 #define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */
<> 144:ef7eb2e8f9f7 1223
<> 144:ef7eb2e8f9f7 1224 #define MPU_RASR_SRD_Pos 8 /*!< MPU RASR: Sub-Region Disable Position */
<> 144:ef7eb2e8f9f7 1225 #define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */
<> 144:ef7eb2e8f9f7 1226
<> 144:ef7eb2e8f9f7 1227 #define MPU_RASR_SIZE_Pos 1 /*!< MPU RASR: Region Size Field Position */
<> 144:ef7eb2e8f9f7 1228 #define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */
<> 144:ef7eb2e8f9f7 1229
<> 144:ef7eb2e8f9f7 1230 #define MPU_RASR_ENABLE_Pos 0 /*!< MPU RASR: Region enable bit Position */
<> 144:ef7eb2e8f9f7 1231 #define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */
<> 144:ef7eb2e8f9f7 1232
<> 144:ef7eb2e8f9f7 1233 /*@} end of group CMSIS_MPU */
<> 144:ef7eb2e8f9f7 1234 #endif
<> 144:ef7eb2e8f9f7 1235
<> 144:ef7eb2e8f9f7 1236
<> 144:ef7eb2e8f9f7 1237 #if (__FPU_PRESENT == 1)
<> 144:ef7eb2e8f9f7 1238 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 1239 \defgroup CMSIS_FPU Floating Point Unit (FPU)
<> 144:ef7eb2e8f9f7 1240 \brief Type definitions for the Floating Point Unit (FPU)
<> 144:ef7eb2e8f9f7 1241 @{
<> 144:ef7eb2e8f9f7 1242 */
<> 144:ef7eb2e8f9f7 1243
<> 144:ef7eb2e8f9f7 1244 /** \brief Structure type to access the Floating Point Unit (FPU).
<> 144:ef7eb2e8f9f7 1245 */
<> 144:ef7eb2e8f9f7 1246 typedef struct
<> 144:ef7eb2e8f9f7 1247 {
<> 144:ef7eb2e8f9f7 1248 uint32_t RESERVED0[1];
<> 144:ef7eb2e8f9f7 1249 __IO uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */
<> 144:ef7eb2e8f9f7 1250 __IO uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */
<> 144:ef7eb2e8f9f7 1251 __IO uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */
<> 144:ef7eb2e8f9f7 1252 __I uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */
<> 144:ef7eb2e8f9f7 1253 __I uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */
<> 144:ef7eb2e8f9f7 1254 } FPU_Type;
<> 144:ef7eb2e8f9f7 1255
<> 144:ef7eb2e8f9f7 1256 /* Floating-Point Context Control Register */
<> 144:ef7eb2e8f9f7 1257 #define FPU_FPCCR_ASPEN_Pos 31 /*!< FPCCR: ASPEN bit Position */
<> 144:ef7eb2e8f9f7 1258 #define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */
<> 144:ef7eb2e8f9f7 1259
<> 144:ef7eb2e8f9f7 1260 #define FPU_FPCCR_LSPEN_Pos 30 /*!< FPCCR: LSPEN Position */
<> 144:ef7eb2e8f9f7 1261 #define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */
<> 144:ef7eb2e8f9f7 1262
<> 144:ef7eb2e8f9f7 1263 #define FPU_FPCCR_MONRDY_Pos 8 /*!< FPCCR: MONRDY Position */
<> 144:ef7eb2e8f9f7 1264 #define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */
<> 144:ef7eb2e8f9f7 1265
<> 144:ef7eb2e8f9f7 1266 #define FPU_FPCCR_BFRDY_Pos 6 /*!< FPCCR: BFRDY Position */
<> 144:ef7eb2e8f9f7 1267 #define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */
<> 144:ef7eb2e8f9f7 1268
<> 144:ef7eb2e8f9f7 1269 #define FPU_FPCCR_MMRDY_Pos 5 /*!< FPCCR: MMRDY Position */
<> 144:ef7eb2e8f9f7 1270 #define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */
<> 144:ef7eb2e8f9f7 1271
<> 144:ef7eb2e8f9f7 1272 #define FPU_FPCCR_HFRDY_Pos 4 /*!< FPCCR: HFRDY Position */
<> 144:ef7eb2e8f9f7 1273 #define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */
<> 144:ef7eb2e8f9f7 1274
<> 144:ef7eb2e8f9f7 1275 #define FPU_FPCCR_THREAD_Pos 3 /*!< FPCCR: processor mode bit Position */
<> 144:ef7eb2e8f9f7 1276 #define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */
<> 144:ef7eb2e8f9f7 1277
<> 144:ef7eb2e8f9f7 1278 #define FPU_FPCCR_USER_Pos 1 /*!< FPCCR: privilege level bit Position */
<> 144:ef7eb2e8f9f7 1279 #define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */
<> 144:ef7eb2e8f9f7 1280
<> 144:ef7eb2e8f9f7 1281 #define FPU_FPCCR_LSPACT_Pos 0 /*!< FPCCR: Lazy state preservation active bit Position */
<> 144:ef7eb2e8f9f7 1282 #define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */
<> 144:ef7eb2e8f9f7 1283
<> 144:ef7eb2e8f9f7 1284 /* Floating-Point Context Address Register */
<> 144:ef7eb2e8f9f7 1285 #define FPU_FPCAR_ADDRESS_Pos 3 /*!< FPCAR: ADDRESS bit Position */
<> 144:ef7eb2e8f9f7 1286 #define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */
<> 144:ef7eb2e8f9f7 1287
<> 144:ef7eb2e8f9f7 1288 /* Floating-Point Default Status Control Register */
<> 144:ef7eb2e8f9f7 1289 #define FPU_FPDSCR_AHP_Pos 26 /*!< FPDSCR: AHP bit Position */
<> 144:ef7eb2e8f9f7 1290 #define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */
<> 144:ef7eb2e8f9f7 1291
<> 144:ef7eb2e8f9f7 1292 #define FPU_FPDSCR_DN_Pos 25 /*!< FPDSCR: DN bit Position */
<> 144:ef7eb2e8f9f7 1293 #define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */
<> 144:ef7eb2e8f9f7 1294
<> 144:ef7eb2e8f9f7 1295 #define FPU_FPDSCR_FZ_Pos 24 /*!< FPDSCR: FZ bit Position */
<> 144:ef7eb2e8f9f7 1296 #define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */
<> 144:ef7eb2e8f9f7 1297
<> 144:ef7eb2e8f9f7 1298 #define FPU_FPDSCR_RMode_Pos 22 /*!< FPDSCR: RMode bit Position */
<> 144:ef7eb2e8f9f7 1299 #define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */
<> 144:ef7eb2e8f9f7 1300
<> 144:ef7eb2e8f9f7 1301 /* Media and FP Feature Register 0 */
<> 144:ef7eb2e8f9f7 1302 #define FPU_MVFR0_FP_rounding_modes_Pos 28 /*!< MVFR0: FP rounding modes bits Position */
<> 144:ef7eb2e8f9f7 1303 #define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */
<> 144:ef7eb2e8f9f7 1304
<> 144:ef7eb2e8f9f7 1305 #define FPU_MVFR0_Short_vectors_Pos 24 /*!< MVFR0: Short vectors bits Position */
<> 144:ef7eb2e8f9f7 1306 #define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */
<> 144:ef7eb2e8f9f7 1307
<> 144:ef7eb2e8f9f7 1308 #define FPU_MVFR0_Square_root_Pos 20 /*!< MVFR0: Square root bits Position */
<> 144:ef7eb2e8f9f7 1309 #define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */
<> 144:ef7eb2e8f9f7 1310
<> 144:ef7eb2e8f9f7 1311 #define FPU_MVFR0_Divide_Pos 16 /*!< MVFR0: Divide bits Position */
<> 144:ef7eb2e8f9f7 1312 #define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */
<> 144:ef7eb2e8f9f7 1313
<> 144:ef7eb2e8f9f7 1314 #define FPU_MVFR0_FP_excep_trapping_Pos 12 /*!< MVFR0: FP exception trapping bits Position */
<> 144:ef7eb2e8f9f7 1315 #define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */
<> 144:ef7eb2e8f9f7 1316
<> 144:ef7eb2e8f9f7 1317 #define FPU_MVFR0_Double_precision_Pos 8 /*!< MVFR0: Double-precision bits Position */
<> 144:ef7eb2e8f9f7 1318 #define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */
<> 144:ef7eb2e8f9f7 1319
<> 144:ef7eb2e8f9f7 1320 #define FPU_MVFR0_Single_precision_Pos 4 /*!< MVFR0: Single-precision bits Position */
<> 144:ef7eb2e8f9f7 1321 #define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */
<> 144:ef7eb2e8f9f7 1322
<> 144:ef7eb2e8f9f7 1323 #define FPU_MVFR0_A_SIMD_registers_Pos 0 /*!< MVFR0: A_SIMD registers bits Position */
<> 144:ef7eb2e8f9f7 1324 #define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */
<> 144:ef7eb2e8f9f7 1325
<> 144:ef7eb2e8f9f7 1326 /* Media and FP Feature Register 1 */
<> 144:ef7eb2e8f9f7 1327 #define FPU_MVFR1_FP_fused_MAC_Pos 28 /*!< MVFR1: FP fused MAC bits Position */
<> 144:ef7eb2e8f9f7 1328 #define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */
<> 144:ef7eb2e8f9f7 1329
<> 144:ef7eb2e8f9f7 1330 #define FPU_MVFR1_FP_HPFP_Pos 24 /*!< MVFR1: FP HPFP bits Position */
<> 144:ef7eb2e8f9f7 1331 #define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */
<> 144:ef7eb2e8f9f7 1332
<> 144:ef7eb2e8f9f7 1333 #define FPU_MVFR1_D_NaN_mode_Pos 4 /*!< MVFR1: D_NaN mode bits Position */
<> 144:ef7eb2e8f9f7 1334 #define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */
<> 144:ef7eb2e8f9f7 1335
<> 144:ef7eb2e8f9f7 1336 #define FPU_MVFR1_FtZ_mode_Pos 0 /*!< MVFR1: FtZ mode bits Position */
<> 144:ef7eb2e8f9f7 1337 #define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */
<> 144:ef7eb2e8f9f7 1338
<> 144:ef7eb2e8f9f7 1339 /*@} end of group CMSIS_FPU */
<> 144:ef7eb2e8f9f7 1340 #endif
<> 144:ef7eb2e8f9f7 1341
<> 144:ef7eb2e8f9f7 1342
<> 144:ef7eb2e8f9f7 1343 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 1344 \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug)
<> 144:ef7eb2e8f9f7 1345 \brief Type definitions for the Core Debug Registers
<> 144:ef7eb2e8f9f7 1346 @{
<> 144:ef7eb2e8f9f7 1347 */
<> 144:ef7eb2e8f9f7 1348
<> 144:ef7eb2e8f9f7 1349 /** \brief Structure type to access the Core Debug Register (CoreDebug).
<> 144:ef7eb2e8f9f7 1350 */
<> 144:ef7eb2e8f9f7 1351 typedef struct
<> 144:ef7eb2e8f9f7 1352 {
<> 144:ef7eb2e8f9f7 1353 __IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */
<> 144:ef7eb2e8f9f7 1354 __O uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */
<> 144:ef7eb2e8f9f7 1355 __IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */
<> 144:ef7eb2e8f9f7 1356 __IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */
<> 144:ef7eb2e8f9f7 1357 } CoreDebug_Type;
<> 144:ef7eb2e8f9f7 1358
<> 144:ef7eb2e8f9f7 1359 /* Debug Halting Control and Status Register */
<> 144:ef7eb2e8f9f7 1360 #define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< CoreDebug DHCSR: DBGKEY Position */
<> 144:ef7eb2e8f9f7 1361 #define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */
<> 144:ef7eb2e8f9f7 1362
<> 144:ef7eb2e8f9f7 1363 #define CoreDebug_DHCSR_S_RESET_ST_Pos 25 /*!< CoreDebug DHCSR: S_RESET_ST Position */
<> 144:ef7eb2e8f9f7 1364 #define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */
<> 144:ef7eb2e8f9f7 1365
<> 144:ef7eb2e8f9f7 1366 #define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24 /*!< CoreDebug DHCSR: S_RETIRE_ST Position */
<> 144:ef7eb2e8f9f7 1367 #define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */
<> 144:ef7eb2e8f9f7 1368
<> 144:ef7eb2e8f9f7 1369 #define CoreDebug_DHCSR_S_LOCKUP_Pos 19 /*!< CoreDebug DHCSR: S_LOCKUP Position */
<> 144:ef7eb2e8f9f7 1370 #define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */
<> 144:ef7eb2e8f9f7 1371
<> 144:ef7eb2e8f9f7 1372 #define CoreDebug_DHCSR_S_SLEEP_Pos 18 /*!< CoreDebug DHCSR: S_SLEEP Position */
<> 144:ef7eb2e8f9f7 1373 #define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */
<> 144:ef7eb2e8f9f7 1374
<> 144:ef7eb2e8f9f7 1375 #define CoreDebug_DHCSR_S_HALT_Pos 17 /*!< CoreDebug DHCSR: S_HALT Position */
<> 144:ef7eb2e8f9f7 1376 #define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */
<> 144:ef7eb2e8f9f7 1377
<> 144:ef7eb2e8f9f7 1378 #define CoreDebug_DHCSR_S_REGRDY_Pos 16 /*!< CoreDebug DHCSR: S_REGRDY Position */
<> 144:ef7eb2e8f9f7 1379 #define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */
<> 144:ef7eb2e8f9f7 1380
<> 144:ef7eb2e8f9f7 1381 #define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5 /*!< CoreDebug DHCSR: C_SNAPSTALL Position */
<> 144:ef7eb2e8f9f7 1382 #define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */
<> 144:ef7eb2e8f9f7 1383
<> 144:ef7eb2e8f9f7 1384 #define CoreDebug_DHCSR_C_MASKINTS_Pos 3 /*!< CoreDebug DHCSR: C_MASKINTS Position */
<> 144:ef7eb2e8f9f7 1385 #define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */
<> 144:ef7eb2e8f9f7 1386
<> 144:ef7eb2e8f9f7 1387 #define CoreDebug_DHCSR_C_STEP_Pos 2 /*!< CoreDebug DHCSR: C_STEP Position */
<> 144:ef7eb2e8f9f7 1388 #define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */
<> 144:ef7eb2e8f9f7 1389
<> 144:ef7eb2e8f9f7 1390 #define CoreDebug_DHCSR_C_HALT_Pos 1 /*!< CoreDebug DHCSR: C_HALT Position */
<> 144:ef7eb2e8f9f7 1391 #define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */
<> 144:ef7eb2e8f9f7 1392
<> 144:ef7eb2e8f9f7 1393 #define CoreDebug_DHCSR_C_DEBUGEN_Pos 0 /*!< CoreDebug DHCSR: C_DEBUGEN Position */
<> 144:ef7eb2e8f9f7 1394 #define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */
<> 144:ef7eb2e8f9f7 1395
<> 144:ef7eb2e8f9f7 1396 /* Debug Core Register Selector Register */
<> 144:ef7eb2e8f9f7 1397 #define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */
<> 144:ef7eb2e8f9f7 1398 #define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */
<> 144:ef7eb2e8f9f7 1399
<> 144:ef7eb2e8f9f7 1400 #define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< CoreDebug DCRSR: REGSEL Position */
<> 144:ef7eb2e8f9f7 1401 #define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */
<> 144:ef7eb2e8f9f7 1402
<> 144:ef7eb2e8f9f7 1403 /* Debug Exception and Monitor Control Register */
<> 144:ef7eb2e8f9f7 1404 #define CoreDebug_DEMCR_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */
<> 144:ef7eb2e8f9f7 1405 #define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */
<> 144:ef7eb2e8f9f7 1406
<> 144:ef7eb2e8f9f7 1407 #define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< CoreDebug DEMCR: MON_REQ Position */
<> 144:ef7eb2e8f9f7 1408 #define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */
<> 144:ef7eb2e8f9f7 1409
<> 144:ef7eb2e8f9f7 1410 #define CoreDebug_DEMCR_MON_STEP_Pos 18 /*!< CoreDebug DEMCR: MON_STEP Position */
<> 144:ef7eb2e8f9f7 1411 #define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */
<> 144:ef7eb2e8f9f7 1412
<> 144:ef7eb2e8f9f7 1413 #define CoreDebug_DEMCR_MON_PEND_Pos 17 /*!< CoreDebug DEMCR: MON_PEND Position */
<> 144:ef7eb2e8f9f7 1414 #define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */
<> 144:ef7eb2e8f9f7 1415
<> 144:ef7eb2e8f9f7 1416 #define CoreDebug_DEMCR_MON_EN_Pos 16 /*!< CoreDebug DEMCR: MON_EN Position */
<> 144:ef7eb2e8f9f7 1417 #define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */
<> 144:ef7eb2e8f9f7 1418
<> 144:ef7eb2e8f9f7 1419 #define CoreDebug_DEMCR_VC_HARDERR_Pos 10 /*!< CoreDebug DEMCR: VC_HARDERR Position */
<> 144:ef7eb2e8f9f7 1420 #define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */
<> 144:ef7eb2e8f9f7 1421
<> 144:ef7eb2e8f9f7 1422 #define CoreDebug_DEMCR_VC_INTERR_Pos 9 /*!< CoreDebug DEMCR: VC_INTERR Position */
<> 144:ef7eb2e8f9f7 1423 #define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */
<> 144:ef7eb2e8f9f7 1424
<> 144:ef7eb2e8f9f7 1425 #define CoreDebug_DEMCR_VC_BUSERR_Pos 8 /*!< CoreDebug DEMCR: VC_BUSERR Position */
<> 144:ef7eb2e8f9f7 1426 #define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */
<> 144:ef7eb2e8f9f7 1427
<> 144:ef7eb2e8f9f7 1428 #define CoreDebug_DEMCR_VC_STATERR_Pos 7 /*!< CoreDebug DEMCR: VC_STATERR Position */
<> 144:ef7eb2e8f9f7 1429 #define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */
<> 144:ef7eb2e8f9f7 1430
<> 144:ef7eb2e8f9f7 1431 #define CoreDebug_DEMCR_VC_CHKERR_Pos 6 /*!< CoreDebug DEMCR: VC_CHKERR Position */
<> 144:ef7eb2e8f9f7 1432 #define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */
<> 144:ef7eb2e8f9f7 1433
<> 144:ef7eb2e8f9f7 1434 #define CoreDebug_DEMCR_VC_NOCPERR_Pos 5 /*!< CoreDebug DEMCR: VC_NOCPERR Position */
<> 144:ef7eb2e8f9f7 1435 #define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */
<> 144:ef7eb2e8f9f7 1436
<> 144:ef7eb2e8f9f7 1437 #define CoreDebug_DEMCR_VC_MMERR_Pos 4 /*!< CoreDebug DEMCR: VC_MMERR Position */
<> 144:ef7eb2e8f9f7 1438 #define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */
<> 144:ef7eb2e8f9f7 1439
<> 144:ef7eb2e8f9f7 1440 #define CoreDebug_DEMCR_VC_CORERESET_Pos 0 /*!< CoreDebug DEMCR: VC_CORERESET Position */
<> 144:ef7eb2e8f9f7 1441 #define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */
<> 144:ef7eb2e8f9f7 1442
<> 144:ef7eb2e8f9f7 1443 /*@} end of group CMSIS_CoreDebug */
<> 144:ef7eb2e8f9f7 1444
<> 144:ef7eb2e8f9f7 1445
<> 144:ef7eb2e8f9f7 1446 /** \ingroup CMSIS_core_register
<> 144:ef7eb2e8f9f7 1447 \defgroup CMSIS_core_base Core Definitions
<> 144:ef7eb2e8f9f7 1448 \brief Definitions for base addresses, unions, and structures.
<> 144:ef7eb2e8f9f7 1449 @{
<> 144:ef7eb2e8f9f7 1450 */
<> 144:ef7eb2e8f9f7 1451
<> 144:ef7eb2e8f9f7 1452 /* Memory mapping of Cortex-M4 Hardware */
<> 144:ef7eb2e8f9f7 1453 #define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */
<> 144:ef7eb2e8f9f7 1454 #define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */
<> 144:ef7eb2e8f9f7 1455 #define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */
<> 144:ef7eb2e8f9f7 1456 #define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */
<> 144:ef7eb2e8f9f7 1457 #define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */
<> 144:ef7eb2e8f9f7 1458 #define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */
<> 144:ef7eb2e8f9f7 1459 #define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */
<> 144:ef7eb2e8f9f7 1460 #define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */
<> 144:ef7eb2e8f9f7 1461
<> 144:ef7eb2e8f9f7 1462 #define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */
<> 144:ef7eb2e8f9f7 1463 #define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */
<> 144:ef7eb2e8f9f7 1464 #define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */
<> 144:ef7eb2e8f9f7 1465 #define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */
<> 144:ef7eb2e8f9f7 1466 #define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */
<> 144:ef7eb2e8f9f7 1467 #define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */
<> 144:ef7eb2e8f9f7 1468 #define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */
<> 144:ef7eb2e8f9f7 1469 #define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */
<> 144:ef7eb2e8f9f7 1470
<> 144:ef7eb2e8f9f7 1471 #if (__MPU_PRESENT == 1)
<> 144:ef7eb2e8f9f7 1472 #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */
<> 144:ef7eb2e8f9f7 1473 #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */
<> 144:ef7eb2e8f9f7 1474 #endif
<> 144:ef7eb2e8f9f7 1475
<> 144:ef7eb2e8f9f7 1476 #if (__FPU_PRESENT == 1)
<> 144:ef7eb2e8f9f7 1477 #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */
<> 144:ef7eb2e8f9f7 1478 #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */
<> 144:ef7eb2e8f9f7 1479 #endif
<> 144:ef7eb2e8f9f7 1480
<> 144:ef7eb2e8f9f7 1481 /*@} */
<> 144:ef7eb2e8f9f7 1482
<> 144:ef7eb2e8f9f7 1483
<> 144:ef7eb2e8f9f7 1484
<> 144:ef7eb2e8f9f7 1485 /*******************************************************************************
<> 144:ef7eb2e8f9f7 1486 * Hardware Abstraction Layer
<> 144:ef7eb2e8f9f7 1487 Core Function Interface contains:
<> 144:ef7eb2e8f9f7 1488 - Core NVIC Functions
<> 144:ef7eb2e8f9f7 1489 - Core SysTick Functions
<> 144:ef7eb2e8f9f7 1490 - Core Debug Functions
<> 144:ef7eb2e8f9f7 1491 - Core Register Access Functions
<> 144:ef7eb2e8f9f7 1492 ******************************************************************************/
<> 144:ef7eb2e8f9f7 1493 /** \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference
<> 144:ef7eb2e8f9f7 1494 */
<> 144:ef7eb2e8f9f7 1495
<> 144:ef7eb2e8f9f7 1496
<> 144:ef7eb2e8f9f7 1497
<> 144:ef7eb2e8f9f7 1498 /* ########################## NVIC functions #################################### */
<> 144:ef7eb2e8f9f7 1499 /** \ingroup CMSIS_Core_FunctionInterface
<> 144:ef7eb2e8f9f7 1500 \defgroup CMSIS_Core_NVICFunctions NVIC Functions
<> 144:ef7eb2e8f9f7 1501 \brief Functions that manage interrupts and exceptions via the NVIC.
<> 144:ef7eb2e8f9f7 1502 @{
<> 144:ef7eb2e8f9f7 1503 */
<> 144:ef7eb2e8f9f7 1504
<> 144:ef7eb2e8f9f7 1505 #ifdef CMSIS_NVIC_VIRTUAL
<> 144:ef7eb2e8f9f7 1506 #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE
<> 144:ef7eb2e8f9f7 1507 #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h"
<> 144:ef7eb2e8f9f7 1508 #endif
<> 144:ef7eb2e8f9f7 1509 #include CMSIS_NVIC_VIRTUAL_HEADER_FILE
<> 144:ef7eb2e8f9f7 1510 #else
<> 144:ef7eb2e8f9f7 1511 #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping
<> 144:ef7eb2e8f9f7 1512 #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping
<> 144:ef7eb2e8f9f7 1513 #define NVIC_EnableIRQ __NVIC_EnableIRQ
<> 144:ef7eb2e8f9f7 1514 #define NVIC_DisableIRQ __NVIC_DisableIRQ
<> 144:ef7eb2e8f9f7 1515 #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ
<> 144:ef7eb2e8f9f7 1516 #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ
<> 144:ef7eb2e8f9f7 1517 #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ
<> 144:ef7eb2e8f9f7 1518 #define NVIC_GetActive __NVIC_GetActive
<> 144:ef7eb2e8f9f7 1519 #define NVIC_SetPriority __NVIC_SetPriority
<> 144:ef7eb2e8f9f7 1520 #define NVIC_GetPriority __NVIC_GetPriority
<> 144:ef7eb2e8f9f7 1521 #endif /* CMSIS_NVIC_VIRTUAL */
<> 144:ef7eb2e8f9f7 1522
<> 144:ef7eb2e8f9f7 1523 #ifdef CMSIS_VECTAB_VIRTUAL
<> 144:ef7eb2e8f9f7 1524 #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE
<> 144:ef7eb2e8f9f7 1525 #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h"
<> 144:ef7eb2e8f9f7 1526 #endif
<> 144:ef7eb2e8f9f7 1527 #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE
<> 144:ef7eb2e8f9f7 1528 #else
<> 144:ef7eb2e8f9f7 1529 #define NVIC_SetVector __NVIC_SetVector
<> 144:ef7eb2e8f9f7 1530 #define NVIC_GetVector __NVIC_GetVector
<> 144:ef7eb2e8f9f7 1531 #endif /* CMSIS_VECTAB_VIRTUAL */
<> 144:ef7eb2e8f9f7 1532
<> 144:ef7eb2e8f9f7 1533
<> 144:ef7eb2e8f9f7 1534 /** \brief Set Priority Grouping
<> 144:ef7eb2e8f9f7 1535
<> 144:ef7eb2e8f9f7 1536 The function sets the priority grouping field using the required unlock sequence.
<> 144:ef7eb2e8f9f7 1537 The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field.
<> 144:ef7eb2e8f9f7 1538 Only values from 0..7 are used.
<> 144:ef7eb2e8f9f7 1539 In case of a conflict between priority grouping and available
<> 144:ef7eb2e8f9f7 1540 priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.
<> 144:ef7eb2e8f9f7 1541
<> 144:ef7eb2e8f9f7 1542 \param [in] PriorityGroup Priority grouping field.
<> 144:ef7eb2e8f9f7 1543 */
<> 144:ef7eb2e8f9f7 1544 __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
<> 144:ef7eb2e8f9f7 1545 {
<> 144:ef7eb2e8f9f7 1546 uint32_t reg_value;
<> 144:ef7eb2e8f9f7 1547 uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
<> 144:ef7eb2e8f9f7 1548
<> 144:ef7eb2e8f9f7 1549 reg_value = SCB->AIRCR; /* read old register configuration */
<> 144:ef7eb2e8f9f7 1550 reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
<> 144:ef7eb2e8f9f7 1551 reg_value = (reg_value |
<> 144:ef7eb2e8f9f7 1552 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
<> 144:ef7eb2e8f9f7 1553 (PriorityGroupTmp << 8) ); /* Insert write key and priorty group */
<> 144:ef7eb2e8f9f7 1554 SCB->AIRCR = reg_value;
<> 144:ef7eb2e8f9f7 1555 }
<> 144:ef7eb2e8f9f7 1556
<> 144:ef7eb2e8f9f7 1557
<> 144:ef7eb2e8f9f7 1558 /** \brief Get Priority Grouping
<> 144:ef7eb2e8f9f7 1559
<> 144:ef7eb2e8f9f7 1560 The function reads the priority grouping field from the NVIC Interrupt Controller.
<> 144:ef7eb2e8f9f7 1561
<> 144:ef7eb2e8f9f7 1562 \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
<> 144:ef7eb2e8f9f7 1563 */
<> 144:ef7eb2e8f9f7 1564 __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void)
<> 144:ef7eb2e8f9f7 1565 {
<> 144:ef7eb2e8f9f7 1566 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
<> 144:ef7eb2e8f9f7 1567 }
<> 144:ef7eb2e8f9f7 1568
<> 144:ef7eb2e8f9f7 1569
<> 144:ef7eb2e8f9f7 1570 /** \brief Enable External Interrupt
<> 144:ef7eb2e8f9f7 1571
<> 144:ef7eb2e8f9f7 1572 The function enables a device-specific interrupt in the NVIC interrupt controller.
<> 144:ef7eb2e8f9f7 1573
<> 144:ef7eb2e8f9f7 1574 \param [in] IRQn External interrupt number. Value cannot be negative.
<> 144:ef7eb2e8f9f7 1575 */
<> 144:ef7eb2e8f9f7 1576 __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
<> 144:ef7eb2e8f9f7 1577 {
<> 144:ef7eb2e8f9f7 1578 NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
<> 144:ef7eb2e8f9f7 1579 }
<> 144:ef7eb2e8f9f7 1580
<> 144:ef7eb2e8f9f7 1581
<> 144:ef7eb2e8f9f7 1582 /** \brief Disable External Interrupt
<> 144:ef7eb2e8f9f7 1583
<> 144:ef7eb2e8f9f7 1584 The function disables a device-specific interrupt in the NVIC interrupt controller.
<> 144:ef7eb2e8f9f7 1585
<> 144:ef7eb2e8f9f7 1586 \param [in] IRQn External interrupt number. Value cannot be negative.
<> 144:ef7eb2e8f9f7 1587 */
<> 144:ef7eb2e8f9f7 1588 __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
<> 144:ef7eb2e8f9f7 1589 {
<> 144:ef7eb2e8f9f7 1590 NVIC->ICER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
<> 144:ef7eb2e8f9f7 1591 }
<> 144:ef7eb2e8f9f7 1592
<> 144:ef7eb2e8f9f7 1593
<> 144:ef7eb2e8f9f7 1594 /** \brief Get Pending Interrupt
<> 144:ef7eb2e8f9f7 1595
<> 144:ef7eb2e8f9f7 1596 The function reads the pending register in the NVIC and returns the pending bit
<> 144:ef7eb2e8f9f7 1597 for the specified interrupt.
<> 144:ef7eb2e8f9f7 1598
<> 144:ef7eb2e8f9f7 1599 \param [in] IRQn Interrupt number.
<> 144:ef7eb2e8f9f7 1600
<> 144:ef7eb2e8f9f7 1601 \return 0 Interrupt status is not pending.
<> 144:ef7eb2e8f9f7 1602 \return 1 Interrupt status is pending.
<> 144:ef7eb2e8f9f7 1603 */
<> 144:ef7eb2e8f9f7 1604 __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
<> 144:ef7eb2e8f9f7 1605 {
<> 144:ef7eb2e8f9f7 1606 return((uint32_t)(((NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
<> 144:ef7eb2e8f9f7 1607 }
<> 144:ef7eb2e8f9f7 1608
<> 144:ef7eb2e8f9f7 1609
<> 144:ef7eb2e8f9f7 1610 /** \brief Set Pending Interrupt
<> 144:ef7eb2e8f9f7 1611
<> 144:ef7eb2e8f9f7 1612 The function sets the pending bit of an external interrupt.
<> 144:ef7eb2e8f9f7 1613
<> 144:ef7eb2e8f9f7 1614 \param [in] IRQn Interrupt number. Value cannot be negative.
<> 144:ef7eb2e8f9f7 1615 */
<> 144:ef7eb2e8f9f7 1616 __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
<> 144:ef7eb2e8f9f7 1617 {
<> 144:ef7eb2e8f9f7 1618 NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
<> 144:ef7eb2e8f9f7 1619 }
<> 144:ef7eb2e8f9f7 1620
<> 144:ef7eb2e8f9f7 1621
<> 144:ef7eb2e8f9f7 1622 /** \brief Clear Pending Interrupt
<> 144:ef7eb2e8f9f7 1623
<> 144:ef7eb2e8f9f7 1624 The function clears the pending bit of an external interrupt.
<> 144:ef7eb2e8f9f7 1625
<> 144:ef7eb2e8f9f7 1626 \param [in] IRQn External interrupt number. Value cannot be negative.
<> 144:ef7eb2e8f9f7 1627 */
<> 144:ef7eb2e8f9f7 1628 __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
<> 144:ef7eb2e8f9f7 1629 {
<> 144:ef7eb2e8f9f7 1630 NVIC->ICPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
<> 144:ef7eb2e8f9f7 1631 }
<> 144:ef7eb2e8f9f7 1632
<> 144:ef7eb2e8f9f7 1633
<> 144:ef7eb2e8f9f7 1634 /** \brief Get Active Interrupt
<> 144:ef7eb2e8f9f7 1635
<> 144:ef7eb2e8f9f7 1636 The function reads the active register in NVIC and returns the active bit.
<> 144:ef7eb2e8f9f7 1637
<> 144:ef7eb2e8f9f7 1638 \param [in] IRQn Interrupt number.
<> 144:ef7eb2e8f9f7 1639
<> 144:ef7eb2e8f9f7 1640 \return 0 Interrupt status is not active.
<> 144:ef7eb2e8f9f7 1641 \return 1 Interrupt status is active.
<> 144:ef7eb2e8f9f7 1642 */
<> 144:ef7eb2e8f9f7 1643 __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn)
<> 144:ef7eb2e8f9f7 1644 {
<> 144:ef7eb2e8f9f7 1645 return((uint32_t)(((NVIC->IABR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
<> 144:ef7eb2e8f9f7 1646 }
<> 144:ef7eb2e8f9f7 1647
<> 144:ef7eb2e8f9f7 1648
<> 144:ef7eb2e8f9f7 1649 /** \brief Set Interrupt Priority
<> 144:ef7eb2e8f9f7 1650
<> 144:ef7eb2e8f9f7 1651 The function sets the priority of an interrupt.
<> 144:ef7eb2e8f9f7 1652
<> 144:ef7eb2e8f9f7 1653 \note The priority cannot be set for every core interrupt.
<> 144:ef7eb2e8f9f7 1654
<> 144:ef7eb2e8f9f7 1655 \param [in] IRQn Interrupt number.
<> 144:ef7eb2e8f9f7 1656 \param [in] priority Priority to set.
<> 144:ef7eb2e8f9f7 1657 */
<> 144:ef7eb2e8f9f7 1658 __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
<> 144:ef7eb2e8f9f7 1659 {
<> 144:ef7eb2e8f9f7 1660 if((int32_t)IRQn < 0) {
<> 144:ef7eb2e8f9f7 1661 SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8 - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
<> 144:ef7eb2e8f9f7 1662 }
<> 144:ef7eb2e8f9f7 1663 else {
<> 144:ef7eb2e8f9f7 1664 NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8 - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
<> 144:ef7eb2e8f9f7 1665 }
<> 144:ef7eb2e8f9f7 1666 }
<> 144:ef7eb2e8f9f7 1667
<> 144:ef7eb2e8f9f7 1668
<> 144:ef7eb2e8f9f7 1669 /** \brief Get Interrupt Priority
<> 144:ef7eb2e8f9f7 1670
<> 144:ef7eb2e8f9f7 1671 The function reads the priority of an interrupt. The interrupt
<> 144:ef7eb2e8f9f7 1672 number can be positive to specify an external (device specific)
<> 144:ef7eb2e8f9f7 1673 interrupt, or negative to specify an internal (core) interrupt.
<> 144:ef7eb2e8f9f7 1674
<> 144:ef7eb2e8f9f7 1675
<> 144:ef7eb2e8f9f7 1676 \param [in] IRQn Interrupt number.
<> 144:ef7eb2e8f9f7 1677 \return Interrupt Priority. Value is aligned automatically to the implemented
<> 144:ef7eb2e8f9f7 1678 priority bits of the microcontroller.
<> 144:ef7eb2e8f9f7 1679 */
<> 144:ef7eb2e8f9f7 1680 __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
<> 144:ef7eb2e8f9f7 1681 {
<> 144:ef7eb2e8f9f7 1682
<> 144:ef7eb2e8f9f7 1683 if((int32_t)IRQn < 0) {
<> 144:ef7eb2e8f9f7 1684 return(((uint32_t)SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] >> (8 - __NVIC_PRIO_BITS)));
<> 144:ef7eb2e8f9f7 1685 }
<> 144:ef7eb2e8f9f7 1686 else {
<> 144:ef7eb2e8f9f7 1687 return(((uint32_t)NVIC->IP[((uint32_t)(int32_t)IRQn)] >> (8 - __NVIC_PRIO_BITS)));
<> 144:ef7eb2e8f9f7 1688 }
<> 144:ef7eb2e8f9f7 1689 }
<> 144:ef7eb2e8f9f7 1690
<> 144:ef7eb2e8f9f7 1691
<> 144:ef7eb2e8f9f7 1692 /** \brief Encode Priority
<> 144:ef7eb2e8f9f7 1693
<> 144:ef7eb2e8f9f7 1694 The function encodes the priority for an interrupt with the given priority group,
<> 144:ef7eb2e8f9f7 1695 preemptive priority value, and subpriority value.
<> 144:ef7eb2e8f9f7 1696 In case of a conflict between priority grouping and available
<> 144:ef7eb2e8f9f7 1697 priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.
<> 144:ef7eb2e8f9f7 1698
<> 144:ef7eb2e8f9f7 1699 \param [in] PriorityGroup Used priority group.
<> 144:ef7eb2e8f9f7 1700 \param [in] PreemptPriority Preemptive priority value (starting from 0).
<> 144:ef7eb2e8f9f7 1701 \param [in] SubPriority Subpriority value (starting from 0).
<> 144:ef7eb2e8f9f7 1702 \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority().
<> 144:ef7eb2e8f9f7 1703 */
<> 144:ef7eb2e8f9f7 1704 __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
<> 144:ef7eb2e8f9f7 1705 {
<> 144:ef7eb2e8f9f7 1706 uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
<> 144:ef7eb2e8f9f7 1707 uint32_t PreemptPriorityBits;
<> 144:ef7eb2e8f9f7 1708 uint32_t SubPriorityBits;
<> 144:ef7eb2e8f9f7 1709
<> 144:ef7eb2e8f9f7 1710 PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
<> 144:ef7eb2e8f9f7 1711 SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
<> 144:ef7eb2e8f9f7 1712
<> 144:ef7eb2e8f9f7 1713 return (
<> 144:ef7eb2e8f9f7 1714 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
<> 144:ef7eb2e8f9f7 1715 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
<> 144:ef7eb2e8f9f7 1716 );
<> 144:ef7eb2e8f9f7 1717 }
<> 144:ef7eb2e8f9f7 1718
<> 144:ef7eb2e8f9f7 1719
<> 144:ef7eb2e8f9f7 1720 /** \brief Decode Priority
<> 144:ef7eb2e8f9f7 1721
<> 144:ef7eb2e8f9f7 1722 The function decodes an interrupt priority value with a given priority group to
<> 144:ef7eb2e8f9f7 1723 preemptive priority value and subpriority value.
<> 144:ef7eb2e8f9f7 1724 In case of a conflict between priority grouping and available
<> 144:ef7eb2e8f9f7 1725 priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.
<> 144:ef7eb2e8f9f7 1726
<> 144:ef7eb2e8f9f7 1727 \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority().
<> 144:ef7eb2e8f9f7 1728 \param [in] PriorityGroup Used priority group.
<> 144:ef7eb2e8f9f7 1729 \param [out] pPreemptPriority Preemptive priority value (starting from 0).
<> 144:ef7eb2e8f9f7 1730 \param [out] pSubPriority Subpriority value (starting from 0).
<> 144:ef7eb2e8f9f7 1731 */
<> 144:ef7eb2e8f9f7 1732 __STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority)
<> 144:ef7eb2e8f9f7 1733 {
<> 144:ef7eb2e8f9f7 1734 uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
<> 144:ef7eb2e8f9f7 1735 uint32_t PreemptPriorityBits;
<> 144:ef7eb2e8f9f7 1736 uint32_t SubPriorityBits;
<> 144:ef7eb2e8f9f7 1737
<> 144:ef7eb2e8f9f7 1738 PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
<> 144:ef7eb2e8f9f7 1739 SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
<> 144:ef7eb2e8f9f7 1740
<> 144:ef7eb2e8f9f7 1741 *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL);
<> 144:ef7eb2e8f9f7 1742 *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL);
<> 144:ef7eb2e8f9f7 1743 }
<> 144:ef7eb2e8f9f7 1744
<> 144:ef7eb2e8f9f7 1745
<> 144:ef7eb2e8f9f7 1746 /** \brief System Reset
<> 144:ef7eb2e8f9f7 1747
<> 144:ef7eb2e8f9f7 1748 The function initiates a system reset request to reset the MCU.
<> 144:ef7eb2e8f9f7 1749 */
<> 144:ef7eb2e8f9f7 1750 __STATIC_INLINE void NVIC_SystemReset(void)
<> 144:ef7eb2e8f9f7 1751 {
<> 144:ef7eb2e8f9f7 1752 __DSB(); /* Ensure all outstanding memory accesses included
<> 144:ef7eb2e8f9f7 1753 buffered write are completed before reset */
<> 144:ef7eb2e8f9f7 1754 SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
<> 144:ef7eb2e8f9f7 1755 (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
<> 144:ef7eb2e8f9f7 1756 SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */
<> 144:ef7eb2e8f9f7 1757 __DSB(); /* Ensure completion of memory access */
<> 144:ef7eb2e8f9f7 1758 while(1) { __NOP(); } /* wait until reset */
<> 144:ef7eb2e8f9f7 1759 }
<> 144:ef7eb2e8f9f7 1760
<> 144:ef7eb2e8f9f7 1761 /*@} end of CMSIS_Core_NVICFunctions */
<> 144:ef7eb2e8f9f7 1762
<> 144:ef7eb2e8f9f7 1763
<> 144:ef7eb2e8f9f7 1764
<> 144:ef7eb2e8f9f7 1765 /* ################################## SysTick function ############################################ */
<> 144:ef7eb2e8f9f7 1766 /** \ingroup CMSIS_Core_FunctionInterface
<> 144:ef7eb2e8f9f7 1767 \defgroup CMSIS_Core_SysTickFunctions SysTick Functions
<> 144:ef7eb2e8f9f7 1768 \brief Functions that configure the System.
<> 144:ef7eb2e8f9f7 1769 @{
<> 144:ef7eb2e8f9f7 1770 */
<> 144:ef7eb2e8f9f7 1771
<> 144:ef7eb2e8f9f7 1772 #if (__Vendor_SysTickConfig == 0)
<> 144:ef7eb2e8f9f7 1773
<> 144:ef7eb2e8f9f7 1774 /** \brief System Tick Configuration
<> 144:ef7eb2e8f9f7 1775
<> 144:ef7eb2e8f9f7 1776 The function initializes the System Timer and its interrupt, and starts the System Tick Timer.
<> 144:ef7eb2e8f9f7 1777 Counter is in free running mode to generate periodic interrupts.
<> 144:ef7eb2e8f9f7 1778
<> 144:ef7eb2e8f9f7 1779 \param [in] ticks Number of ticks between two interrupts.
<> 144:ef7eb2e8f9f7 1780
<> 144:ef7eb2e8f9f7 1781 \return 0 Function succeeded.
<> 144:ef7eb2e8f9f7 1782 \return 1 Function failed.
<> 144:ef7eb2e8f9f7 1783
<> 144:ef7eb2e8f9f7 1784 \note When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the
<> 144:ef7eb2e8f9f7 1785 function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
<> 144:ef7eb2e8f9f7 1786 must contain a vendor-specific implementation of this function.
<> 144:ef7eb2e8f9f7 1787
<> 144:ef7eb2e8f9f7 1788 */
<> 144:ef7eb2e8f9f7 1789 __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
<> 144:ef7eb2e8f9f7 1790 {
<> 144:ef7eb2e8f9f7 1791 if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) { return (1UL); } /* Reload value impossible */
<> 144:ef7eb2e8f9f7 1792
<> 144:ef7eb2e8f9f7 1793 SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
<> 144:ef7eb2e8f9f7 1794 NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
<> 144:ef7eb2e8f9f7 1795 SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
<> 144:ef7eb2e8f9f7 1796 SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
<> 144:ef7eb2e8f9f7 1797 SysTick_CTRL_TICKINT_Msk |
<> 144:ef7eb2e8f9f7 1798 SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
<> 144:ef7eb2e8f9f7 1799 return (0UL); /* Function successful */
<> 144:ef7eb2e8f9f7 1800 }
<> 144:ef7eb2e8f9f7 1801
<> 144:ef7eb2e8f9f7 1802 #endif
<> 144:ef7eb2e8f9f7 1803
<> 144:ef7eb2e8f9f7 1804 /*@} end of CMSIS_Core_SysTickFunctions */
<> 144:ef7eb2e8f9f7 1805
<> 144:ef7eb2e8f9f7 1806
<> 144:ef7eb2e8f9f7 1807
<> 144:ef7eb2e8f9f7 1808 /* ##################################### Debug In/Output function ########################################### */
<> 144:ef7eb2e8f9f7 1809 /** \ingroup CMSIS_Core_FunctionInterface
<> 144:ef7eb2e8f9f7 1810 \defgroup CMSIS_core_DebugFunctions ITM Functions
<> 144:ef7eb2e8f9f7 1811 \brief Functions that access the ITM debug interface.
<> 144:ef7eb2e8f9f7 1812 @{
<> 144:ef7eb2e8f9f7 1813 */
<> 144:ef7eb2e8f9f7 1814
<> 144:ef7eb2e8f9f7 1815 extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */
<> 144:ef7eb2e8f9f7 1816 #define ITM_RXBUFFER_EMPTY 0x5AA55AA5 /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */
<> 144:ef7eb2e8f9f7 1817
<> 144:ef7eb2e8f9f7 1818
<> 144:ef7eb2e8f9f7 1819 /** \brief ITM Send Character
<> 144:ef7eb2e8f9f7 1820
<> 144:ef7eb2e8f9f7 1821 The function transmits a character via the ITM channel 0, and
<> 144:ef7eb2e8f9f7 1822 \li Just returns when no debugger is connected that has booked the output.
<> 144:ef7eb2e8f9f7 1823 \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted.
<> 144:ef7eb2e8f9f7 1824
<> 144:ef7eb2e8f9f7 1825 \param [in] ch Character to transmit.
<> 144:ef7eb2e8f9f7 1826
<> 144:ef7eb2e8f9f7 1827 \returns Character to transmit.
<> 144:ef7eb2e8f9f7 1828 */
<> 144:ef7eb2e8f9f7 1829 __STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch)
<> 144:ef7eb2e8f9f7 1830 {
<> 144:ef7eb2e8f9f7 1831 if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */
<> 144:ef7eb2e8f9f7 1832 ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */
<> 144:ef7eb2e8f9f7 1833 {
<> 144:ef7eb2e8f9f7 1834 while (ITM->PORT[0].u32 == 0UL) { __NOP(); }
<> 144:ef7eb2e8f9f7 1835 ITM->PORT[0].u8 = (uint8_t)ch;
<> 144:ef7eb2e8f9f7 1836 }
<> 144:ef7eb2e8f9f7 1837 return (ch);
<> 144:ef7eb2e8f9f7 1838 }
<> 144:ef7eb2e8f9f7 1839
<> 144:ef7eb2e8f9f7 1840
<> 144:ef7eb2e8f9f7 1841 /** \brief ITM Receive Character
<> 144:ef7eb2e8f9f7 1842
<> 144:ef7eb2e8f9f7 1843 The function inputs a character via the external variable \ref ITM_RxBuffer.
<> 144:ef7eb2e8f9f7 1844
<> 144:ef7eb2e8f9f7 1845 \return Received character.
<> 144:ef7eb2e8f9f7 1846 \return -1 No character pending.
<> 144:ef7eb2e8f9f7 1847 */
<> 144:ef7eb2e8f9f7 1848 __STATIC_INLINE int32_t ITM_ReceiveChar (void) {
<> 144:ef7eb2e8f9f7 1849 int32_t ch = -1; /* no character available */
<> 144:ef7eb2e8f9f7 1850
<> 144:ef7eb2e8f9f7 1851 if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) {
<> 144:ef7eb2e8f9f7 1852 ch = ITM_RxBuffer;
<> 144:ef7eb2e8f9f7 1853 ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */
<> 144:ef7eb2e8f9f7 1854 }
<> 144:ef7eb2e8f9f7 1855
<> 144:ef7eb2e8f9f7 1856 return (ch);
<> 144:ef7eb2e8f9f7 1857 }
<> 144:ef7eb2e8f9f7 1858
<> 144:ef7eb2e8f9f7 1859
<> 144:ef7eb2e8f9f7 1860 /** \brief ITM Check Character
<> 144:ef7eb2e8f9f7 1861
<> 144:ef7eb2e8f9f7 1862 The function checks whether a character is pending for reading in the variable \ref ITM_RxBuffer.
<> 144:ef7eb2e8f9f7 1863
<> 144:ef7eb2e8f9f7 1864 \return 0 No character available.
<> 144:ef7eb2e8f9f7 1865 \return 1 Character available.
<> 144:ef7eb2e8f9f7 1866 */
<> 144:ef7eb2e8f9f7 1867 __STATIC_INLINE int32_t ITM_CheckChar (void) {
<> 144:ef7eb2e8f9f7 1868
<> 144:ef7eb2e8f9f7 1869 if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) {
<> 144:ef7eb2e8f9f7 1870 return (0); /* no character available */
<> 144:ef7eb2e8f9f7 1871 } else {
<> 144:ef7eb2e8f9f7 1872 return (1); /* character available */
<> 144:ef7eb2e8f9f7 1873 }
<> 144:ef7eb2e8f9f7 1874 }
<> 144:ef7eb2e8f9f7 1875
<> 144:ef7eb2e8f9f7 1876 /*@} end of CMSIS_core_DebugFunctions */
<> 144:ef7eb2e8f9f7 1877
<> 144:ef7eb2e8f9f7 1878
<> 144:ef7eb2e8f9f7 1879
<> 144:ef7eb2e8f9f7 1880
<> 144:ef7eb2e8f9f7 1881 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 1882 }
<> 144:ef7eb2e8f9f7 1883 #endif
<> 144:ef7eb2e8f9f7 1884
<> 144:ef7eb2e8f9f7 1885 #endif /* __CORE_CM4_H_DEPENDANT */
<> 144:ef7eb2e8f9f7 1886
<> 144:ef7eb2e8f9f7 1887 #endif /* __CMSIS_GENERIC */