]> begriffs open source - cmsis/blob - CMSIS/DoxyGen/Core/src/Ref_VersionControl.txt
Doxygen: Update toolchain versions used for verification.
[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  - 2  for a Armv8-M Base Line device
61  - 80 for a Armv8-M Main Line device
62  - 81 for a Armv8.1-M Main Line device
63 \endif 
64
65 This define is only available for Cortex-M class controllers.
66 <b>Code Example:</b>
67 \code
68 #if defined(__CORTEX_M) && (__CORTEX_M == 4)
69 #error Yes, we have an Cortex-M4 controller.
70 #else
71 #error We need a Cortex-M4 controller!
72 #endif
73 \endcode
74 */
75 #define __CORTEX_M
76
77
78 /**
79 \cond (ARMSC)
80 */
81
82 /**
83 \brief Contains the core version for a Cortex Secure Core controller.
84 \details This define can be used to differentiate between the various available Cortex Secure Core controllers.
85 Possible values are:
86  - 000 for a Cortex-SC000
87  - 300 for a Cortex-SC300
88  
89 This define is only available for Cortex Secure Core controllers.
90 <b>Code Example:</b>
91 \code
92 #if defined(__CORTEX_SC) && (__CORTEX_SC == 300U)
93 #error Yes, we have an Cortex SC300 controller.
94 #else
95 #error We need a Cortex SC300 controller!
96 #endif
97 \endcode
98 */
99 #define __CORTEX_SC
100 /**
101 \endcond
102 */
103
104
105 /**
106 @}
107 */