1 /**************************************************************************************************/
3 \defgroup version_control_gr Version Control
4 \brief Version \#define symbols for CMSIS release specific C/C++ source code
7 \ref cmsis_processor_files contain macros \ref __CORTEX_M , \ref __CORTEX_SC or \ref __STAR_MC that identify the processor core variant described in the file.
9 Additionally each processor header file includes the <b>cmsis_version.h</b> file with \ref __CM_CMSIS_VERSION define that identifies the CMSIS version used.
11 This allows application code and middleware components to verify the target processor and the CMSIS version that CMSIS-Core component implies.
17 \brief Contains the CMSIS version
18 \details The CMSIS version is a combination of the \ref __CM_CMSIS_VERSION_MAIN (bits 31..16) and \ref __CM_CMSIS_VERSION_SUB (bits 15..0).
22 #if defined(__CM_CMSIS_VERSION) && \
23 (__CM_CMSIS_VERSION >= 0x00060000)
24 #error Yes, we have CMSIS 6.0 or later
26 #error We need CMSIS 6.0 or later!
30 #define __CM_CMSIS_VERSION
33 \brief Contains the CMSIS major version
34 \details The CMSIS major version can be used to differentiate between CMSIS major releases.
36 #define __CM_CMSIS_VERSION_MAIN
39 \brief Contains the CMSIS minor version
40 \details The CMSIS minor version can be used to query a CMSIS release update level.
42 #define __CM_CMSIS_VERSION_SUB
45 \brief Contains the core version for a Cortex-M class controller.
46 \details This define can be used to differentiate between the various available Cortex-M controllers.
48 - 0 for a Cortex-M0 or Cortex-M0+
56 - 35 for a Cortex-M35P
59 - 2 for a Armv8-M Base Line device
60 - 80 for a Armv8-M Main Line device
61 - 81 for a Armv8.1-M Main Line device
64 This define is only available for Cortex-M class controllers.
67 #if defined(__CORTEX_M) && (__CORTEX_M == 4)
68 #error Yes, we have an Cortex-M4 controller.
70 #error We need a Cortex-M4 controller!
82 \brief Contains the core version for a Cortex Secure Core controller.
83 \details This define can be used to differentiate between the various available Cortex Secure Core controllers.
85 - 000 for a Cortex-SC000
86 - 300 for a Cortex-SC300
88 This define is only available for Cortex Secure Core controllers.
91 #if defined(__CORTEX_SC) && (__CORTEX_SC == 300U)
92 #error Yes, we have an Cortex SC300 controller.
94 #error We need a Cortex SC300 controller!
107 \brief Contains the core version for a STAR-MC controller.
108 \details This define can be used to differentiate between the various available STAR-MC controllers.
112 This define is only available for STAR-MC controllers.
115 #if defined(__STAR_MC) && (__STAR_MC == 1U)
116 #error Yes, we have a STAR-MC1 controller.
118 #error We need a STAR-MC1 controller!