/** \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. - \ref using_TrustZone_pg "Using TrustZone® for ARMv8-M" describes how to use the security extensions available in the ARMv8-M architecture. - \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.0.2 | Added macros \ref \__UNALIGNED_UINT16_READ, \ref \__UNALIGNED_UINT16_WRITE.\n Added macros \ref \__UNALIGNED_UINT32_READ, \ref \__UNALIGNED_UINT32_WRITE.\n Set macro \ref \__UNALIGNED_UINT32 to deprecated. |
| V5.0.1 | Added: macro \ref \__PACKED_STRUCT. \n Added: uVisor support. \n |
| V5.00 | Added: Cortex-M23, Cortex-M33 support.\n Added: macro __SAU_PRESENT with __SAU_REGION_PRESENT. \n Replaced: macro __SAU_PRESENT with __SAU_REGION_PRESENT. \n Reworked: SAU register and functions. \n Added: macro \ref \__ALIGNED. \n Updated: function \ref SCB_EnableICache. \n Added: cmsis_compiler.h with compiler specific CMSIS macros, functions, instructions. \n Added: macro \ref \__PACKED. \n Updated: compiler specific include files. \n Updated: core dependant include files. \n Removed: deprecated files core_cmfunc.h, core_cminstr.h, core_cmsimd.h. |
| V5.00 Beta 6 |
Added: SCB_CFSR register bit definitions. \n Added: function \ref NVIC_GetEnableIRQ. \n 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. \n Added: DSP libraries build projects to CMSIS pack. |
| V5.00 Beta 4 |
Updated: ARMv8M device files. \n Corrected: ARMv8MBL interrupts. \n Reworked: NVIC functions. |
| V5.00 Beta 2 |
Changed: ARMv8M SAU regions to 8. \n Changed: moved function \ref TZ_SAU_Setup to file partition_<device>.h. \n Changed: license under Apache-2.0. \n Added: check if macro is defined before use. \n Corrected: function \ref SCB_DisableDCache. \n Corrected: macros \ref \_VAL2FLD, \ref \_FLD2VAL. \n 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.\n Renamed: core\_*.h to lower case.\n Added: function \ref SCB_GetFPUType to all CMSIS cores.\n Added: ARMv8-M support. |
| V4.30 | Corrected: DoxyGen function parameter comments.\n Corrected: IAR toolchain: removed for \ref NVIC_SystemReset the attribute(noreturn).\n Corrected: GCC toolchain: suppressed irrelevant compiler warnings.\n Added: Support files for ARM Compiler v6 (cmsis_armcc_v6.h). |
| V4.20 | Corrected: MISRA-C:2004 violations. \n Corrected: predefined macro for TI CCS Compiler. \n Corrected: function \ref __SHADD16 in arm_math.h. \n Updated: cache functions for Cortex-M7. \n Added: macros \ref _VAL2FLD, \ref _FLD2VAL to core\_*.h. \n Updated: functions \ref __QASX, \ref __QSAX, \ref __SHASX, \ref __SHSAX. \n Corrected: potential bug in function \ref __SHADD16. |
| V4.10 | Corrected: MISRA-C:2004 violations. \n Corrected: intrinsic functions \ref __DSB, \ref __DMB, \ref __ISB. \n Corrected: register definitions for ITCMCR register. \n Corrected: register definitions for \ref CONTROL_Type register. \n Added: functions \ref SCB_GetFPUType, \ref SCB_InvalidateDCache_by_Addr to core_cm7.h. \n Added: register definitions for \ref APSR_Type, \ref IPSR_Type, \ref xPSR_Type register. \n Added: \ref __set_BASEPRI_MAX function to core_cmFunc.h. \n Added: intrinsic functions \ref __RBIT, \ref __CLZ for Cortex-M0/CortexM0+. \n |
| V4.00 | Added: Cortex-M7 support.\n Added: intrinsic functions for \ref __RRX, \ref __LDRBT, \ref __LDRHT, \ref __LDRT, \ref __STRBT, \ref __STRHT, and \ref __STRT \n |
| V3.40 | Corrected: C++ include guard settings.\n |
| V3.30 | Added: COSMIC tool chain support.\n Corrected: GCC __SMLALDX instruction intrinsic for Cortex-M4.\n Corrected: GCC __SMLALD instruction intrinsic for Cortex-M4.\n Corrected: GCC/CLang warnings.\n |
| V3.20 | Added: \ref __BKPT instruction intrinsic.\n Added: \ref __SMMLA instruction intrinsic for Cortex-M4.\n Corrected: \ref ITM_SendChar.\n Corrected: \ref __enable_irq, \ref __disable_irq and inline assembly for GCC Compiler.\n Corrected: \ref NVIC_GetPriority and VTOR_TBLOFF for Cortex-M0/M0+, SC000. \n Corrected: rework of in-line assembly functions to remove potential compiler warnings.\n |
| V3.01 | Added support for Cortex-M0+ processor. \n |
| V3.00 | Added support for GNU GCC ARM Embedded Compiler. \n Added function \ref __ROR.\n Added \ref regMap_pg for TPIU, DWT. \n Added support for \ref core_config_sect "SC000 and SC300 processors".\n Corrected \ref ITM_SendChar function. \n Corrected the functions \ref __STREXB, \ref __STREXH, \ref __STREXW for the GNU GCC compiler section. \n Documentation restructured. |
| V2.10 | Updated documentation.\n Updated CMSIS core include files.\n Changed CMSIS/Device folder structure.\n Added support for Cortex-M0, Cortex-M4 w/o FPU to CMSIS DSP library.\n Reworked CMSIS DSP library examples. |
| V2.00 | Added support for Cortex-M4 processor. |
| V1.30 | Reworked Startup Concept.\n Added additional Debug Functionality.\n Changed folder structure.\n Added doxygen comments.\n 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. |