]> begriffs open source - cmsis/blob - CMSIS/Documentation/Doxygen/Core/src/Ref_VersionControl.txt
Update infrastructure and reference container
[cmsis] / CMSIS / Documentation / 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 @{
19 */
20
21 /**
22 \brief Contains the CMSIS major version
23 \details The CMSIS major version can be used to differentiate between CMSIS major releases.
24 */
25 #define __CM_CMSIS_VERSION_MAIN
26
27 /**
28 \brief Contains the CMSIS minor version
29 \details The CMSIS minor version can be used to query a CMSIS release update level.
30 */
31 #define __CM_CMSIS_VERSION_SUB
32
33 /**
34 \brief Contains the CMSIS version
35 \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).
36 */
37 #define __CM_CMSIS_VERSION
38
39 /**
40 \brief Contains the core version for a Cortex-M class controller.
41 \details This define can be used to differentiate between the various available Cortex-M controllers.
42 Possible values are:
43  - 0 for a Cortex-M0 or Cortex-M0+
44  - 1 for a Cortex-M1
45  - 3 for a Cortex-M3
46  - 4 for a Cortex-M4
47  - 7 for a Cortex-M7
48 \if ARMv8M
49  - 23 for a Cortex-M23
50  - 33 for a Cortex-M33
51  - 35 for a Cortex-M35P
52  - 55 for a Cortex-M55
53  - 85 for a Cortex-M85
54  - 2  for a Armv8-M Base Line device
55  - 80 for a Armv8-M Main Line device
56  - 81 for a Armv8.1-M Main Line device
57 \endif 
58
59 This define is only available for Cortex-M class controllers.
60 <b>Code Example:</b>
61 \code
62 #if defined(__CORTEX_M) && (__CORTEX_M == 4)
63 #error Yes, we have an Cortex-M4 controller.
64 #else
65 #error We need a Cortex-M4 controller!
66 #endif
67 \endcode
68 */
69 #define __CORTEX_M
70
71
72 /**
73 \cond (ARMSC)
74 */
75
76 /**
77 \brief Contains the core version for a Cortex Secure Core controller.
78 \details This define can be used to differentiate between the various available Cortex Secure Core controllers.
79 Possible values are:
80  - 000 for a Cortex-SC000
81  - 300 for a Cortex-SC300
82  
83 This define is only available for Cortex Secure Core controllers.
84 <b>Code Example:</b>
85 \code
86 #if defined(__CORTEX_SC) && (__CORTEX_SC == 300U)
87 #error Yes, we have an Cortex SC300 controller.
88 #else
89 #error We need a Cortex SC300 controller!
90 #endif
91 \endcode
92 */
93 #define __CORTEX_SC
94 /**
95 \endcond
96 */
97
98 /**
99 \cond (STAR)
100 */
101 /**
102 \brief Contains the core version for a STAR-MC controller.
103 \details This define can be used to differentiate between the various available STAR-MC controllers.
104 Possible values are:
105  - 1 for a STAR-MC1
106  
107 This define is only available for STAR-MC controllers.
108 <b>Code Example:</b>
109 \code
110 #if defined(__STAR_MC) && (__STAR_MC == 1U)
111 #error Yes, we have a STAR-MC1 controller.
112 #else
113 #error We need a STAR-MC1 controller!
114 #endif
115 \endcode
116 */
117 #define __STAR_MC
118 /**
119 \endcond
120 */
121
122 /**
123 @}
124 */