CMSIS-CORE
Version 3.20
CMSIS-CORE support for Cortex-M processor-based devices
|
ARM supplies CMSIS-CORE template files for the all supported Cortex-M processors and various compiler vendors. Refer to the list of Tested and Verified Toolchains for compliancy. These template files include the following:
The detailed file structure of the CMSIS-CORE is shown in the following picture.
The CMSIS-CORE template files should be extended by the silicon vendor to reflect the actual device and device peripherals. Silicon vendors add in this context the:
Template File | Description |
---|---|
".\Device_Template_Vendor\Vendor\Device\Source\ARM\startup_Device.s" | Startup file template for ARM C/C++ Compiler. |
".\Device_Template_Vendor\Vendor\Device\Source\GCC\startup_Device.s" | Startup file template for GNU GCC ARM Embedded Compiler. |
".\Device_Template_Vendor\Vendor\Device\Source\G++\startup_Device.s" | Startup file template for GNU Sourcery G++ Compiler. |
".\Device_Template_Vendor\Vendor\Device\Source\IAR\startup_Device.s" | Startup file template for IAR C/C++ Compiler. |
".\Device_Template_Vendor\Vendor\Device\Source\system_Device.c" | Generic system_Device.c file for system configuration (i.e. processor clock and memory bus system). |
".\Device_Template_Vendor\Vendor\Device\Include\Device.h" | Generic device header file. Needs to be extended with the device-specific peripheral registers. Optionally functions that access the peripherals can be part of that file. |
".\Device_Template_Vendor\Vendor\Device\Include\system_Device.h" | Generic system device configuration include file. |
In addition ARM provides the following core header files that do not need any modifications.
Core Header Files | Description |
---|---|
core_<cpu>.h | Defines the core peripherals and provides helper functions that access the core registers. This file is available for all supported processors:
|
core_cmInstr.h | Defines intrinsic functions to access special Cortex-M instructions. |
core_cmFunc.h | Defines functions to access the Cortex-M core peripherals. |
core_cm4_simd.h | Defines intrinsic functions to access the Cortex-M4 SIMD instructions. |
Copy the complete folder including files and replace:
Each template file contains comments that start with ToDo: that describe a required modification. The template files contain placeholders:
Placeholder | Replaced with |
---|---|
<Device> | the specific device name or device family name; i.e. LPC17xx. |
<DeviceInterrupt> | a specific interrupt name of the device; i.e. TIM1 for Timer 1. |
<DeviceAbbreviation> | short name or abbreviation of the device family; i.e. LPC. |
Cortex-M# | the specific Cortex-M processor name; i.e. Cortex-M3. |
The adaption of the template files is described in detail on the following pages: