Arm supplies CMSIS-Core device template files for the all supported Cortex-A processors and various compiler vendors. Refer to the list of Tested and Verified Toolchains for compliance.
These CMSIS-Core device template files include the following:
The CMSIS-Core processor files provided by Arm are in the directory .\CMSIS\Core\Include. These header files define all processor specific attributes do not need any modifications.
The core_<cpu>.h
defines the core peripherals and provides helper functions that access the core registers.
Header File | Target Processor Core |
---|---|
📂 CMSIS/Core/Include | CMSIS-Core include folder (See on GitHub) |
┗ 📄 core_ca.h | Generics for all supported Cortex-A processors |
The Cortex_DFP pack provides generic device definitions for supported Arm Cortex-A cores and contains corresponding CMSIS-Core device files.
To simplify the creation of CMSIS-Core device files, the following template files are provided that should be extended by the silicon vendor to reflect the actual device and device peripherals. Silicon vendors add to these template files the following information:
Template File | Description |
---|---|
📂 CMSIS/Core/Template/Device_A | Folder with CMSIS-Core device file templates (See on GitHub) |
┣ 📂 Config | Template configuration files |
┣ 📄 Device_ac6.sct | Linker scatter file template for Arm C/C++ Compiler |
┗ 📄 mem_Device.h | Memory Configuration Files mem_<device>.h template |
┣ 📂 Include | Template header files |
┣ 📄 Device.h | Device Header File <Device.h> template |
┗ 📄 system_Device.h | system_Device.h Template File |
┗ 📂 Source | Template C files |
┣ 📄 mmu_Device.c | Memory Management Unit Files mmu_<device>.c template |
┣ 📄 startup_Device.c | Startup File startup_<Device>.c template |
┗ 📄 system_Device.c | system_Device.c Template File |
Adapt Template Files to a Device
The following steps describe how to adopt the template files to a specific device or device family. Copy the complete all files in the template directory and replace:
Each template file contains comments that start with ToDo: that describe a required modification. The template files contain place holders:
Placeholder | To be replaced with |
---|---|
<Device> | The specific device name or device family name, for example LPC17xx |
<DeviceInterrupt> | The specific interrupt name of the device, for example TIM1 for Timer 1 interrupt |
<DeviceAbbreviation> | Short name or abbreviation of the device family, for example LPC |
Cortex-A# | The specific Cortex-A processor name, for example Cortex-A9 |
The device configuration of the template files is described in detail on the following pages: