Skip to content

Commit 2875503

Browse files
authored
Merge branch 'Arm-Examples:main' into main
2 parents c16f2f8 + bec784d commit 2875503

5 files changed

Lines changed: 244 additions & 15 deletions

File tree

.github/workflows/Build.yml

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
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
18+
on:
19+
workflow_dispatch:
20+
pull_request:
21+
branches: [main]
22+
push:
23+
branches: [main]
24+
# schedule:
25+
# - cron: '00 20 * * 6'
26+
27+
jobs:
28+
CI:
29+
strategy:
30+
fail-fast: false
31+
matrix:
32+
context: [
33+
# toolchain, example directory, project name, build-type, target-type, artifact name,
34+
{ tool: AC6, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: DebugPlay, target-type: AppKit-E8-U85, artf_name: AC6_DebugPlay_AppKit-E8-U85 },
35+
{ tool: AC6, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: DebugRec, target-type: AppKit-E8-U85, artf_name: AC6_DebugRec_AppKit-E8-U85 },
36+
{ tool: AC6, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: ReleasePlay, target-type: AppKit-E8-U85, artf_name: AC6_ReleasePlay_AppKit-E8-U85 },
37+
{ tool: AC6, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: ReleaseRec, target-type: AppKit-E8-U85, artf_name: AC6_ReleaseRec_AppKit-E8-U85 },
38+
# { tool: GCC, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: DebugPlay, target-type: AppKit-E8-U85, artf_name: GCC_DebugPlay_AppKit-E8-U85 },
39+
# { tool: GCC, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: DebugRec, target-type: AppKit-E8-U85, artf_name: GCC_DebugRec_AppKit-E8-U85 },
40+
# { tool: GCC, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: ReleasePlay, target-type: AppKit-E8-U85, artf_name: GCC_ReleasePlay_AppKit-E8-U85 },
41+
# { tool: GCC, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: ReleaseRec, target-type: AppKit-E8-U85, artf_name: GCC_ReleaseRec_AppKit-E8-U85 },
42+
# { tool: IAR, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: DebugPlay, target-type: AppKit-E8-U85, artf_name: IAR_DebugPlay_AppKit-E8-U85 },
43+
# { tool: IAR, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: DebugRec, target-type: AppKit-E8-U85, artf_name: IAR_DebugRec_AppKit-E8-U85 },
44+
# { tool: IAR, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: ReleasePlay, target-type: AppKit-E8-U85, artf_name: IAR_ReleasePlay_AppKit-E8-U85 },
45+
# { tool: IAR, dir: ./RockPaperScissors/AppKit-E8_USB, proj: AlgorithmTest, build-type: ReleaseRec, target-type: AppKit-E8-U85, artf_name: IAR_ReleaseRec_AppKit-E8-U85 }
46+
]
47+
48+
runs-on: ubuntu-latest
49+
50+
steps:
51+
- name: Checkout repository
52+
uses: actions/checkout@v6
53+
54+
- name: Activate vcpkg
55+
uses: ARM-software/cmsis-actions/vcpkg@v1
56+
with:
57+
config: "./vcpkg-configuration.json"
58+
cache: "ModelNova"
59+
60+
- name: Activate Arm tool license
61+
uses: ARM-software/cmsis-actions/armlm@v1
62+
63+
- name: Initialize CMSIS pack root folder
64+
run: |
65+
cpackget init https://www.keil.com/pack/index.pidx
66+
cpackget update-index
67+
68+
- name: Cache downloaded packs
69+
uses: actions/cache@v5
70+
with:
71+
key: ModelNova
72+
path: /home/runner/.cache/arm/packs/.Download
73+
74+
- name: ${{matrix.context.tool}} Build-Test for context ${{matrix.context.proj}}.${{matrix.context.build-type}}+${{matrix.context.target-type}}
75+
working-directory: ${{matrix.context.dir}}
76+
run: |
77+
cbuild SDS.csolution.yml --context ${{matrix.context.proj}}.${{matrix.context.build-type}}+${{matrix.context.target-type}} --toolchain ${{matrix.context.tool}} --packs
78+
79+
- name: Upload ${{matrix.context.tool}} output for context ${{matrix.context.proj}}.${{matrix.context.build-type}}+${{matrix.context.target-type}}
80+
uses: actions/upload-artifact@v7
81+
with:
82+
name: ${{matrix.context.artf_name}}
83+
path: ${{matrix.context.dir}}/out/${{matrix.context.proj}}/${{matrix.context.target-type}}
84+
include-hidden-files: true
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
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 RockPaperScissors AppKit-E8
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-latest
28+
29+
steps:
30+
- name: Checkout repository
31+
uses: actions/checkout@v6
32+
33+
- name: Activate vcpkg
34+
uses: ARM-software/cmsis-actions/vcpkg@v1
35+
with:
36+
config: "./vcpkg-configuration.json"
37+
cache: "ModelNova"
38+
39+
- name: Activate Arm tool license
40+
uses: ARM-software/cmsis-actions/armlm@v1
41+
42+
- name: Initialize CMSIS pack root folder
43+
run: |
44+
cpackget init https://www.keil.com/pack/index.pidx
45+
cpackget update-index
46+
47+
- name: Cache downloaded packs
48+
uses: actions/cache@v5
49+
with:
50+
key: ModelNova
51+
path: /home/runner/.cache/arm/packs/.Download
52+
53+
- name: Build the target-set
54+
working-directory: ./RockPaperScissors/AppKit-E8_USB
55+
run: |
56+
cbuild SDS.csolution.yml --active AppKit-E8-U85@HIL --packs
57+
58+
- name: Upload output of the built target-set
59+
uses: actions/upload-artifact@v7
60+
with:
61+
name: RPS_AppKit-E8-U85_HIL
62+
path: |
63+
./RockPaperScissors/AppKit-E8_USB/out
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
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: HIL RockPaperScissors AppKit-E8
18+
on:
19+
workflow_dispatch:
20+
pull_request:
21+
branches: [main]
22+
push:
23+
branches: [main]
24+
25+
jobs:
26+
CI:
27+
runs-on: [self-hosted, rsp-p5-01]
28+
29+
steps:
30+
- name: Start the SDSIO server on the Raspberry Pi
31+
run: |
32+
if ! pgrep -f "sdsio-server.py usb" > /dev/null; then
33+
nohup python ~/SDS-Framework/utilities/sdsio-server.py usb > ~/SDS-Framework/utilities/sdsio-server.log 2>&1 &
34+
sleep 2
35+
fi
36+
pgrep -f "sdsio-server.py usb"
37+
tail -n 20 ~/SDS-Framework/utilities/sdsio-server.log || true
38+
39+
- name: Checkout repository
40+
uses: actions/checkout@v6
41+
42+
- name: Download Build Artifact
43+
uses: dawidd6/action-download-artifact@v17
44+
with:
45+
workflow: Build_RPS_AppKit-E8.yml
46+
name: RPS_AppKit-E8-U85_HIL
47+
path: ./RockPaperScissors/AppKit-E8_USB/out
48+
49+
- name: Flash and run using pyOCD
50+
working-directory: ./RockPaperScissors/AppKit-E8_USB/out
51+
run: |
52+
pyocd load --uid L96807771A --cbuild-run SDS+AppKit-E8-U85.cbuild-run.yml
53+
pyocd run --uid L96807771A --cbuild-run SDS+AppKit-E8-U85.cbuild-run.yml -O reset_type=hardware --timelimit 10
54+
55+
- name: Stop the SDSIO server on the Raspberry Pi
56+
run: |
57+
PIDS=$(pgrep -f "sdsio-server.py usb") || true
58+
if [ -n "$PIDS" ]; then
59+
echo "Stopping SDSIO server (PIDs: $PIDS)"
60+
kill $PIDS
61+
else
62+
echo "No SDSIO server running"
63+
fi
64+
65+
- name: Show content of the sdsio-server.log file
66+
run: |
67+
cat ~/SDS-Framework/utilities/sdsio-server.log

RockPaperScissors/AppKit-E8_USB/SDS.csolution.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,25 @@ solution:
2828
- SDSIO-Layer: $SolutionDir()$/sdsio/usb/sdsio_usb.clayer.yml
2929
- AI-Layer: $SolutionDir()$/ai_layer/ai_layer.clayer.yml
3030
target-set:
31-
- set:
31+
- set: J-Link
3232
debugger:
3333
name: J-Link Server
3434
clock: 4000000
3535
protocol: swd
3636
start-pname: M55_HP
3737
images:
3838
- project-context: AlgorithmTest.DebugRec
39+
- set: HIL
40+
debugger:
41+
name: ULINKplus@pyOCD
42+
clock: 10000000
43+
protocol: swd
44+
start-pname: M55_HP
45+
telnet:
46+
- pname: M55_HP
47+
mode: console
48+
images:
49+
- project-context: AlgorithmTest.DebugPlay
3950

4051
# List of different build configurations.
4152
build-types:

vcpkg-configuration.json

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
1-
{
2-
"registries" : [ {
3-
"name" : "arm",
4-
"kind" : "artifact",
5-
"location" : "https://artifacts.tools.arm.com/vcpkg-registry"
6-
} ],
7-
"requires" : {
8-
"arm:tools/open-cmsis-pack/cmsis-toolbox" : "^2.13.0",
9-
"arm:compilers/arm/armclang" : "^6.24.0",
10-
"arm:tools/kitware/cmake" : "^3.31.5",
11-
"arm:tools/ninja-build/ninja" : "^1.12.1",
12-
"arm:models/arm/avh-fvp" : "11.31.28"
13-
}
14-
}
1+
{
2+
"registries": [
3+
{
4+
"name": "arm",
5+
"kind": "artifact",
6+
"location": "https://artifacts.tools.arm.com/vcpkg-registry"
7+
}
8+
],
9+
"requires": {
10+
"arm:tools/open-cmsis-pack/cmsis-toolbox": "^2.13.0",
11+
"arm:compilers/arm/armclang": "^6.24.0",
12+
"arm:compilers/arm/arm-none-eabi-gcc": "^14.3.1",
13+
"arm:compilers/iar/cxarm": "* 9.70.4",
14+
"arm:tools/kitware/cmake": "^3.31.5",
15+
"arm:tools/ninja-build/ninja": "^1.12.1",
16+
"arm:models/arm/avh-fvp": "11.31.28"
17+
}
18+
}

0 commit comments

Comments
 (0)