CMSIS-Core (Cortex-M)
Version 5.6.0
CMSIS-Core support for Cortex-M processor-based devices
|
To use the CMSIS-Core (Cortex-M) the following files are added to the embedded application:
The Startup File startup_<device>.c (or Startup File startup_<device>.s (deprecated)) is executed after reset and calls SystemInit. After the system initialization control is transferred to the C/C++ run-time library which performs initialization and calls the main function in the user code. In addition the Startup File startup_<device>.c (or Startup File startup_<device>.s (deprecated)) contains all exception and interrupt vectors and implements a default function for every interrupt. It may also contain stack and heap configurations for the user application.
The System Configuration Files system_<device>.c and system_<device>.h performs the setup for the processor clock. The variable SystemCoreClock indicates the CPU clock speed. System and Clock Configuration describes the minimum feature set. In addition the file may contain functions for the memory BUS setup and clock re-configuration.
The Device Header File <device.h> is the central include file that the application programmer is using in the C source code. It provides the following features:
CMSIS-Pack provides the #define CMSIS_header_file in RTE_Components.h which gives you access to this device.h file.
The CMSIS-Core (Cortex-M) system files are device specific. In addition, the deprecated Startup File startup_<device>.s (deprecated) is also compiler vendor specific. The versions provided by CMSIS are only generic templates. The adopted versions for a concrete device are typically provided by the device vendor through the according device family pack (DFP).
For example, the following files are provided by the STM32F10x device family pack:
File | Description |
---|---|
".\Device\Source\ARM\startup_stm32f10x_cl.s" | Startup File startup_<device>.s (deprecated) for the STM32F10x Connectivity Line device variants. |
".\Device\Source\system_stmf10x.c" | System Configuration Files system_<device>.c and system_<device>.h for the STM32F10x device families. |
".\Device\Include\stm32f10x.h" | Device Header File <device.h> for the STM32F10x device families. |
".\Device\Include\system_stm32f10x.h" | system_Device.h Template File for the STM32F10x device families. |
Thereafter, the functions described under Reference can be used in the application.
Examples