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