Skip to content

Commit 3599f10

Browse files
Add workflow for building examples with GCC
1 parent f2c5ed7 commit 3599f10

5 files changed

Lines changed: 92 additions & 6 deletions

File tree

.github/workflows/Build_GCC.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Copyright (c) 2026 Arm Limited (or its affiliates). All rights reserved.
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
name: Build examples with GCC
18+
on:
19+
workflow_dispatch:
20+
pull_request:
21+
branches: [main]
22+
push:
23+
branches: [main]
24+
25+
jobs:
26+
CI:
27+
runs-on: ubuntu-24.04
28+
29+
strategy:
30+
fail-fast: false
31+
matrix:
32+
config:
33+
[ # example directory, project, build-type, target-type, toolchain
34+
{ dir: ./Alif/AppKit-E7_USB, project: DataTest, build-type: Debug, target-type: AppKit-E7-U55, toolchain: GCC },
35+
{ dir: ./Alif/AppKit-E7_USB, project: DataTest, build-type: Release, target-type: AppKit-E7-U55, toolchain: GCC },
36+
{ dir: ./Alif/AppKit-E7_USB, project: AlgorithmTest, build-type: Debug, target-type: AppKit-E7-U55, toolchain: GCC },
37+
{ dir: ./Alif/AppKit-E7_USB, project: DataTest, build-type: Debug, target-type: SSE-300-U55, toolchain: GCC },
38+
{ dir: ./Alif/AppKit-E7_USB, project: DataTest, build-type: Release, target-type: SSE-300-U55, toolchain: GCC },
39+
{ dir: ./Alif/AppKit-E7_USB, project: AlgorithmTest, build-type: Debug, target-type: SSE-300-U55, toolchain: GCC },
40+
{ dir: ./Alif/DevKit-E8_ETH, project: DataTest, build-type: Debug, target-type: DevKit-E8-U85, toolchain: GCC },
41+
{ dir: ./Alif/DevKit-E8_ETH, project: DataTest, build-type: Release, target-type: DevKit-E8-U85, toolchain: GCC },
42+
{ dir: ./Alif/DevKit-E8_ETH, project: AlgorithmTest, build-type: Debug, target-type: DevKit-E8-U85, toolchain: GCC },
43+
{ dir: ./Alif/DevKit-E8_ETH, project: DataTest, build-type: Debug, target-type: SSE-320-U85, toolchain: GCC },
44+
{ dir: ./Alif/DevKit-E8_ETH, project: DataTest, build-type: Release, target-type: SSE-320-U85, toolchain: GCC },
45+
{ dir: ./Alif/DevKit-E8_ETH, project: AlgorithmTest, build-type: Debug, target-type: SSE-320-U85, toolchain: GCC }
46+
]
47+
48+
steps:
49+
- name: Checkout this repository
50+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
51+
52+
- name: Install vcpkg
53+
uses: ARM-software/cmsis-actions/setup-vcpkg@v1
54+
with:
55+
version: 2026.04.27
56+
57+
- name: Install required tools
58+
uses: ARM-software/cmsis-actions/vcpkg@8a50b77681a484568e08f31fb7c2285c4735f682 # v1.3
59+
with:
60+
config: "./vcpkg-configuration.json"
61+
cache: "Tools"
62+
63+
- name: Activate Arm tool license
64+
uses: ARM-software/cmsis-actions/armlm@8a50b77681a484568e08f31fb7c2285c4735f682 # v1.3
65+
66+
- name: Initialize CMSIS pack root folder
67+
run: |
68+
cpackget init https://www.keil.com/pack/index.pidx
69+
cpackget update-index
70+
71+
- name: Cache CMSIS packs
72+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
73+
with:
74+
key: cmsis-packs-${{ hashFiles('**/*.csolution.yml', '**/*.cproject.yml', '**/*.clayer.yml') }}
75+
restore-keys: |
76+
cmsis-packs-
77+
path: /home/runner/.cache/arm/packs
78+
79+
- name: Build example in ${{matrix.config.dir}} for context ${{matrix.config.project}}.${{matrix.config.build-type}}+${{matrix.config.target-type}} with ${{matrix.config.toolchain}} toolchain
80+
working-directory: ${{matrix.config.dir}}
81+
run: |
82+
cbuild SDS.csolution.yml --context ${{matrix.config.project}}.${{matrix.config.build-type}}+${{matrix.config.target-type}} --toolchain ${{matrix.config.toolchain}} --packs --update-rte

Alif/AppKit-E7_USB/Board/AppKit-E7_M55_HP/RTE/Device/AE722F80F55D5LS_M55_HP/linker_gnu_mram.ld.src

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ SECTIONS
113113

114114
.code.at_itcm : ALIGN(8)
115115
{
116-
*(.text*)
117116
*(.itcm*) /* Object targeting ITCM */
118117
. = ALIGN(16);
119118
} > ITCM AT > MRAM
@@ -167,14 +166,14 @@ SECTIONS
167166
*(.bss.lcd_frame_buf) /* LCD frame Buffer. */
168167
*(.bss.camera_frame_buf) /* Camer Frame Buffer */
169168
*(.bss.camera_frame_bayer_to_rgb_buf) /* (Optional) Camera Frame Buffer for Bayer to RGB Conversion. */
169+
*(.bss.*)
170170
} > SRAM0
171171
#endif
172172

173173
.bss (NOLOAD) : ALIGN(8)
174174
{
175175
__bss_start__ = .;
176176
*(.bss)
177-
*(.bss.*)
178177
*(COMMON)
179178

180179
. = ALIGN(8);
@@ -261,6 +260,7 @@ SECTIONS
261260
*(SORT(.dtors.*))
262261
*(.dtors)
263262

263+
*(.text*)
264264
*(.rodata*)
265265

266266
KEEP(*(.eh_frame*))

Alif/DevKit-E8_ETH/Board/DevKit-E8_M55_HP/RTE/Device/AE822FA0E5597LS0_M55_HP/linker_gnu_mram.ld.src

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ SECTIONS
145145

146146
.code.at_itcm : ALIGN(8)
147147
{
148-
*(.text*)
149148
*(.itcm*) /* Object targeting ITCM */
150149
. = ALIGN(16);
151150
} > ITCM AT > MRAM
@@ -175,14 +174,14 @@ SECTIONS
175174
*(.bss.lcd_frame_buf) /* LCD frame Buffer. */
176175
*(.bss.camera_frame_buf) /* Camer Frame Buffer */
177176
*(.bss.camera_frame_bayer_to_rgb_buf) /* (Optional) Camera Frame Buffer for Bayer to RGB Conversion. */
177+
*(.bss.*)
178178
} > SRAM0
179179
#endif
180180

181181
.bss (NOLOAD) : ALIGN(8)
182182
{
183183
__bss_start__ = .;
184184
*(.bss)
185-
*(.bss.*)
186185
*(COMMON)
187186

188187
. = ALIGN(8);
@@ -269,6 +268,7 @@ SECTIONS
269268
*(SORT(.dtors.*))
270269
*(.dtors)
271270

271+
*(.text*)
272272
*(.rodata*)
273273

274274
KEEP(*(.eh_frame*))

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[![License](https://img.shields.io/github/license/Arm-Examples/Safety-Example-STM32?label)](https://github.com/Arm-Examples/Safety-Example-STM32/blob/main/LICENSE)
22
[![Build_AC6](https://img.shields.io/github/actions/workflow/status/Arm-Examples/SDS-Examples/Build_AC6.yml?logo=arm&logoColor=0091bd&label=Build%20examples%20with%20AC6)](https://github.com/Arm-Examples/SDS-Examples/tree/main/.github/workflows/Build_AC6.yml)
3+
[![Build_GCC](https://img.shields.io/github/actions/workflow/status/Arm-Examples/SDS-Examples/Build_GCC.yml?logo=arm&logoColor=0091bd&label=Build%20examples%20with%20GCC)](https://github.com/Arm-Examples/SDS-Examples/tree/main/.github/workflows/Build_GCC.yml)
34
[![Test_Alif_E7](https://img.shields.io/github/actions/workflow/status/Arm-Examples/SDS-Examples/Test_Alif_E7.yml?logo=arm&logoColor=0091bd&label=Test%20Alif%20AppKit-E7%20example)](https://github.com/Arm-Examples/SDS-Examples/tree/main/.github/workflows/Test_Alif_E7.yml)
45
[![Test_Alif_E8](https://img.shields.io/github/actions/workflow/status/Arm-Examples/SDS-Examples/Test_Alif_E8.yml?logo=arm&logoColor=0091bd&label=Test%20Alif%20DevKit-E8%20example)](https://github.com/Arm-Examples/SDS-Examples/tree/main/.github/workflows/Test_Alif_E8.yml)
56
[![Test_ST_KeywordSpotting](https://img.shields.io/github/actions/workflow/status/Arm-Examples/SDS-Examples/Test_ST_KeywordSpotting.yml?logo=arm&logoColor=0091bd&label=Test%20ST%20Keyword%20Spotting)](https://github.com/Arm-Examples/SDS-Examples/tree/main/.github/workflows/Test_ST_KeywordSpotting.yml)
@@ -68,6 +69,7 @@ Refer to [Understanding GitHub Actions](https://docs.github.com/en/actions/get-s
6869
| <div style="width:150px"> CI Workflow </div> | Description |
6970
|--- |--- |
7071
| [Build_AC6](./.github/workflows/Build_AC6.yml) | Use Arm Compiler for Embedded (AC6) to create binaries for different configuration of targets, build types, and boards. |
72+
| [Build_GCC](./.github/workflows/Build_GCC.yml) | Use GNU Arm Embedded Toolchain (GCC) to create binaries for different configuration of targets, build types, and boards. |
7173
| [Test_Alif_E7](./.github/workflows/Test_Alif_E7.yml) | Build the binary for an object detection algorithm and execute a regression test using an FVP model. Compare the original SDS recording with the newly generated recording produced during the simulator run. Store the build outputs and SDS recordings as workflow artifacts. |
7274
| [Test_Alif_E8](./.github/workflows/Test_Alif_E8.yml) | Build the binary for an object detection algorithm and execute a regression test using an FVP model. Compare the original SDS recording with the newly generated recording produced during the simulator run. Store the build outputs and SDS recordings as workflow artifacts. |
7375
| [Test_ST_KeywordSpotting](./.github/workflows/Test_ST_KeywordSpotting.yml) | Build the binary for a keyword spotting algorithm and execute a regression test using an FVP model. Compare the original SDS recording with the newly generated recording produced during the simulator run. Store the build outputs and SDS recordings as workflow artifacts. |

vcpkg-configuration.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
"location" : "https://artifacts.tools.arm.com/vcpkg-registry"
66
} ],
77
"requires" : {
8-
"arm:tools/open-cmsis-pack/cmsis-toolbox" : "^2.13.0",
9-
"arm:compilers/arm/armclang" : "^6.24.0",
8+
"arm:tools/open-cmsis-pack/cmsis-toolbox" : "^2.14.1",
109
"arm:tools/kitware/cmake" : "^4.3.3",
1110
"arm:tools/ninja-build/ninja" : "^1.12.1",
11+
"arm:compilers/arm/armclang" : "^6.24.0",
12+
"arm:compilers/arm/arm-none-eabi-gcc" : "14.3.1",
13+
"arm:compilers/arm/llvm-embedded" : "22.1.0",
1214
"arm:models/arm/avh-fvp" : "^11.31.28"
1315
}
1416
}

0 commit comments

Comments
 (0)