1 /**************************************************************************************************/
3 \defgroup version_control_gr Version Control
4 \brief Version \#define symbols for CMSIS release specific C/C++ source code
6 The header file <b>cmsis_version.h</b> is included by each core header so that these definitions are available.
10 #if defined(__CM_CMSIS_VERSION) && \
11 (__CM_CMSIS_VERSION >= 0x00050001)
12 #error Yes, we have CMSIS 5.1 or later
14 #error We need CMSIS 5.1 or later!
20 The following macros are deprecated:
21 - \b __XXX_CMSIS_VERSION_MAIN which is replaced by \ref __CM_CMSIS_VERSION_MAIN.
22 - \b __XXX_CMSIS_VERSION_SUB which is replaced by \ref __CM_CMSIS_VERSION_SUB.
23 - \b __XXX_CMSIS_VERSION which is replaced by \ref __CM_CMSIS_VERSION.
29 \brief Contains the CMSIS major version
30 \details The CMSIS major version can be used to differentiate between CMSIS major releases.
32 #define __CM_CMSIS_VERSION_MAIN
35 \brief Contains the CMSIS minor version
36 \details The CMSIS minor version can be used to query a CMSIS release update level.
38 #define __CM_CMSIS_VERSION_SUB
41 \brief Contains the CMSIS version
42 \details The CMSIS version is a combination of the \ref __CM_CMSIS_VERSION_MAIN (bits 31..15) and \ref __CM_CMSIS_VERSION_SUB (bits 14..0).
44 #define __CM_CMSIS_VERSION
47 \brief Contains the core version for a Cortex-M class controller.
48 \details This define can be used to differentiate between the various available Cortex-M controllers.
50 - 0 for a Cortex-M0 or Cortex-M0+
58 - 35 for a Cortex-M35P
61 - 2 for a Armv8-M Base Line device
62 - 80 for a Armv8-M Main Line device
63 - 81 for a Armv8.1-M Main Line device
66 This define is only available for Cortex-M class controllers.
69 #if defined(__CORTEX_M) && (__CORTEX_M == 4)
70 #error Yes, we have an Cortex-M4 controller.
72 #error We need a Cortex-M4 controller!
84 \brief Contains the core version for a Cortex Secure Core controller.
85 \details This define can be used to differentiate between the various available Cortex Secure Core controllers.
87 - 000 for a Cortex-SC000
88 - 300 for a Cortex-SC300
90 This define is only available for Cortex Secure Core controllers.
93 #if defined(__CORTEX_SC) && (__CORTEX_SC == 300U)
94 #error Yes, we have an Cortex SC300 controller.
96 #error We need a Cortex SC300 controller!
109 \brief Contains the core version for a STAR-MC controller.
110 \details This define can be used to differentiate between the various available STAR-MC controllers.
114 This define is only available for STAR-MC controllers.
117 #if defined(__STAR_MC) && (__STAR_MC == 1U)
118 #error Yes, we have a STAR-MC1 controller.
120 #error We need a STAR-MC1 controller!