/**************************************************************************************************/ /** \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 Deprecated The following macros are deprecated: - \b __XXX_CMSIS_VERSION_MAIN which is replaced by \ref __CM_CMSIS_VERSION_MAIN. - \b __XXX_CMSIS_VERSION_SUB which is replaced by \ref __CM_CMSIS_VERSION_SUB. - \b __XXX_CMSIS_VERSION which is replaced by \ref __CM_CMSIS_VERSION. @{ */ /** \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+ - 1 for a Cortex-M1 - 3 for a Cortex-M3 - 4 for a Cortex-M4 - 7 for a Cortex-M7 \if ARMv8M - 23 for a Cortex-M23 - 33 for a Cortex-M33 - 35 for a Cortex-M35P - 55 for a Cortex-M55 - 85 for a Cortex-M85 - 2 for a Armv8-M Base Line device - 80 for a Armv8-M Main Line device - 81 for a Armv8.1-M Main Line device \endif 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 /** \cond (ARMSC) */ /** \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 /** \endcond */ /** \cond (STAR) */ /** \brief Contains the core version for a STAR-MC controller. \details This define can be used to differentiate between the various available STAR-MC controllers. Possible values are: - 1 for a STAR-MC1 This define is only available for STAR-MC controllers. Code Example: \code #if defined(__STAR_MC) && (__STAR_MC == 1U) #error Yes, we have a STAR-MC1 controller. #else #error We need a STAR-MC1 controller! #endif \endcode */ #define __STAR_MC /** \endcond */ /** @} */