The Arm® A-profile AArch64 architecture defines many aspects of a Cortex-A processor's behavior. Some major architecture extension categories include:
- Exception model
- Memory management
- Interrupt handling using the Generic Interrupt Controller (GIC)
- Synchronization and multi-core coordination
To assist users in understanding the Armv9-A architecture features, a set of user guides are developed to describe the architecture extension categories. These user guides are written in simple language such that it is easy to learn and help users understand the architectural features along with example project source code (wherever applicable). The user guides also provide details on:
- Linkage between an architecture feature and its usage in the software
- Guidelines/recommendations for software developers (Do's and Don'ts)
User guides for AArch64 architecture are available at Learn The Architecture - A-Profile.
This repository contains example projects to give a practical explanation of architecture feature usage, some of which correspond with A-profile user guides.
These A-profile code-examples demonstrate fundamental architectural concepts and system components through focused bare-metal programs. The examples are intended to show how architectural features behave and how they can be exercised in software, rather than to provide complete firmware or operating system implementations.
For more details on Arm A-profile architecture rules and its pseudocode, please refer to Arm Architecture Reference Manual Supplement for A-profile architecture and associated A-Profile Architecture content on developer.arm.com.
The example software projects are organized as individual, self-contained demonstrations, each focusing on a specific architectural concept or system component.
| Architecture category | User Guide | Chapter(s) | Folder name |
|---|---|---|---|
| Bare-metal boot | A-Profile Bare-Metal Boot Guide | Chapter 5: Placing software for boot Chapter 6: Choosing the primary PE |
bare-metal-boot-examples_ATfE/ |
Each example includes its own README.md with details on:
- The architectural concepts being demonstrated
- Build and run instructions
- Platform or configuration requirements
- Expected outputs
- The example projects are developed to demonstrate architectural concepts and features. These example projects should not be used as a test to validate all aspects of a feature.
- The example projects may be built with Arm Compiler 6, GCC tool chain, or Arm Toolchain for Embedded (ATfE). This will be indicated by the folder name. Refer to the individual example project's README file for necessary settings.
- The tool chain version details are captured in each example project's README.md file. Though the example may work using other versions of a tool chain, it may not be verified.
Example projects are licensed under the MIT license. Please see LICENSE.
- For feedback and support on these example projects, use the GitHub Issue Tracker that is associated with this repository.
- For support on Armv A-profile architecture features, follow the Arm Community architectures and processors forum using the Cortex-A tag where relevant.
- Arm licensees may contact Arm directly through their partner managers.
Copyright 2022-2026 Arm Limited and/or its affiliates