]> begriffs open source - cmsis/blob - CMSIS/DoxyGen/Core/src/mainpage.md
Reworked CMSIS-Core(M) and Core(A) docs for CMSIS 6. (#47)
[cmsis] / CMSIS / DoxyGen / Core / src / mainpage.md
1 # Overview {#mainpage}
2
3 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.
4
5 In detail it defines:
6  - **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.
7  - **System exception names** to interface to system exceptions without having compatibility issues.
8  - **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.
9  - **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.
10  - **Intrinsic functions** used to generate CPU instructions that are not supported by standard C functions.
11  - A variable to determine the **system clock frequency** which simplifies the setup the SysTick timer.
12
13
14 The following sections provide details about the CMSIS-Core (Cortex-M):
15  - \ref using_pg explains the project setup and shows a simple program example.
16 \if ARMv8M
17  - \ref using_TrustZone_pg "Using TrustZone® for Armv8-M" describes how to use the security extensions available in the Armv8-M architecture.
18 \endif
19  - \ref cmsis_core_files 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.
20  - \ref coreMISRA_Exceptions_pg describes the violations to the MISRA standard.
21  - [API Reference](modules.html) describes the features and functions of the \ref device_h_pg in detail.
22  - [Data Structures](annotated.html) describe the data structures of the \ref device_h_pg in detail.
23
24 ## Access to CMSIS-Core (Cortex-M)
25
26 CMSIS-Core is actively maintained in [CMSIS 6 GitHub repository](https://github.com/ARM-software/CMSIS_6) and released as part of the [CMSIS Software Pack](../../General/html/cmsis_pack.html).
27
28 The following directories and files relevant to CMSIS-Core (Cortex-M) are present in the **ARM::CMSIS** Pack:
29
30 Directory                         | Content
31 :---------------------------------|:------------------------------------------------------------------------
32 📂 CMSIS                          | CMSIS Base software components folder
33  â”£ ðŸ“‚ Documentation/Core          | A local copy of this CMSIS-Core (M) documentation
34  â”— ðŸ“‚ Core                        | CMSIS-Core files
35     â”£ ðŸ“‚ Include        | \ref cmsis_processor_files.
36  &emsp;&emsp;&nbsp; â”— ðŸ“‚ m-profile| Header files specific for Arm M-Profile.<br/> See \ref cmsis_compiler_files and \ref cmsis_feature_files.
37  &emsp;&nbsp; â”— ðŸ“‚ Template       | \ref cmsis_template_files
38
39 ## Processor Support {#ref_v6-v8M}
40
41 CMSIS-Core supports the complete range of [Cortex-M processors](https://www.arm.com/products/silicon-ip-cpu?families=cortex-m&showall=true).
42
43 \anchor ref_man_sec
44 **Cortex-M Generic User Guides**
45
46 Following Cortex-M Device Generic User Guides contain the programmers model and detailed information about the core peripherals:
47  - [Cortex-M0 Devices Generic User Guide (Armv6-M architecture)](https://developer.arm.com/documentation/dui0497/latest/)
48  - [Cortex-M0+ Devices Generic User Guide (Armv6-M architecture)](https://developer.arm.com/documentation/dui0662/latest/)
49  - [Cortex-M3 Devices Generic User Guide (Armv7-M architecture)](https://developer.arm.com/documentation/dui0552/latest/)
50  - [Cortex-M4 Devices Generic User Guide (Armv7-M architecture)](https://developer.arm.com/documentation/dui0553/latest/)
51  - [Cortex-M7 Devices Generic User Guide (Armv7-M architecture)](https://developer.arm.com/documentation/dui0646/latest/)
52  - [Cortex-M23 Devices Generic User Guide (Armv8-M architecture)](https://developer.arm.com/documentation/dui1095/latest/)
53  - [Cortex-M33 Devices Generic User Guide (Armv8-M architecture)](https://developer.arm.com/documentation/100235/latest/)
54  - [Cortex-M55 Devices Generic User Guide (Armv8.1-M architecture)](https://developer.arm.com/documentation/101273/latest/)
55  - [Cortex-M85 Devices Generic User Guide (Armv8.1-M architecture)](https://developer.arm.com/documentation/101928/latest/)
56
57 CMSIS-Core also supports the following Cortex-M processor variants:
58 - [Cortex-M1](https://developer.arm.com/products/processors/cortex-m/cortex-m1) is a processor designed specifically for implementation in FPGAs (Armv6-M architecture).
59 - [SecurCore SC000](https://developer.arm.com/products/processors/cortex-m/sc000-processor) is designed specifically for smartcard and security applications (Armv6-M architecture).
60 - [SecurCore SC300](https://developer.arm.com/products/processors/cortex-m/sc300-processor) is designed specifically for smartcard and security applications (Armv7-M architecture).
61 - [Cortex-M35P](https://developer.arm.com/products/processors/cortex-m/cortex-m35p) is a tamper resistant Cortex-M processor with optional software isolation using TrustZone for Armv8-M.
62 - [STAR-MC1](https://www.armchina.com/mountain?infoId=160) is a variant of Armv8-M with TrustZone designed by Arm China.
63
64 \anchor ARMv8M
65 **Armv8-M and Armv8.1-M Architecture**
66
67 Armv8-M introduces two profiles **baseline** (for power and area constrained applications) and **mainline** (full-featured with optional SIMD, floating-point, and co-processor extensions). Both Armv8-M profiles and Armv8.1-M are supported by CMSIS.
68
69 The Armv8-M architecture is described in the [Armv8-M Architecture Reference Manual](https://developer.arm.com/documentation/ddi0553/latest/).
70
71 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.
72
73 More information about Armv8.1-M architecture is available under [Arm Helium technology](https://developer.arm.com/technologies/helium).
74
75 ##  Tested and Verified Toolchains {#tested_tools_sec}
76
77 The \ref cmsis_core_files supplied by Arm have been tested and verified with the following toolchains:
78  - Arm: Arm Compiler 5.06 update 7 (not for Cortex-M23/33/35P/55/85, Armv8-M, Armv8.1-M)
79  - Arm: Arm Compiler 6.16
80  - Arm: Arm Compiler 6.6.4 (not for Cortex-M0/23/33/35P/55/85, Armv8-M, Armv8.1-M)
81  - GNU: GNU Arm Embedded Toolchain 10-2020-q4-major (10.2.1 20201103)
82  - IAR: IAR ANSI C/C++ Compiler for Arm 8.20.1.14183