/** \mainpage Overview CMSIS-Core (Cortex-M) implements the basic run-time system for a Cortex-M device and gives the user access to the processor core and the device peripherals. In detail it defines: - Hardware Abstraction Layer (HAL) for Cortex-M processor registers with standardized definitions for the SysTick, NVIC, System Control Block registers, MPU registers, FPU registers, and core access functions. - System exception names to interface to system exceptions without having compatibility issues. - Methods to organize header files that makes it easy to learn new Cortex-M microcontroller products and improve software portability. This includes naming conventions for device-specific interrupts. - Methods for system initialization to be used by each MCU vendor. For example, the standardized SystemInit() function is essential for configuring the clock system of the device. - Intrinsic functions used to generate CPU instructions that are not supported by standard C functions. - A variable to determine the system clock frequency which simplifies the setup the SysTick timer. The following sections provide details about the CMSIS-Core (Cortex-M): - \ref using_pg describes the project setup and shows a simple program example. \if ARMv8M - \ref using_TrustZone_pg "Using TrustZone® for Armv8-M" describes how to use the security extensions available in the Armv8-M architecture. \endif - \ref templates_pg describes the files of the CMSIS-Core (Cortex-M) in detail and explains how to adapt template files provided by Arm to silicon vendor devices. - \ref coreMISRA_Exceptions_pg describes the violations to the MISRA standard. - \b Reference describe the features and functions of the \ref device_h_pg in detail. - \b Data \b Structures describe the data structures of the \ref device_h_pg in detail. CMSIS-Core (Cortex-M) in ARM::CMSIS Pack ----------------------------- Files relevant to CMSIS-Core (Cortex-M) are present in the following ARM::CMSIS directories: |File/Folder |Content | |------------------------------|------------------------------------------------------------------------| |\b CMSIS\\Documentation\\Core | This documentation | |\b CMSIS\\Core\\Include | CMSIS-Core (Cortex-M) header files (for example core_cm3.h, core_cmInstr.h, etc.) | |\b Device | \ref using_ARM_pg "Arm reference implementations" of Cortex-M devices | |\b Device\\\_Template_Vendor | \ref templates_pg for extension by silicon vendors | \section ref_v6-v8M Processor Support CMSIS supports the complete range of Cortex-M processors and the Armv8-M/v8.1-M architecture including security extensions. \subsection ref_man_sec Cortex-M Generic User Guides The Cortex-M Device Generic User Guides contain the programmers model and detailed information about the core peripherals and are available for: - Cortex-M0 Devices Generic User Guide (Armv6-M architecture) - Cortex-M0+ Devices Generic User Guide (Armv6-M architecture) - Cortex-M3 Devices Generic User Guide (Armv7-M architecture) - Cortex-M4 Devices Generic User Guide (Armv7-M architecture) - Cortex-M7 Devices Generic User Guide (Armv7-M architecture) - Cortex-M23 Devices Generic User Guide (Armv8-M architecture) - Cortex-M33 Devices Generic User Guide (Armv8-M architecture) - Cortex-M55 Devices Generic User Guide (Armv8.1-M architecture) - Cortex-M85 Devices Generic User Guide (Armv8.1-M architecture) CMSIS also supports the following Cortex-M processor variants: - Cortex-M1 is a processor designed specifically for implementation in FPGAs (Armv6-M architecture). - SecurCore SC000 is designed specifically for smartcard and security applications (Armv6-M architecture). - SecurCore SC300 is designed specifically for smartcard and security applications (Armv7-M architecture). - Cortex-M35P is a tamper resistant Cortex-M processor with optional software isolation using TrustZone for Armv8-M. - STAR-MC1 is a variant of Armv8-M with TrustZone designed by Arm China. \subsection ARMv8M Armv8-M and Armv8.1-M Architecture Armv8-M introduces two profiles \b baseline (for power and area constrained applications) and \b mainline (full-featured with optional SIMD, floating-point, and co-processor extensions). Both Armv8-M profiles and Armv8.1-M are supported by CMSIS. The Armv8-M architecture is described in the Armv8-M Architecture Reference Manual. The Armv8.1-M architecture further extends Armv8-M with Helium (the so called M-Profile Vector Extension (MVE)), as well as further instruction set and debug extensions. More information about Armv8.1-M architecture is available under Arm Helium technology. \section tested_tools_sec Tested and Verified Toolchains The \ref templates_pg supplied by Arm have been tested and verified with the following toolchains: - Arm: Arm Compiler 5.06 update 7 (not for Cortex-M23/33/35P/55/85, Armv8-M, Armv8.1-M) - Arm: Arm Compiler 6.16 - Arm: Arm Compiler 6.6.4 (not for Cortex-M0/23/33/35P/55/85, Armv8-M, Armv8.1-M) - GNU: GNU Arm Embedded Toolchain 10-2020-q4-major (10.2.1 20201103) - IAR: IAR ANSI C/C++ Compiler for Arm 8.20.1.14183 */ /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/ /** \page core_revisionHistory Revision History of CMSIS-Core (Cortex-M)
| Version | Description |
|---|---|
| V5.7.0 |
|
| V5.6.0 |
|
| V5.5.0 |
Note: Updating existing projects may need manual user interaction! |
| V5.4.0 |
|
| V5.3.0 |
|
| V5.2.1 |
|
| V5.2.0 |
|
| V5.1.2 |
|
| V5.1.1 |
|
| V5.1.0 |
|
| V5.0.2 |
|
| V5.0.1 |
|
| V5.00 |
|
| V5.00 Beta 6 |
|
| V5.00 Beta 5 |
|
| V5.00 Beta 4 |
|
| V5.00 Beta 2 |
|
| V5.00 Beta 1 |
|
| V4.30 |
|
| V4.20 |
|
| V4.10 |
|
| V4.00 |
|
| V3.40 |
|
| V3.30 |
|
| V3.20 |
|
| V3.01 |
|
| V3.00 |
|
| V2.10 |
|
| V2.00 |
|
| V1.30 |
|
| V1.01 |
|
| V1.01 |
|
| V1.00 |
|