]> begriffs open source - cmsis/blob - CMSIS/DoxyGen/Core/src/Ref_VersionControl.txt
Add new compiler macros:
[cmsis] / CMSIS / DoxyGen / Core / src / Ref_VersionControl.txt
1 /**************************************************************************************************/
2 /**
3 \defgroup   version_control_gr    Version Control
4 \brief      Version \#define symbols for CMSIS release specific C/C++ source code
5 \details
6 The header file <b>cmsis_version.h</b> is included by each core header so that these definitions are available. 
7
8 <b>Code Example:</b>
9 \code
10 #if defined(__CM_CMSIS_VERSION) && \
11     (__CM_CMSIS_VERSION >= 0x00050001)
12 #error Yes, we have CMSIS 5.1 or later
13 #else
14 #error We need CMSIS 5.1 or later!
15 #endif
16 \endcode
17
18 <b>Deprecated</b>
19
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.
24
25 @{
26 */
27
28 /**
29 \brief Contains the CMSIS major version
30 \details The CMSIS major version can be used to differentiate between CMSIS major releases.
31 */
32 #define __CM_CMSIS_VERSION_MAIN
33
34 /**
35 \brief Contains the CMSIS minor version
36 \details The CMSIS minor version can be used to query a CMSIS release update level.
37 */
38 #define __CM_CMSIS_VERSION_SUB
39
40 /**
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).
43 */
44 #define __CM_CMSIS_VERSION
45
46 /**
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.
49 Possible values are:
50  - 0 for a Cortex-M0 or Cortex-M0+
51  - 1 for a Cortex-M1
52  - 3 for a Cortex-M3
53  - 4 for a Cortex-M4
54  - 7 for a Cortex-M7
55 \if ARMv8M
56  - 23 for a Cortex-M23
57  - 33 for a Cortex-M33
58  - 35 for a Cortex-M35P
59  - 55 for a Cortex-M55
60  - 85 for a Cortex-M85
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
64 \endif 
65
66 This define is only available for Cortex-M class controllers.
67 <b>Code Example:</b>
68 \code
69 #if defined(__CORTEX_M) && (__CORTEX_M == 4)
70 #error Yes, we have an Cortex-M4 controller.
71 #else
72 #error We need a Cortex-M4 controller!
73 #endif
74 \endcode
75 */
76 #define __CORTEX_M
77
78
79 /**
80 \cond (ARMSC)
81 */
82
83 /**
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.
86 Possible values are:
87  - 000 for a Cortex-SC000
88  - 300 for a Cortex-SC300
89  
90 This define is only available for Cortex Secure Core controllers.
91 <b>Code Example:</b>
92 \code
93 #if defined(__CORTEX_SC) && (__CORTEX_SC == 300U)
94 #error Yes, we have an Cortex SC300 controller.
95 #else
96 #error We need a Cortex SC300 controller!
97 #endif
98 \endcode
99 */
100 #define __CORTEX_SC
101 /**
102 \endcond
103 */
104
105 /**
106 \cond (STAR)
107 */
108 /**
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.
111 Possible values are:
112  - 1 for a STAR-MC1
113  
114 This define is only available for STAR-MC controllers.
115 <b>Code Example:</b>
116 \code
117 #if defined(__STAR_MC) && (__STAR_MC == 1U)
118 #error Yes, we have a STAR-MC1 controller.
119 #else
120 #error We need a STAR-MC1 controller!
121 #endif
122 \endcode
123 */
124 #define __STAR_MC
125 /**
126 \endcond
127 */
128
129 /**
130 @}
131 */