/** \mainpage Overview
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:
- Hardware Abstraction Layer (HAL) for Cortex-M processor registers with standardized definitions for the SysTick, NVIC, System Control Block registers, MPU registers, FPU registers, and core access functions.
- System exception names to interface to system exceptions without having compatibility issues.
- Methods to organize header files that makes it easy to learn new Cortex-M microcontroller products and improve software portability. This includes naming conventions for device-specific interrupts.
- Methods for system initialization to be used by each MCU vendor. For example, the standardized SystemInit() function is essential for configuring the clock system of the device.
- Intrinsic functions used to generate CPU instructions that are not supported by standard C functions.
- A variable to determine the system clock frequency which simplifies the setup the SysTick timer.
The following sections provide details about the CMSIS-Core (Cortex-M):
- \ref using_pg describes the project setup and shows a simple program example.
\if ARMv8M
- \ref using_TrustZone_pg "Using TrustZone® for Armv8-M" describes how to use the security extensions available in the Armv8-M architecture.
\endif
- \ref templates_pg 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.
- \ref coreMISRA_Exceptions_pg describes the violations to the MISRA standard.
- \b Reference describe the features and functions of the \ref device_h_pg in detail.
- \b Data \b Structures describe the data structures of the \ref device_h_pg in detail.
| Version |
Description |
| V5.7.0 |
- Added: Added new compiler macros __ALIAS and __NO_INIT
|
| V5.6.0 |
- Added: Arm Cortex-M85 cpu support
- Added: Arm China Star-MC1 cpu support
- Updated: system_ARMCM55.c
|
| V5.5.0 |
- Updated GCC LinkerDescription, GCC Assembler startup
- Added ARMv8-M Stack Sealing (to linker, startup) for toolchain ARM, GCC
- Changed C-Startup to default Startup.
Updated Armv8-M Assembler startup to use GAS syntax
Note: Updating existing projects may need manual user interaction!
|
| V5.4.0 |
\if ARMv8M
- Added: Cortex-M55 cpu support
- Enhanced: MVE support for Armv8.1-MML
\endif
- Fixed: Device config define checks
- Added: L1 Cache functions for Armv7-M and later
|
| V5.3.0 |
- Added: Provisions for compiler-independent C startup code.
|
| V5.2.1 |
- Fixed: Compilation issue in cmsis_armclang_ltm.h introduced in 5.2.0
|
| V5.2.0 |
- Added: Cortex-M35P support.
- Added: Cortex-M1 support.
- Added: Armv8.1 architecture support.
- Added: \ref __RESTRICT and \ref __STATIC_FORCEINLINE compiler control macros.
|
| V5.1.2 |
- Removed using get/set built-ins FPSCR in GCC >= 7.2 due to shortcomings.
- Added __NO_RETURN to __NVIC_SystemReset() to silence compiler warnings.
- Added support for Cortex-M1 (beta).
- Removed usage of register keyword.
- Added defines for EXC_RETURN, FNC_RETURN and integrity signature values.
- Enhanced MPUv7 API with defines for memory access attributes.
|
| V5.1.1 |
- Aligned MSPLIM and PSPLIM access functions along supported compilers.
|
| V5.1.0 |
- Added MPU Functions for ARMv8-M for Cortex-M23/M33.
- Moved __SSAT and __USAT intrinsics to CMSIS-Core.
- Aligned __REV, __REV16 and __REVSH intrinsics along supported compilers.
|
| V5.0.2 |
- Added macros \ref \__UNALIGNED_UINT16_READ, \ref \__UNALIGNED_UINT16_WRITE.
- Added macros \ref \__UNALIGNED_UINT32_READ, \ref \__UNALIGNED_UINT32_WRITE.
- Deprecated macro \ref \__UNALIGNED_UINT32.
- Changed \ref version_control_gr macros to be core agnostic.
- Added \ref mpu_functions for Cortex-M0+/M3/M4/M7.
|
| V5.0.1 |
- Added: macro \ref \__PACKED_STRUCT.
- Added: uVisor support.
|
| V5.00 |
- Added: Cortex-M23, Cortex-M33 support.
- Added: macro __SAU_PRESENT with __SAU_REGION_PRESENT.
- Replaced: macro __SAU_PRESENT with __SAU_REGION_PRESENT.
- Reworked: SAU register and functions.
- Added: macro \ref \__ALIGNED.
- Updated: function \ref SCB_EnableICache.
- Added: cmsis_compiler.h with compiler specific CMSIS macros, functions, instructions.
- Added: macro \ref \__PACKED.
- Updated: compiler specific include files.
- Updated: core dependant include files.
- Removed: deprecated files core_cmfunc.h, core_cminstr.h, core_cmsimd.h.
|
V5.00 Beta 6 |
- Added: SCB_CFSR register bit definitions.
- Added: function \ref NVIC_GetEnableIRQ.
- Updated: core instruction macros \ref \__NOP, \ref \__WFI, \ref \__WFE, \ref \__SEV for toolchain GCC.
|
V5.00 Beta 5 |
- Moved: DSP libraries from CMSIS/DSP/Lib to CMSIS/Lib.
- Added: DSP libraries build projects to CMSIS pack.
|
V5.00 Beta 4 |
- Updated: ARMv8M device files.
- Corrected: ARMv8MBL interrupts.
- Reworked: NVIC functions.
|
V5.00 Beta 2 |
\if ARMv8M
- Changed: ARMv8M SAU regions to 8.
- Changed: moved function \ref TZ_SAU_Setup to file partition_<device>.h.
\endif
- Changed: license under Apache-2.0.
- Added: check if macro is defined before use.
- Corrected: function \ref SCB_DisableDCache.
- Corrected: macros \ref \_VAL2FLD, \ref \_FLD2VAL.
- Added: NVIC function virtualization with macros \ref CMSIS_NVIC_VIRTUAL and \ref CMSIS_VECTAB_VIRTUAL.
|
V5.00 Beta 1 |
- Renamed: cmsis_armcc_V6.h to cmsis_armclang.h.
- Renamed: core\_*.h to lower case.
- Added: function \ref SCB_GetFPUType to all CMSIS cores.
- Added: ARMv8-M support.
|
| V4.30 |
- Corrected: DoxyGen function parameter comments.
- Corrected: IAR toolchain: removed for \ref NVIC_SystemReset the attribute(noreturn).
- Corrected: GCC toolchain: suppressed irrelevant compiler warnings.
- Added: Support files for Arm Compiler v6 (cmsis_armcc_v6.h).
|
| V4.20 |
- Corrected: MISRA-C:2004 violations.
- Corrected: predefined macro for TI CCS Compiler.
- Corrected: function \ref __SHADD16 in arm_math.h.
- Updated: cache functions for Cortex-M7.
- Added: macros \ref _VAL2FLD, \ref _FLD2VAL to core\_*.h.
- Updated: functions \ref __QASX, \ref __QSAX, \ref __SHASX, \ref __SHSAX.
- Corrected: potential bug in function \ref __SHADD16.
|
| V4.10 |
- Corrected: MISRA-C:2004 violations.
- Corrected: intrinsic functions \ref __DSB, \ref __DMB, \ref __ISB.
- Corrected: register definitions for ITCMCR register.
- Corrected: register definitions for \ref CONTROL_Type register.
- Added: functions \ref SCB_GetFPUType, \ref SCB_InvalidateDCache_by_Addr to core_cm7.h.
- Added: register definitions for \ref APSR_Type, \ref IPSR_Type, \ref xPSR_Type register.
- Added: \ref __set_BASEPRI_MAX function to core_cmFunc.h.
- Added: intrinsic functions \ref __RBIT, \ref __CLZ for Cortex-M0/CortexM0+.
|
| V4.00 |
- Added: Cortex-M7 support.
- Added: intrinsic functions for \ref __RRX, \ref __LDRBT, \ref __LDRHT, \ref __LDRT, \ref __STRBT, \ref __STRHT, and \ref __STRT
|
| V3.40 |
- Corrected: C++ include guard settings.
|
| V3.30 |
- Added: COSMIC tool chain support.
- Corrected: GCC __SMLALDX instruction intrinsic for Cortex-M4.
- Corrected: GCC __SMLALD instruction intrinsic for Cortex-M4.
- Corrected: GCC/CLang warnings.
|
| V3.20 |
- Added: \ref __BKPT instruction intrinsic.
- Added: \ref __SMMLA instruction intrinsic for Cortex-M4.
- Corrected: \ref ITM_SendChar.
- Corrected: \ref __enable_irq, \ref __disable_irq and inline assembly for GCC Compiler.
- Corrected: \ref NVIC_GetPriority and VTOR_TBLOFF for Cortex-M0/M0+, SC000.
- Corrected: rework of in-line assembly functions to remove potential compiler warnings.
|
| V3.01 |
- Added support for Cortex-M0+ processor.
|
| V3.00 |
- Added support for GNU GCC ARM Embedded Compiler.
- Added function \ref __ROR.
- Added \ref regMap_pg for TPIU, DWT.
- Added support for \ref core_config_sect "SC000 and SC300 processors".
- Corrected \ref ITM_SendChar function.
- Corrected the functions \ref __STREXB, \ref __STREXH, \ref __STREXW for the GNU GCC compiler section.
- Documentation restructured.
|
| V2.10 |
- Updated documentation.
- Updated CMSIS core include files.
- Changed CMSIS/Device folder structure.
- Added support for Cortex-M0, Cortex-M4 w/o FPU to CMSIS DSP library.
- Reworked CMSIS DSP library examples.
|
| V2.00 |
- Added support for Cortex-M4 processor.
|
| V1.30 |
- Reworked Startup Concept.
- Added additional Debug Functionality.
- Changed folder structure.
- Added doxygen comments.
- Added definitions for bit.
|
| V1.01 |
- Added support for Cortex-M0 processor.
|
| V1.01 |
- Added intrinsic functions for \ref __LDREXB, \ref __LDREXH, \ref __LDREXW, \ref __STREXB, \ref __STREXH, \ref __STREXW, and \ref __CLREX
|
| V1.00 |
- Initial Release for Cortex-M3 processor.
|
*/