/** \page Using_pg Using CMSIS in Embedded Applications \details To use the CMSIS-CORE the following files are added to the embedded application: - \ref startup_s_pg with reset handler and exception vectors. - \ref system_c_pg with general device configuration (i.e. for clock and BUS setup). - \ref device_h_pg gives access to processor core and all peripherals. \note The files \ref startup_s_pg and \ref system_c_pg may require application specific adaptations and therefore should be copied into the application project folder prior configuration. The \ref device_h_pg is included in all source files that need device access and can be stored on a central include folder that is generic for all projects. The \ref startup_s_pg is executed after reset and calls \ref SystemInit. After the system initialization control is transferred to the C/C++ run-time library which performs initialization and calls the \b main function in the user code. In addition the \ref startup_s_pg 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 \ref system_c_pg performs the setup for the processor clock. The variable \ref SystemCoreClock indicates the CPU clock speed. \ref system_init_gr describes the minimum feature set. In addition the file may contain functions for the memory BUS setup and clock re-configuration. The \ref device_h_pg is the central include file that the application programmer is using in the C source code. It provides the following features: - \ref peripheral_gr provides a standardized register layout for all peripherals. Optionally functions for device-specific peripherals may be available. - \ref NVIC_gr can be accessed with standardized symbols and functions for the Nested Interrupt Vector Controller (NVIC) are provided. - \ref intrinsic_CPU_gr allow to access special instructions, for example for activating sleep mode or the NOP instruction. - \ref intrinsic_SIMD_gr provide access to the DSP-oriented instructions. - \ref SysTick_gr function to configure and start a periodic timer interrupt. - \ref ITM_Debug_gr are functions that allow printf-style I/O via the CoreSight Debug Unit and ITM communication. \image html "CMSIS_CORE_Files_user.png" "CMSIS-CORE User Files" The CMSIS-CORE are device specific. In addition, the \ref startup_s_pg is also compiler vendor specific. The various compiler vendor tool chains may provide folders that contain the CMSIS files for each supported device. For example, the following files are provided in MDK-ARM to support the STM32F10x Connectivity Line device variants:
| File | Description |
|---|---|
| ".\ARM\Startup\ST\STM32F10x\startup_stm32f10x_cl.s" | \ref startup_s_pg for the STM32F10x Connectivity Line device variants. |
| ".\ARM\Startup\ST\STM32F10x\system_stmf10x.c" | \ref system_c_pg for the STM32F10x device families. |
| ".\ARM\INC\ST\STM32F10x\stm32f10x.h" | \ref device_h_pg for the STM32F10x device families. |
| ".\ARM\INC\ST\STM32F10x\system_stm32f10x.h" | \ref system_Device_h_sec for the STM32F10x device families. |
| Folder | Processor | Description |
|---|---|---|
| ".\Device\ARM\ARMCM0" | Cortex-M0 | Contains \b Include and \b Source template files configured for the Cortex-M0 processor.
The device name is ARMCM0 and the name of the \ref device_h_pg is |
| ".\Device\ARM\ARMCM0plus" | Cortex-M0+ | Contains \b Include and \b Source template files configured for the Cortex-M0+ processor.
The device name is ARMCM0plus and the name of the \ref device_h_pg is |
| ".\Device\ARM\ARMCM3" | Cortex-M3 | Contains \b Include and \b Source template files configured for the Cortex-M3 processor.
The device name is ARMCM3 and the name of the \ref device_h_pg is |
| ".\Device\ARM\ARMCM4" | Cortex-M4 | Contains \b Include and \b Source template files configured for the Cortex-M4 processor.
The device name is ARMCM4 and the name of the \ref device_h_pg is |
| ".\Device\ARM\ARMCM7" | Cortex-M7 | Contains \b Include and \b Source template files configured for the Cortex-M7 processor.
The device name is ARMCM7 and the name of the \ref device_h_pg is |
| ".\Device\ARM\ARMSC000" | SecurCore SC000 | Contains \b Include and \b Source template files configured for the SecurCore SC000 processor.
The device name is ARMSC000 and the name of the \ref device_h_pg is |
| ".\Device\ARM\ARMSC300" | SecurCore SC300 | Contains \b Include and \b Source template files configured for the SecurCore SC300 processor.
The device name is ARMSC300 and the name of the \ref device_h_pg is |