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.
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.
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.
22 CMSIS-Core (Cortex-A) in ARM::CMSIS Pack
23 -----------------------------
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 |
35 \section ref_v7A Processor Support
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>.
39 \subsection ref_man_ca_sec Cortex-A Technical Reference Manuals
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)
48 \section tested_tools_sec Tested and Verified Toolchains
50 The \ref templates_pg supplied by ARM have been tested and verified with the following toolchains:
51 - ARM: ARM Compiler V5.6
52 - ARM: ARM Compiler V6.7
53 - GNU: GNU Tools for ARM Embedded 6.3.1 20170620
54 - IAR: IAR Embedded Workbench 8.11.2.13589
61 \page rev_histCoreA Revision History of CMSIS-Core (Cortex-A)
63 <table class="cmtable" summary="Core Exception Name">
72 <li>Added compiler_iccarm.h for IAR compiler.</li>
73 <li>Added missing core access functions for Arm Compiler 5.</li>
74 <li>Aligned access function to coprocessor 15.</li>
75 <li>Additional generic Timer functions.</li>
76 <li>Bug fixes and minor enhancements.</li>
82 <td>Initial Release for Cortex-A5/A7/A9 processors.</td>
90 \page device_h_pg Device Header File \<device.h>
92 The \ref device_h_pg contains the following sections that are device specific:
93 - \ref irqn_defs provides interrupt numbers (IRQn) for all exceptions and interrupts of the device.
94 - \ref config_perifs reflect the features of the device.
95 - \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.
96 - <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.
98 \section irqn_defs Interrupt Number Definition
100 \section config_perifs Configuration of the Processor and Core Peripherals
102 \section access_perifs Device Peripheral Access Layer