]> begriffs open source - cmsis/blob - CMSIS/DoxyGen/Core_A/src/Overview.txt
DoxyGen: Fix white-space in CMSIS-Driver documentation (affects formatting)
[cmsis] / CMSIS / DoxyGen / Core_A / src / Overview.txt
1 /** \mainpage Overview
2
3 CMSIS-Core (Cortex-A) implements the basic run-time system for a Cortex-A device and gives the user access to the processor core and the device peripherals.
4 In detail it defines:
5  - <b>Hardware Abstraction Layer (HAL)</b> for Cortex-A processor registers with standardized  definitions for the GIC, FPU, MMU, Cache, and core access functions.
6  - <b>System exception names</b> to interface to system exceptions without having compatibility issues.
7  - <b>Methods to organize header files</b> that makes it easy to learn new Cortex-A microcontroller products and improve software portability. This includes naming conventions for device-specific interrupts.
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.
9  - <b>Intrinsic functions</b> used to generate CPU instructions that are not supported by standard C functions.
10  - A variable to determine the <b>system clock frequency</b> which simplifies the setup of the system timers.
11
12
13 The following sections provide details about the CMSIS-Core (Cortex-A):
14  - \ref using_pg describes the project setup and shows a simple program example.
15  - \ref templates_pg describes the files of the CMSIS-Core (Cortex-A) in detail and explains how to adapt template files provided by Arm to silicon vendor devices.
16  - \ref coreMISRA_Exceptions_pg describes the violations to the MISRA standard.
17  - <a href="modules.html">\b Reference </a> describe the features and functions of the \ref device_h_pg in detail.
18  - <a href="annotated.html">\b Data \b Structures </a> describe the data structures of the \ref device_h_pg in detail.
19     
20 <hr>
21
22 CMSIS-Core (Cortex-A) in ARM::CMSIS Pack
23 -----------------------------
24
25 Files relevant to CMSIS-Core (Cortex-A) are present in the following <b>ARM::CMSIS</b> directories:
26 |File/Folder                     |Content                                                                 |
27 |--------------------------------|------------------------------------------------------------------------|
28 |\b CMSIS\\Documentation\\Core_A | This documentation                                                     |
29 |\b CMSIS\\Core_A\\Include       | CMSIS-Core (Cortex-A) header files (for example core_ca.h, etc.)                |
30 |\b Device                       | \ref using_ARM_pg "Arm reference implementations" of Cortex-A devices  |
31 |\b Device\\\_Template_Vendor    | \ref templates_pg for extension by silicon vendors                     |
32
33 <hr>
34
35 \section ref_v7A Processor Support
36
37 CMSIS supports a selected subset of <a href="http://www.arm.com/products/processors/cortex-a/index.php" target="_blank"><b>Cortex-A processors</b></a>.
38
39 \subsection ref_man_ca_sec Cortex-A Technical Reference Manuals
40
41 The following Technical Reference Manuals describe the various Arm Cortex-A processors:
42 - <a href="http://infocenter.arm.com/help/topic/com.arm.doc.ddi0433c/DDI0433C_cortex_a5_trm.pdf" target="_blank"><b>Cortex-A5</b></a> (Armv7-A architecture)
43 - <a href="http://infocenter.arm.com/help/topic/com.arm.doc.ddi0464f/DDI0464F_cortex_a7_mpcore_r0p5_trm.pdf" target="_blank"><b>Cortex-A7</b></a> (Armv7-A architecture)
44 - <a href="http://infocenter.arm.com/help/topic/com.arm.doc.100511_0401_10_en/arm_cortexa9_trm_100511_0401_10_en.pdf" target="_blank"><b>Cortex-A9</b></a> (Armv7-A architecture)
45  
46 <hr>
47
48 \section tested_tools_sec Tested and Verified Toolchains
49
50 The \ref templates_pg supplied by Arm have been tested and verified with the following toolchains:
51  - Arm: Arm Compiler 5.06 update 7
52  - Arm: Arm Compiler 6.16
53  - Arm: Arm Compiler 6.6.4
54  - GNU: GNU Arm Embedded Toolchain 10-2020-q4-major (10.2.1 20201103)
55  - IAR: IAR ANSI C/C++ Compiler for Arm 8.20.1.14183
56  
57 <hr>
58 */
59
60
61 /**
62 \page rev_histCoreA Revision History of CMSIS-Core (Cortex-A)
63
64 <table class="cmtable" summary="Revision History">
65     <tr>
66       <th>Version</th>
67       <th>Description</th>
68     </tr>
69     <tr>
70       <td>V1.2.1</td>
71       <td>
72         <ul>
73           <li>Bugfixes for Cortex-A32</li>
74         </ul>
75       </td>
76     </tr>
77     <tr>
78       <td>V1.2.0</td>
79       <td>
80         <ul>
81           <li>Fixed GIC_SetPendingIRQ to use GICD_SGIR instead of GICD_SPENDSGIR
82               for compliance with all GIC specification versions.</li>
83           <li>Added missing DSP intrinsics.</li>
84           <li>Reworked assembly intrinsics: volatile, barriers and clobbers.</li>
85         </ul>
86       </td>
87     </tr>
88     <tr>
89       <td>V1.1.4</td>
90       <td>
91         <ul>
92           <li>Fixed __FPU_Enable().</li>
93         </ul>
94       </td>
95     </tr>
96     <tr>
97       <td>V1.1.3</td>
98       <td>
99         <ul>
100           <li>Fixed __get_SP_usr()/__set_SP_usr() for ArmClang.</li>
101           <li>Fixed zero argument handling in __CLZ() .</li>
102         </ul>
103       </td>
104     </tr>
105     <tr>
106       <td>V1.1.2</td>
107       <td>
108         <ul>
109           <li>Removed using get/set built-ins FPSCR in GCC >= 7.2 due to shortcomings.</li>
110           <li>Fixed co-processor register access macros for Arm Compiler 5.</li>
111         </ul>
112       </td>
113     </tr>
114     <tr>
115       <td>V1.1.1</td>
116       <td>
117         <ul>
118           <li>Refactored L1 cache maintenance to be compiler agnostic.</li>
119         </ul>
120       </td>
121     </tr>
122     <tr>
123       <td>V1.1.0</td>
124       <td>
125         <ul>
126           <li>Added compiler_iccarm.h for IAR compiler.</li>
127           <li>Added missing core access functions for Arm Compiler 5.</li>
128           <li>Aligned access function to coprocessor 15.</li>
129           <li>Additional generic Timer functions.</li>
130           <li>Bug fixes and minor enhancements.</li>
131         </ul>
132       </td>
133     </tr>
134     <tr>
135       <td>V1.0.0</td>
136       <td>Initial Release for Cortex-A5/A7/A9 processors.</td>
137     </tr>
138 </table>        
139         
140 */
141
142
143 /**
144 \page device_h_pg Device Header File \<device.h>
145
146 The \ref device_h_pg contains the following sections that are device specific:
147  - \ref irqn_defs provides interrupt numbers (IRQn) for all exceptions and interrupts of the device.
148  - \ref config_perifs reflect the features of the device.
149  - \ref access_perifs definitions for the \ref peripheral_gr to all device peripherals. It contains all data structures and the address mapping for device-specific peripherals.
150  - <b>Access Functions for Peripherals (optioal)</b> provide additional helper functions for peripherals that are useful for programming of these peripherals. Access Functions may be provided as inline functions or can be extern references to a device-specific library provided by the silicon vendor.
151
152 \section irqn_defs Interrupt Number Definition
153
154 \section config_perifs Configuration of the Processor and Core Peripherals
155
156 \section access_perifs Device Peripheral Access Layer
157
158 */