Skip to content

Commit da82e8f

Browse files
committed
Add dual-build workflow
1 parent 496218b commit da82e8f

2 files changed

Lines changed: 49 additions & 17 deletions

File tree

.github/workflows/build-uf2.yml

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,16 @@ permissions:
1313
jobs:
1414
build:
1515
runs-on: ubuntu-latest
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
variant:
20+
- name: ecm-rndis
21+
use_ecm: "1"
22+
suffix: ecm-rndis
23+
- name: ncm
24+
use_ecm: ""
25+
suffix: ncm
1626

1727
steps:
1828
- name: Checkout repository
@@ -33,15 +43,34 @@ jobs:
3343
git clone --depth 1 https://github.com/raspberrypi/pico-sdk.git "$HOME/pico-sdk"
3444
git -C "$HOME/pico-sdk" submodule update --init
3545
46+
- name: Compute build metadata
47+
id: meta
48+
run: |
49+
echo "commit_id=$(git rev-parse --short=12 HEAD)" >> "$GITHUB_OUTPUT"
50+
3651
- name: Configure CMake
37-
run: cmake -S . -B build -G Ninja -DPICO_SDK_PATH="$HOME/pico-sdk"
52+
run: |
53+
if [ -n "${{ matrix.variant.use_ecm }}" ]; then
54+
cmake -S . -B "build-${{ matrix.variant.suffix }}" -G Ninja \
55+
-DPICO_SDK_PATH="$HOME/pico-sdk" \
56+
-DCMAKE_C_FLAGS="-DUSE_ECM=${{ matrix.variant.use_ecm }}"
57+
else
58+
cmake -S . -B "build-${{ matrix.variant.suffix }}" -G Ninja \
59+
-DPICO_SDK_PATH="$HOME/pico-sdk"
60+
fi
3861
3962
- name: Build firmware
40-
run: cmake --build build --parallel
63+
run: cmake --build "build-${{ matrix.variant.suffix }}" --parallel
64+
65+
- name: Rename UF2 artifact
66+
run: |
67+
mkdir -p dist
68+
cp "build-${{ matrix.variant.suffix }}/picowebserverspi.uf2" \
69+
"dist/maplelink-${{ steps.meta.outputs.commit_id }}-${{ matrix.variant.suffix }}.uf2"
4170
4271
- name: Upload UF2 artifact
4372
uses: actions/upload-artifact@v4
4473
with:
45-
name: picowebserverspi-uf2
46-
path: build/*.uf2
74+
name: maplelink-${{ matrix.variant.suffix }}-uf2
75+
path: dist/maplelink-${{ steps.meta.outputs.commit_id }}-${{ matrix.variant.suffix }}.uf2
4776
if-no-files-found: error

src/tusb_config.h

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -84,19 +84,22 @@ extern "C" {
8484
#define CFG_TUSB_MEM_ALIGN __attribute__((aligned(4)))
8585
#endif
8686

87-
// Use different configurations to test all net devices (also due to resource limitations)
88-
#if TU_CHECK_MCU(OPT_MCU_LPC15XX, OPT_MCU_LPC40XX, OPT_MCU_LPC51UXX, OPT_MCU_LPC54)
89-
#define USE_ECM 1
90-
#elif TU_CHECK_MCU(OPT_MCU_SAMD21, OPT_MCU_SAML21, OPT_MCU_SAML22)
91-
#define USE_ECM 1
92-
#elif TU_CHECK_MCU(OPT_MCU_STM32F0, OPT_MCU_STM32F1)
93-
#define USE_ECM 1
94-
#elif TU_CHECK_MCU(OPT_MCU_MAX32690, OPT_MCU_MAX32650, OPT_MCU_MAX32666, OPT_MCU_MAX78002)
95-
#define USE_ECM 1
96-
#else
97-
//#define USE_ECM 1
98-
#define USE_ECM 0
99-
#define INCLUDE_IPERF
87+
// Use different configurations to test all net devices (also due to resource limitations).
88+
// Allow external override with -DUSE_ECM=0/1.
89+
#ifndef USE_ECM
90+
#if TU_CHECK_MCU(OPT_MCU_LPC15XX, OPT_MCU_LPC40XX, OPT_MCU_LPC51UXX, OPT_MCU_LPC54)
91+
#define USE_ECM 1
92+
#elif TU_CHECK_MCU(OPT_MCU_SAMD21, OPT_MCU_SAML21, OPT_MCU_SAML22)
93+
#define USE_ECM 1
94+
#elif TU_CHECK_MCU(OPT_MCU_STM32F0, OPT_MCU_STM32F1)
95+
#define USE_ECM 1
96+
#elif TU_CHECK_MCU(OPT_MCU_MAX32690, OPT_MCU_MAX32650, OPT_MCU_MAX32666, OPT_MCU_MAX78002)
97+
#define USE_ECM 1
98+
#else
99+
//#define USE_ECM 1
100+
#define USE_ECM 0
101+
#define INCLUDE_IPERF
102+
#endif
100103
#endif
101104

102105
//--------------------------------------------------------------------

0 commit comments

Comments
 (0)