Skip to content

Commit f44ff7b

Browse files
committed
Update GCC to version 13.2.1
- Enable tests for Cortex-M85 on GCC - Cleanup test scripts - Enable test execution for all available FVP AVH models - Update README.md for CoreValidation
1 parent ba954f7 commit f44ff7b

11 files changed

Lines changed: 64 additions & 124 deletions

File tree

.devcontainer/ubuntu-22.04/vcpkg-configuration.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"microsoft:tools/kitware/cmake": "^3.25.2",
1616
"microsoft:ninja": "^1.10.2",
1717
"arm:compilers/arm/armclang":"^6.20.0",
18-
"arm:compilers/arm/arm-none-eabi-gcc": "^12.2.1-0",
18+
"arm:compilers/arm/arm-none-eabi-gcc": "^13.2.1",
1919
"arm:compilers/arm/llvm-embedded": "^17.0.1-0",
2020
"arm:tools/open-cmsis-pack/cmsis-toolbox": "^2.1.0-0",
2121
"arm:models/arm/avh-fvp": "^11.22.39",

.github/workflows/corevalidation.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ jobs:
109109
cpackget add /home/runner/Cortex_DFP/ARM.Cortex_DFP.pdsc
110110
111111
echo "Build test projects ..."
112-
./build.py --verbose -m FVP -c ${{ matrix.compiler }} build || echo "::warning::=== Some configurations failed to build! ==="
112+
./build.py --verbose -c ${{ matrix.compiler }} build || echo "::warning::=== Some configurations failed to build! ==="
113113
114114
- name: Perform CodeQL Analysis
115115
if: ${{ !cancelled() && matrix.compiler == 'GCC' }}
@@ -123,7 +123,7 @@ jobs:
123123
vcpkg activate
124124
125125
echo "Run test projects ..."
126-
./build.py --verbose -m FVP -c ${{ matrix.compiler }} -d "CM[047]*" -d "CM3" -d "CM[23]3*" run || echo "::warning::==== Some configurations failed to run! ==="
126+
./build.py --verbose -c ${{ matrix.compiler }} -d "CM*" run || echo "::warning::==== Some configurations failed to run! ==="
127127

128128
- name: Deactivate Arm tool license
129129
if: always()

CMSIS/Core/Test/build.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class CompilerAxis(Enum):
5050
IAR = ('IAR')
5151
CLANG = ('Clang')
5252

53+
5354
@matrix_axis("optimize", "o", "Optimization level(s) to be considered.")
5455
class OptimizationAxis(Enum):
5556
NONE = ('none')
@@ -67,17 +68,16 @@ def lit(config):
6768
def timestamp():
6869
return datetime.now().strftime('%Y%m%d%H%M%S')
6970

71+
7072
@matrix_command()
7173
def run_lit(toolchain, device, optimize):
7274
return ["lit", "--xunit-xml-output", f"lit-{toolchain}-{optimize}-{device}.xunit", "-D", f"toolchain={toolchain}", "-D", f"device={device}", "-D", f"optimize={optimize}", "." ]
7375

76+
7477
@matrix_filter
7578
def filter_iar(config):
7679
return config.compiler == CompilerAxis.IAR
7780

78-
@matrix_filter
79-
def filter_gcc_cm85(config):
80-
return config.compiler == CompilerAxis.GCC and config.device.match('CM85*')
8181

8282
if __name__ == "__main__":
8383
main()

CMSIS/Core/Test/vcpkg-configuration.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
],
1414
"requires": {
1515
"arm:compilers/arm/armclang":"^6.20.0",
16-
"arm:compilers/arm/arm-none-eabi-gcc": "^12.2.1-0",
16+
"arm:compilers/arm/arm-none-eabi-gcc": "^13.2.1",
1717
"arm:compilers/arm/llvm-embedded": "^17.0.1-0"
1818
}
1919
}

CMSIS/CoreValidation/Project/avh.yml

Lines changed: 0 additions & 38 deletions
This file was deleted.

CMSIS/CoreValidation/Project/build.py

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -102,36 +102,31 @@ class OptimizationAxis(Enum):
102102
SIZE = ('size')
103103

104104

105-
@matrix_axis("model", "m", "Model variant(s) to be considered.")
106-
class ModelAxis(Enum):
107-
VHT = ('VHT')
108-
FVP = ('FVP')
109-
110105
MODEL_EXECUTABLE = {
111-
DeviceAxis.CM0: ("_MPS2_Cortex-M0", []),
112-
DeviceAxis.CM0plus: ("_MPS2_Cortex-M0plus", []),
113-
DeviceAxis.CM3: ("_MPS2_Cortex-M3", []),
114-
DeviceAxis.CM4: ("_MPS2_Cortex-M4", []),
115-
DeviceAxis.CM4FP: ("_MPS2_Cortex-M4", []),
116-
DeviceAxis.CM7: ("_MPS2_Cortex-M7", []),
117-
DeviceAxis.CM7DP: ("_MPS2_Cortex-M7", []),
118-
DeviceAxis.CM7SP: ("_MPS2_Cortex-M7", []),
119-
DeviceAxis.CM23: ("_MPS2_Cortex-M23", []),
120-
DeviceAxis.CM23S: ("_MPS2_Cortex-M23", []),
121-
DeviceAxis.CM23NS: ("_MPS2_Cortex-M23", []),
122-
DeviceAxis.CM33: ("_MPS2_Cortex-M33", []),
123-
DeviceAxis.CM33S: ("_MPS2_Cortex-M33", []),
124-
DeviceAxis.CM33NS: ("_MPS2_Cortex-M33", []),
125-
DeviceAxis.CM35P: ("_MPS2_Cortex-M35P", []),
126-
DeviceAxis.CM35PS: ("_MPS2_Cortex-M35P", []),
127-
DeviceAxis.CM35PNS: ("_MPS2_Cortex-M35P", []),
128-
DeviceAxis.CM55S: ("_MPS2_Cortex-M55", []),
129-
DeviceAxis.CM55NS: ("_MPS2_Cortex-M55", []),
130-
DeviceAxis.CM85S: ("_MPS2_Cortex-M85", []),
131-
DeviceAxis.CM85NS: ("_MPS2_Cortex-M85", []),
132-
DeviceAxis.CA5: ("_VE_Cortex-A5x1", []),
133-
DeviceAxis.CA7: ("_VE_Cortex-A7x1", []),
134-
DeviceAxis.CA9: ("_VE_Cortex-A9x1", []),
106+
DeviceAxis.CM0: ("FVP_MPS2_Cortex-M0", []),
107+
DeviceAxis.CM0plus: ("FVP_MPS2_Cortex-M0plus", []),
108+
DeviceAxis.CM3: ("FVP_MPS2_Cortex-M3", []),
109+
DeviceAxis.CM4: ("FVP_MPS2_Cortex-M4", []),
110+
DeviceAxis.CM4FP: ("FVP_MPS2_Cortex-M4", []),
111+
DeviceAxis.CM7: ("FVP_MPS2_Cortex-M7", []),
112+
DeviceAxis.CM7DP: ("FVP_MPS2_Cortex-M7", []),
113+
DeviceAxis.CM7SP: ("FVP_MPS2_Cortex-M7", []),
114+
DeviceAxis.CM23: ("FVP_MPS2_Cortex-M23", []),
115+
DeviceAxis.CM23S: ("FVP_MPS2_Cortex-M23", []),
116+
DeviceAxis.CM23NS: ("FVP_MPS2_Cortex-M23", []),
117+
DeviceAxis.CM33: ("FVP_MPS2_Cortex-M33", []),
118+
DeviceAxis.CM33S: ("FVP_MPS2_Cortex-M33", []),
119+
DeviceAxis.CM33NS: ("FVP_MPS2_Cortex-M33", []),
120+
DeviceAxis.CM35P: ("FVP_MPS2_Cortex-M35P", []),
121+
DeviceAxis.CM35PS: ("FVP_MPS2_Cortex-M35P", []),
122+
DeviceAxis.CM35PNS: ("FVP_MPS2_Cortex-M35P", []),
123+
DeviceAxis.CM55S: ("FVP_MPS2_Cortex-M55", []),
124+
DeviceAxis.CM55NS: ("FVP_MPS2_Cortex-M55", []),
125+
DeviceAxis.CM85S: ("FVP_MPS2_Cortex-M85", []),
126+
DeviceAxis.CM85NS: ("FVP_MPS2_Cortex-M85", []),
127+
DeviceAxis.CA5: ("FVP_VE_Cortex-A5x1", []),
128+
DeviceAxis.CA7: ("FVP_VE_Cortex-A7x1", []),
129+
DeviceAxis.CA9: ("FVP_VE_Cortex-A9x1", []),
135130
# DeviceAxis.CA5NEON: ("_VE_Cortex-A5x1", []),
136131
# DeviceAxis.CA7NEON: ("_VE_Cortex-A7x1", []),
137132
# DeviceAxis.CA9NEON: ("_VE_Cortex-A9x1", [])
@@ -245,7 +240,7 @@ def cbuild(config):
245240
f"{result.command.config.device}."
246241
f"{title}"))
247242
def model_exec(config):
248-
cmdline = [f"{config.model}{MODEL_EXECUTABLE[config.device][0]}", "-q", "--simlimit", 100, "-f", model_config(config)]
243+
cmdline = [MODEL_EXECUTABLE[config.device][0], "-q", "--simlimit", 100, "-f", model_config(config)]
249244
cmdline += MODEL_EXECUTABLE[config.device][1]
250245
cmdline += ["-a", f"{build_dir(config)}/{output_dir(config)}/Validation.{config.compiler.image_ext}"]
251246
if config.device.has_bl():
@@ -258,10 +253,5 @@ def filter_iar(config):
258253
return config.compiler == CompilerAxis.IAR
259254

260255

261-
@matrix_filter
262-
def filter_gcc_cm85(config):
263-
return config.compiler == CompilerAxis.GCC and config.device.match('CM85*')
264-
265-
266256
if __name__ == "__main__":
267257
main()

CMSIS/CoreValidation/Project/cpacklist.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

CMSIS/CoreValidation/Project/vcpkg-configuration.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"microsoft:tools/kitware/cmake": "^3.25.2",
1616
"microsoft:ninja": "^1.10.2",
1717
"arm:compilers/arm/armclang":"^6.20.0",
18-
"arm:compilers/arm/arm-none-eabi-gcc": "^12.2.1-0",
18+
"arm:compilers/arm/arm-none-eabi-gcc": "^13.2.1",
1919
"arm:compilers/arm/llvm-embedded": "^17.0.1-0",
2020
"arm:tools/open-cmsis-pack/cmsis-toolbox": "^2.1.0-0",
2121
"arm:models/arm/avh-fvp": "^11.22.39",

CMSIS/CoreValidation/README.md

Lines changed: 29 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Currently, the following build configurations are provided:
1919
1. Compiler
2020
- Arm Compiler 6 (AC6)
2121
- GNU Compiler (GCC)
22-
- IAR Compiler (IAR)
22+
- LLVM/Clang (Clang)
2323
2. Devices
2424
- Cortex-M0
2525
- Cortex-M0+
@@ -56,46 +56,35 @@ Currently, the following build configurations are provided:
5656
- Cortex-A9
5757
- w/o NEON extensions
5858
3. Optimization Levels
59-
- Low
60-
- AC6: `-O1`
61-
- GCC: `-O1`
62-
- IAR: `-Ol`
63-
- Mid
64-
- AC6: `-O2`
65-
- GCC: `-O2`
66-
- IAR: `-Om`
67-
- High
68-
- AC6: `-O3`
69-
- GCC: `-O3`
70-
- IAR: `-Oh`
71-
- Size
72-
- AC6: `-Os`
73-
- GCC: `-Os`
74-
- IAR: `-Ohz`
75-
- Tiny
76-
- AC6: `-Oz`
77-
- GCC: `-Ofast`
78-
- IAR: `-Ohs`
59+
- none
60+
- balanced
61+
- size
62+
- speed
7963

8064
## Prerequisites
8165

8266
The following tools are required to build and run the CoreValidation tests:
8367

84-
- [CMSIS-Toolbox](https://github.com/Open-CMSIS-Pack/cmsis-toolbox/releases) 1.3.0 or higher
85-
- CMake
86-
- Ninja build
87-
- Arm Compiler 6
88-
- GNU Compiler
89-
- IAR Compiler
90-
- Python 3.8 or higher
91-
- Arm Virtual Hardware Models
68+
- [CMSIS-Toolbox 2.1.0](https://artifacts.keil.arm.com/cmsis-toolbox/2.1.0/)*
69+
- [CMake 3.25.2](https://cmake.org/download/)*
70+
- [Ninja 1.10.2](https://github.com/ninja-build/ninja/releases)*
71+
- [Arm Compiler 6.20](https://artifacts.keil.arm.com/arm-compiler/6.20/21/)*
72+
- [GCC Compiler 13.2.1](https://artifacts.keil.arm.com/arm-none-eabi-gcc/13.2.1/)*
73+
- [Clang Compiler 17.0.1](https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/tag/release-17.0.1)*
74+
- [Arm Virtual Hardware for Cortex-M based on FastModels 11.22.39](https://artifacts.keil.arm.com/avh/11.22.39/)*
75+
- [Python 3.9](https://www.python.org/downloads/)
9276

9377
The executables need to be present on the `PATH`.
78+
For tools distributed via vcpkg (*) this can be achieved automatically:
79+
80+
```bash
81+
./CMSIS/CoreValidation/Project $ vcpkg activate
82+
```
9483

9584
Install the Python packages required by `build.py`:
9685

9786
```bash
98-
CMSIS_5/CMSIS/CoreValidation/Project $ pip install -r requirements.txt
87+
./CMSIS/CoreValidation/Project $ pip install -r requirements.txt
9988
```
10089

10190
## Build and run
@@ -104,29 +93,29 @@ To build and run the CoreValidation tests for one or more configurations use the
10493
Select the `<compiler>`, `<device>`, and `optimize` level to `build` and `run` for.
10594

10695
```bash
107-
CMSIS_5/CMSIS/CoreValidation/Project $ ./build.py -c <compiler> -d <device> -o <optimize> [build] [run]
96+
./CMSIS/CoreValidation/Project $ ./build.py -c <compiler> -d <device> -o <optimize> [build] [run]
10897
```
10998

11099
For example, build and run the tests using GCC for Cortex-M3 with low optimization, execute:
111100

112101
```bash
113-
CMSIS_5/CMSIS/CoreValidation/Project $ ./build.py -c GCC -d CM3 -o low build run
114-
[GCC][Cortex-M3][low](build:csolution) csolution convert -s Validation.csolution.yml -c Validation.GCC_low+CM3
115-
[GCC][Cortex-M3][low](build:csolution) csolution succeeded with exit code 0
116-
[GCC][Cortex-M3][low](build:cbuild) cbuild Validation.GCC_low+CM3/Validation.GCC_low+CM3.cprj
117-
[GCC][Cortex-M3][low](build:cbuild) cbuild succeeded with exit code 0
118-
[GCC][Cortex-M3][low](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
119-
[GCC][Cortex-M3][low](run:model_exec) VHT_MPS2_Cortex-M3 succeeded with exit code 0
102+
./CMSIS/CoreValidation/Project $ ./build.py -c GCC -d CM3 -o none build run
103+
[GCC][Cortex-M3][none](build:csolution) csolution convert -s Validation.csolution.yml -c Validation.GCC_low+CM3
104+
[GCC][Cortex-M3][none](build:csolution) csolution succeeded with exit code 0
105+
[GCC][Cortex-M3][none](build:cbuild) cbuild Validation.GCC_low+CM3/Validation.GCC_low+CM3.cprj
106+
[GCC][Cortex-M3][none](build:cbuild) cbuild succeeded with exit code 0
107+
[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
108+
[GCC][Cortex-M3][none](run:model_exec) VHT_MPS2_Cortex-M3 succeeded with exit code 0
120109

121110
Matrix Summary
122111
==============
123112

124113
compiler device optimize build clean extract run
125114
---------- --------- ---------- ------- ------- --------- -----
126-
GCC Cortex-M3 low success (skip) (skip) 35/35
115+
GCC Cortex-M3 none success (skip) (skip) 35/35
127116
```
128117

129-
The full test report is written to `Core_Validation-GCC-low-CM3-<timestamp>.junit` file.
118+
The full test report is written to `Core_Validation-GCC-none-CM3-<timestamp>.junit` file.
130119

131120
## License
132121

CMSIS/Documentation/Doxygen/Core/src/mainpage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,5 @@ The \ref cmsis_core_files delivered with this CMSIS-Core release have been teste
8282

8383
- Arm Compiler for Embedded 6.20
8484
- IAR C/C++ Compiler for Arm 9.40
85-
- GNU Arm Embedded Toolchain 12.2.1
85+
- GNU Arm Embedded Toolchain 13.2.1
8686
- LLVM/Clang 17.0.1

0 commit comments

Comments
 (0)