/**************************************************************************************************/
/**
\defgroup version_control_gr Version Control
\brief Version \#define symbols for CMSIS release specific C/C++ source code
\details
The header file cmsis_version.h is included by each core header so that these definitions are available.
Code Example:
\code
#if defined(__CM_CMSIS_VERSION) && \
(__CM_CMSIS_VERSION >= 0x00050001)
#error Yes, we have CMSIS 5.1 or later
#else
#error We need CMSIS 5.1 or later!
#endif
\endcode
@{
*/
/**
\brief Contains the CMSIS major version
\details The CMSIS major version can be used to differentiate between CMSIS major releases.
*/
#define __CM_CMSIS_VERSION_MAIN
/**
\brief Contains the CMSIS minor version
\details The CMSIS minor version can be used to query a CMSIS release update level.
*/
#define __CM_CMSIS_VERSION_SUB
/**
\brief Contains the CMSIS version
\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).
*/
#define __CM_CMSIS_VERSION
/**
\brief Contains the core version for a Cortex-M class controller.
\details This define can be used to differentiate between the various available Cortex-M controllers.
Possible values are:
- 0 for a Cortex-M0 or Cortex-M0+
- 3 for a Cortex-M3
- 4 for a Cortex-M4
- 7 for a Cortex-M7
- 23 for a Cortex-M23
- 33 for a Cortex-M33
This define is only available for Cortex-M class controllers.
Code Example:
\code
#if defined(__CORTEX_M) && (__CORTEX_M == 4)
#error Yes, we have an Cortex-M4 controller.
#else
#error We need a Cortex-M4 controller!
#endif
\endcode
*/
#define __CORTEX_M
/**
\brief Contains the core version for a Cortex Secure Core controller.
\details This define can be used to differentiate between the various available Cortex Secure Core controllers.
Possible values are:
- 000 for a Cortex-SC000
- 300 for a Cortex-SC300
This define is only available for Cortex Secure Core controllers.
Code Example:
\code
#if defined(__CORTEX_SC) && (__CORTEX_SC == 300U)
#error Yes, we have an Cortex SC300 controller.
#else
#error We need a Cortex SC300 controller!
#endif
\endcode
*/
#define __CORTEX_SC
/**
\defgroup version_control_depricated_gr Version Control per Core (Depricated)
\brief Version \#define symbols for CMSIS release specific C/C++ source code
\details
Prior CMSIS release 5.1.0 the version information was core specific.
Code Example:
\code
#if !defined(__CM_CMSIS_VERSION) && defined(__CORTEX_M)
#if ((__CORTEX_M == 0) && (__CM0_CMSIS_VERSION >= 0x00050000)) || \
((__CORTEX_M == 3) && (__CM3_CMSIS_VERSION >= 0x00050000)) || \
((__CORTEX_M == 4) && (__CM4_CMSIS_VERSION >= 0x00050000)) || \
((__CORTEX_M == 7) && (__CM7_CMSIS_VERSION >= 0x00050000))
#error Yes, we have CMSIS 5!
#else
#error We need CMSIS 5!
#endif
#else
#error We need a Cortex-M controller!
#endif
\endcode
@{
*/
/**
\brief Contains the CMSIS major version for core of type XXX, i.e. CM0 or SC300.
\details The CMSIS major version can be used to differentiate between CMSIS major releases.
\deprecated Only rely on this define for CMSIS 5.0 and before.
*/
#define __XXX_CMSIS_VERSION_MAIN
/**
\brief Contains the CMSIS minor version for core of type XXX, i.e. CM0 or SC300.
\details The CMSIS minor version can be used to query a CMSIS release update level.
\deprecated Only rely on this define for CMSIS 5.0 and before.
*/
#define __XXX_CMSIS_VERSION_SUB
/**
\brief Contains the CMSIS version for core of type XXX, i.e. CM0 or SC300.
\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).
\deprecated Only rely on this define for CMSIS 5.0 and before.
*/
#define __XXX_CMSIS_VERSION
/**
@}
*/
/**
@}
*/