<divclass="textblock"><p>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:</p>
<li><b>Hardware Abstraction Layer (HAL)</b> for Cortex-M processor registers with standardized definitions for the SysTick, NVIC, System Control Block registers, MPU registers, FPU registers, and core access functions.</li>
<li><b>System exception names</b> to interface to system exceptions without having compatibility issues.</li>
<li><b>Methods to organize header files</b> that makes it easy to learn new Cortex-M microcontroller products and improve software portability. This includes naming conventions for device-specific interrupts.</li>
<li><b>Methods for system initialization</b> to be used by each MCU vendor. For example, the standardized <aclass="el"href="group__system__init__gr.html#ga93f514700ccf00d08dbdcff7f1224eb2"title="Function to Initialize the system. ">SystemInit()</a> function is essential for configuring the clock system of the device.</li>
<li><aclass="el"href="using_pg.html">Using CMSIS in Embedded Applications</a> describes the project setup and shows a simple program example.</li>
<li><aclass="el"href="using_TrustZone_pg.html">Using TrustZone® for Armv8-M</a> describes how to use the security extensions available in the Armv8-M architecture.</li>
<li><aclass="el"href="templates_pg.html">CMSIS-Core Device Templates</a> 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.</li>
<li><aclass="el"href="coreMISRA_Exceptions_pg.html">MISRA-C Deviations</a> describes the violations to the MISRA standard.</li>
<li><ahref="Modules.html"><b>Reference</b></a> describe the features and functions of the <aclass="el"href="device_h_pg.html">Device Header File <device.h></a> in detail.</li>
<li><ahref="Annotated.html"><b>Data</b><b>Structures</b></a> describe the data structures of the <aclass="el"href="device_h_pg.html">Device Header File <device.h></a> in detail.</li>
<td><b>Device\_Template_Vendor</b></td><td><aclass="el"href="templates_pg.html">CMSIS-Core Device Templates</a> for extension by silicon vendors </td></tr>
<p>CMSIS supports the complete range of <ahref="http://www.arm.com/products/processors/cortex-m/index.php"target="_blank"><b>Cortex-M processors</b></a> (with exception of Cortex-M1) and the <ahref="http://www.arm.com/products/processors/instruction-set-architectures/armv8-m-architecture.php"target="_blank"><b>Armv8-M architecture</b></a> including security extensions.</p>
<h2><aclass="anchor"id="ref_man_sec"></a>
Cortex-M Reference Manuals</h2>
<p>The Cortex-M Device Generic User Guides contain the programmers model and detailed information about the core peripherals and are available for:</p>
<p>Armv8-M introduces two profiles <b>baseline</b> (for power and area constrained applications) and <b>mainline</b> (full-featured with optional SIMD, floating-point, and co-processor extensions). Both Armv8-M profiles are supported by CMSIS.</p>
<p>The Armv8-M Architecture is described in the <ahref="http://developer.arm.com/products/architecture/m-profile/docs/ddi0553/latest/armv8-m-architecture-reference-manual"target="_blank"><b>Armv8-M Architecture Reference Manual</b></a>.</p>
<p>The <aclass="el"href="templates_pg.html">CMSIS-Core Device Templates</a> supplied by Arm have been tested and verified with the following toolchains:</p>