]> begriffs open source - cmsis/blob - CMSIS/DoxyGen/Core/src/Overview.txt
Merge pull request #43 from ReinhardKeil/develop
[cmsis] / CMSIS / DoxyGen / Core / src / Overview.txt
1 /** \mainpage Overview\r
2 \r
3 CMSIS-CORE implements the basic run-time system for a Cortex-M device and gives the user access to the processor core and the device peripherals.\r
4 In detail it defines:\r
5  - <b>Hardware Abstraction Layer (HAL)</b> for Cortex-M processor registers with standardized  definitions for the SysTick, NVIC, System Control Block registers, MPU registers, FPU registers, and core access functions.\r
6  - <b>System exception names</b> to interface to system exceptions without having compatibility issues.\r
7  - <b>Methods to organize header files</b> that makes it easy to learn new Cortex-M microcontroller products and improve software portability. This includes naming conventions for device-specific interrupts.\r
8  - <b>Methods for system initialization</b> to be used by each MCU vendor. For example, the standardized SystemInit() function is essential for configuring the clock system of the device.\r
9  - <b>Intrinsic functions</b> used to generate CPU instructions that are not supported by standard C functions.\r
10  - A variable to determine the <b>system clock frequency</b> which simplifies the setup the SysTick timer.\r
11 \r
12 \r
13 The following sections provide details about the CMSIS-CORE:\r
14  - \ref Using_pg describes the project setup and shows a simple program example.\r
15  - \ref Using_TrustZone_pg "Using TrustZone&reg; for ARMv8-M" describes how to use the security extensions available in the ARMv8-M architecture.\r
16  - \ref Templates_pg describes the files of the CMSIS-CORE in detail and explains how to adapt template files provided by ARM to silicon vendor devices.\r
17  - \ref CORE_MISRA_Exceptions_pg describes the violations to the MISRA standard.\r
18  - <a href="Modules.html">\b Reference </a> describe the features and functions of the \ref device_h_pg in detail.\r
19  - <a href="Annotated.html">\b Data \b Structures </a> describe the data structures of the \ref device_h_pg in detail.\r
20     \r
21 <hr>\r
22 \r
23 CMSIS-CORE in ARM::CMSIS Pack\r
24 -----------------------------\r
25 \r
26 Files relevant to CMSIS-CORE are present in the following <b>ARM::CMSIS</b> directories:\r
27 |File/Folder                   |Content                                                                 |\r
28 |------------------------------|------------------------------------------------------------------------|\r
29 |\b CMSIS\\Documentation\\Core | This documentation                                                     |\r
30 |\b CMSIS\\Include             | CMSIS-CORE header files (for example core_cm3.h, core_cmInstr.h, etc.) |\r
31 |\b Device                     | \ref Using_ARM_pg "ARM reference implementations" of Cortex-M devices  |\r
32 |\b Device\\\_Template_Vendor  | \ref Templates_pg for extension by silicon vendors                     |\r
33 \r
34 <hr>\r
35 \r
36 \section ref_v6-v8M Cortex-M and ARMv8-M\r
37 \r
38 CMSIS supports the complete range of <a href="http://www.arm.com/products/processors/cortex-m/index.php" target="_blank"><b>Cortex-M processors</b></a> (with exception of Cortex-M1) and \r
39 the <a href="http://www.arm.com/products/processors/instruction-set-architectures/armv8-m-architecture.php" target="_blank"><b>ARMv8-M architecture</b></a> including security extensions.\r
40 ARMv8-M introduces two profiles \b Baseline (for power and area constrained applications) and \b Mainline (full-featured with optional SIMD, floating-point, and co-processor extensions).\r
41 Both ARMv8-M profiles are supported by CMSIS.\r
42 \r
43 \subsection ref_man_sec Cortex-M Reference Manuals\r
44 \r
45 The Cortex-M Reference Manuals are generic user guides for devices that implement the various ARM Cortex-M processors. \r
46 These manuals contain the programmers model and detailed information about the core peripherals.\r
47 \r
48 - <a href="http://infocenter.arm.com/help/topic/com.arm.doc.dui0497a/DUI0497A_cortex_m0_r0p0_generic_ug.pdf" target="_blank"><b>Cortex-M0 Devices Generic User Guide</b></a> (ARMv6-M architecture)\r
49 - <a href="http://infocenter.arm.com/help/topic/com.arm.doc.dui0662b/DUI0662B_cortex_m0p_r0p1_dgug.pdf" target="_blank"><b>Cortex-M0+ Devices Generic User Guide</b></a> (ARMv6-M architecture)\r
50 - <a href="http://infocenter.arm.com/help/topic/com.arm.doc.dui0552a/DUI0552A_cortex_m3_dgug.pdf" target="_blank"><b>Cortex-M3 Devices Generic User Guide</b></a> (ARMv7-M architecture)\r
51 - <a href="http://infocenter.arm.com/help/topic/com.arm.doc.dui0553a/DUI0553A_cortex_m4_dgug.pdf" target="_blank"><b>Cortex-M4 Devices Generic User Guide</b></a> (ARMv7-M architecture)\r
52 - <a href="http://infocenter.arm.com/help/topic/com.arm.doc.dui0646a/DUI0646A_cortex_m7_dgug.pdf" target="_blank"><b>Cortex-M7 Devices Generic User Guide</b></a> (ARMv7-M architecture)\r
53 \r
54     \r
55 <hr>\r
56 \r
57 \section tested_tools_sec Tested and Verified Toolchains\r
58 \r
59 The CMSIS-CORE \ref Templates_pg supplied by ARM have been tested and verified with the following toolchains:\r
60 \todo add version information for ARMCC compilers, verify compiler versions\r
61  - ARM: MDK-ARM Version 5.16\r
62  - GNU: GNU Tools ARM Embedded 4.9 2015.q2\r
63  - IAR: IAR Embedded Workbench Kickstart Edition V6.10\r
64 \r
65 <hr>\r
66 */\r
67 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/\r
68 /**\r
69 \r
70 \page core_revisionHistory Revision History of CMSIS-CORE\r
71 \r
72 <table class="cmtable" summary="Core Exception Name">\r
73     <tr>\r
74       <th>Version</th>\r
75       <th>Description</th>\r
76     </tr>\r
77     <tr>\r
78       <td>V5.00 - Beta 2</td>\r
79       <td>\r
80          Changed: ARMv8M SAU regions to 8. \n\r
81          Changed: moved function \ref TZ_SAU_Setup to file partition_&lt;device&gt;.h. \n\r
82          Changed: license under Apache-2.0. \n\r
83          Added: check if macro is defined before use. \n\r
84          Corrected: function \ref SCB_DisableDCache. \n\r
85          Corrected: macros \ref \_VAL2FLD, \ref \_FLD2VAL.\r
86                  Added: NVIC function virtualization with macros \ref CMSIS_NVIC_VIRTUAL and \ref CMSIS_VECTAB_VIRTUAL.\r
87       </td>\r
88     </tr>\r
89     <tr>\r
90       <td>V5.00 - Beta</td>\r
91       <td>\r
92          Renamed: cmsis_armcc_V6.h to cmsis_armclang.h.\n\r
93          Renamed: core\_*.h to lower case.\n\r
94          Added: function \ref SCB_GetFPUType to all CMSIS cores.\n\r
95          Added: ARMv8-M support.\r
96        </td>\r
97     </tr>\r
98     <tr>\r
99       <td>V4.30</td>\r
100       <td>\r
101          Corrected: DoxyGen function parameter comments.\n\r
102          Corrected: IAR toolchain: removed for \ref NVIC_SystemReset the attribute(noreturn).\n\r
103          Corrected: GCC toolchain: suppressed irrelevant compiler warnings.\n\r
104          Added: Support files for ARM Compiler v6 (cmsis_armcc_v6.h).\r
105       </td>\r
106     </tr>\r
107     <tr>\r
108       <td>V4.20</td>\r
109       <td>\r
110          Corrected: MISRA-C:2004 violations. \n   \r
111          Corrected: predefined macro for TI CCS Compiler. \n\r
112          Corrected: function \ref __SHADD16 in arm_math.h. \n\r
113          Updated: cache functions for Cortex-M7. \n\r
114          Added: macros \ref _VAL2FLD, \ref _FLD2VAL to core\_*.h. \n\r
115          Updated: functions \ref __QASX, \ref __QSAX, \ref __SHASX, \ref __SHSAX. \n\r
116                  Corrected: potential bug in function \ref __SHADD16.\r
117           </td>\r
118     </tr>\r
119     <tr>\r
120       <td>V4.10</td>\r
121       <td>\r
122          Corrected: MISRA-C:2004 violations. \n   \r
123          Corrected: intrinsic functions \ref __DSB, \ref __DMB, \ref __ISB. \n\r
124          Corrected: register definitions for ITCMCR register. \n\r
125          Corrected: register definitions for \ref CONTROL_Type register. \n\r
126          Added: functions \ref SCB_GetFPUType, \ref SCB_InvalidateDCache_by_Addr to core_cm7.h. \n\r
127          Added: register definitions for \ref APSR_Type, \ref IPSR_Type, \ref xPSR_Type register. \n\r
128          Added: \ref __set_BASEPRI_MAX function to core_cmFunc.h. \n\r
129          Added: intrinsic functions \ref __RBIT, \ref __CLZ  for Cortex-M0/CortexM0+. \n\r
130           </td>\r
131     </tr>\r
132     <tr>\r
133       <td>V4.00</td>\r
134       <td>\r
135              Added: Cortex-M7 support.\n         \r
136          Added: intrinsic functions for \ref __RRX, \ref __LDRBT, \ref __LDRHT, \ref __LDRT, \ref __STRBT, \ref __STRHT, and \ref __STRT  \n\r
137           </td>\r
138     </tr>\r
139     <tr>\r
140       <td>V3.40</td>\r
141       <td>Corrected: C++ include guard settings.\n        \r
142           </td>\r
143     </tr>\r
144     <tr>\r
145       <td>V3.30</td>\r
146       <td>Added: COSMIC tool chain support.\n\r
147           Corrected: GCC __SMLALDX instruction intrinsic for Cortex-M4.\n\r
148           Corrected: GCC __SMLALD instruction intrinsic for Cortex-M4.\n\r
149           Corrected: GCC/CLang warnings.\n        \r
150           </td>\r
151     </tr>\r
152     <tr>\r
153       <td>V3.20</td>\r
154       <td>Added: \ref __BKPT instruction intrinsic.\n\r
155           Added: \ref __SMMLA instruction intrinsic for Cortex-M4.\n\r
156           Corrected: \ref ITM_SendChar.\n         \r
157           Corrected: \ref __enable_irq, \ref __disable_irq and inline assembly for GCC Compiler.\n        \r
158           Corrected: \ref NVIC_GetPriority and VTOR_TBLOFF for Cortex-M0/M0+, SC000. \n\r
159           Corrected: rework of in-line assembly functions to remove potential compiler warnings.\n        \r
160       </td>\r
161     </tr>\r
162     <tr>\r
163       <td>V3.01</td>\r
164       <td>Added support for Cortex-M0+ processor. \n\r
165           </td>\r
166     </tr>\r
167     <tr>\r
168       <td>V3.00</td>\r
169       <td>Added support for GNU GCC ARM Embedded Compiler. \n\r
170                   Added function \ref __ROR.\n\r
171                   Added \ref RegMap_pg for TPIU, DWT. \n\r
172                   Added support for \ref core_config_sect "SC000 and SC300 processors".\n\r
173                   Corrected \ref ITM_SendChar function. \n\r
174                   Corrected the functions \ref __STREXB, \ref __STREXH, \ref __STREXW for the GNU GCC compiler section. \n\r
175                   Documentation restructured.\r
176           </td>\r
177     </tr>\r
178     <tr>\r
179       <td>V2.10</td>\r
180       <td>Updated documentation.\n\r
181           Updated CMSIS core include files.\n\r
182           Changed CMSIS/Device folder structure.\n\r
183           Added support for Cortex-M0, Cortex-M4 w/o FPU to CMSIS DSP library.\n\r
184           Reworked CMSIS DSP library examples.\r
185       </td>\r
186     </tr>\r
187     <tr>\r
188       <td>V2.00</td>\r
189       <td>Added support for Cortex-M4 processor.</td>\r
190     </tr>\r
191     <tr>\r
192       <td>V1.30</td>\r
193       <td>Reworked Startup Concept.\n\r
194           Added additional Debug Functionality.\n\r
195           Changed folder structure.\n\r
196           Added doxygen comments.\n\r
197           Added definitions for bit.\r
198       </td>\r
199     </tr>\r
200     <tr>\r
201       <td>V1.01</td>\r
202       <td>Added support for Cortex-M0 processor.</td>\r
203     </tr>\r
204     <tr>\r
205       <td>V1.01</td>\r
206       <td>Added intrinsic functions for \ref __LDREXB, \ref __LDREXH, \ref __LDREXW, \ref __STREXB, \ref __STREXH, \ref __STREXW, and \ref __CLREX</td>\r
207     </tr>\r
208     <tr>\r
209       <td>V1.00</td>\r
210       <td>Initial Release for Cortex-M3 processor.</td>\r
211     </tr>\r
212 </table>\r
213 \r
214 */\r
215 \r
216 \r