The Armv8-M architecture defines many aspects of a Cortex-M processor’s behavior. Some major architecture extension categories include:
- Programmers’ model
- Exception model
- Memory model
- Security extension
- Debug components
For more details on Armv8-M architecture rules and its pseudocode, please refer to Armv8-M Architecture Reference Manual
To assist users in understanding the Armv8-M architecture features, a set of user guides are developed to describe the architecture extension categories shown above. 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 actual usage in the software
- Guidelines/recommendations for Software developers (Do's and Don'ts)
User guides for Armv8-M architecture are available at Learn The Architecture - M-Profile. Example projects are developed and linked with these user guides to give a practical explanation of architecture feature usage. This repository contains example projects that link with the user guide. Each example project given here should be referred along with the notes/explanations given in their corresponding user guide.
The example software projects are organised as per their architecture extension category.
Architecture category | User Guide | Chapter | Folder name |
---|---|---|---|
Programmers' Model | Armv8-M Programmers Model User Guide | - | - |
Exception Model | Armv8-M Exception model user guide | Use case examples | Exception_model/ |
Memory Model | Armv8-M Memory model and MPU user guide | Use case examples | Memory_model/ |
To understand the basics and general information about the example projects, refer to Generic Information. For details on each example project, refer to the Readme available within it.
Note: Example software projects for other architecture extension categories will be added in future releases.
- The example projects are developed to demonstrate the architectural features. These example projects should not be used as a test to validate all aspects of a feature.
- The example projects can be built with Arm Compiler 6 and GCC tool chain. Refer individual example project 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 is not verified.
Example projects are licensed under the MIT2.0 license. Please see the LICENSE
- For feedback and support on these example projects, use the GitHub Issue Tracker that is associated with this repository.
- For support on Armv8-M architecture features, raise a support case via Arm Developer.
- Arm licensees may contact Arm directly through their partner managers.
Copyright 2022-2023, Arm Limited