• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

Include/18-Mar-2025-327221

Layer/18-Mar-2025-42,66326,997

Project/18-Mar-2025-728529

Source/18-Mar-2025-10,1683,288

LICENSE.txtD18-Mar-202511.1 KiB202169

README.mdD18-Mar-20254.3 KiB12096

README.md

1# CMSIS-Core Validation
2
3This folder contains a test suite that validates CMSIS-Core implementations. It uses [**Fixed Virtual Platforms**](https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms) to run tests to verify correct operation of the CMSIS-Core functionality on various Arm Cortex based processors.
4
5## Folder structure
6
7```txt
8    �� CoreValidation
9    ┣ �� Include        Include files for test cases etc.
10    ┣ �� Layer          Layers for creating the projects.
11    ┣ �� Project        Solution and project files to build tests for various configurations.
12    ┗ �� Source         Test case source code.
13```
14
15## Test matrix
16
17Currently, the following build configurations are provided:
18
191. Compiler
20   - Arm Compiler 6 (AC6)
21   - GNU Compiler (GCC)
22   - LLVM/Clang (Clang)
232. Devices
24   - Cortex-M0
25   - Cortex-M0+
26   - Cortex-M3
27   - Cortex-M4 (with FPU)
28   - Cortex-M7 (with DP FPU)
29   - Cortex-M23
30     - w/o security extensions (TrustZone)
31     - in secure mode
32     - in non-secure mode
33   - Cortex-M33 (with FPU and DSP extensions)
34     - w/o security extensions (TrustZone)
35     - in secure mode
36     - in non-secure mode
37   - Cortex-M35P (with FPU and DSP extensions)
38     - w/o security extensions (TrustZone)
39     - in secure mode
40     - in non-secure mode
41   - Cortex-M55 (with FPU and DSP extensions)
42     - w/o security extensions (TrustZone)
43     - in secure mode
44     - in non-secure mode
45   - Cortex-M85 (with FPU and DSP extensions)
46     - w/o security extensions (TrustZone)
47     - in secure mode
48     - in non-secure mode
49   - Cortex-A5
50     - w/o NEON extensions
51   - Cortex-A7
52     - w/o NEON extensions
53   - Cortex-A9
54     - w/o NEON extensions
553. Optimization Levels
56   - none
57   - balanced
58   - size
59   - speed
60
61## Prerequisites
62
63The following tools are required to build and run the CoreValidation tests:
64
65- [CMSIS-Toolbox 2.1.0](https://artifacts.keil.arm.com/cmsis-toolbox/2.1.0/)*
66- [CMake 3.25.2](https://cmake.org/download/)*
67- [Ninja 1.10.2](https://github.com/ninja-build/ninja/releases)*
68- [Arm Compiler 6.20](https://artifacts.keil.arm.com/arm-compiler/6.20/21/)*
69- [GCC Compiler 13.2.1](https://artifacts.keil.arm.com/arm-none-eabi-gcc/13.2.1/)*
70- [Clang Compiler 17.0.1](https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/tag/release-17.0.1)*
71- [Arm Virtual Hardware for Cortex-M based on FastModels 11.22.39](https://artifacts.keil.arm.com/avh/11.22.39/)*
72- [Python 3.9](https://www.python.org/downloads/)
73
74The executables need to be present on the `PATH`.
75For tools distributed via vcpkg (*) this can be achieved automatically:
76
77```bash
78 ./CMSIS/CoreValidation/Project $ vcpkg activate
79```
80
81Install the Python packages required by `build.py`:
82
83```bash
84 ./CMSIS/CoreValidation/Project $ pip install -r requirements.txt
85```
86
87## Build and run
88
89To build and run the CoreValidation tests for one or more configurations use the following command line.
90Select the `<compiler>`, `<device>`, and `<optimize>` level to `build` and `run` for.
91
92```bash
93 ./CMSIS/CoreValidation/Project $ ./build.py -c <compiler> -d <device> -o <optimize> [build] [run]
94```
95
96For example, build and run the tests using GCC for Cortex-M3 with low optimization, execute:
97
98```bash
99 ./CMSIS/CoreValidation/Project $ ./build.py -c GCC -d CM3 -o none build run
100[GCC][Cortex-M3][none](build:csolution) csolution convert -s Validation.csolution.yml -c Validation.GCC_low+CM3
101[GCC][Cortex-M3][none](build:csolution) csolution succeeded with exit code 0
102[GCC][Cortex-M3][none](build:cbuild) cbuild Validation.GCC_low+CM3/Validation.GCC_low+CM3.cprj
103[GCC][Cortex-M3][none](build:cbuild) cbuild succeeded with exit code 0
104[GCC][Cortex-M3][none](run:model_exec) VHT_MPS2_Cortex-M3 -q --simlimit 100 -f ../Layer/Target/CM3/model_config.txt -a Validation.GCC_low+CM3/Validation.GCC_low+CM3_outdir/Validation.GCC_low+CM3.elf
105[GCC][Cortex-M3][none](run:model_exec) VHT_MPS2_Cortex-M3 succeeded with exit code 0
106
107Matrix Summary
108==============
109
110compiler    device     optimize    build    clean    extract    run
111----------  ---------  ----------  -------  -------  ---------  -----
112GCC         Cortex-M3  none        success  (skip)   (skip)     35/35
113```
114
115The full test report is written to `Core_Validation-GCC-none-CM3-<timestamp>.junit` file.
116
117## License
118
119[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
120