Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
59f1eff
giga: update branch to support display shield
facchinm Feb 5, 2025
dc22eb9
temp: fix display/camera coexistence
facchinm Feb 7, 2025
96b2efc
west.yml: use merged branch
facchinm Feb 7, 2025
1b82c8a
loader: fix ringbuffer exports
facchinm Feb 7, 2025
b580d4a
loader: enable USB only for legacy stack
facchinm Feb 10, 2025
e09f7dd
targets: add portenta c33
facchinm Feb 10, 2025
971a714
fixme: add bootloader reflasher for c33
facchinm Feb 10, 2025
821e8b3
serial: add missing include
facchinm Feb 10, 2025
5527d46
TEMP: get rid of serialEvent
facchinm Feb 10, 2025
5a4c806
c33: fix pwm in loader
facchinm Feb 10, 2025
ad08866
platform: dfu-util: allow skipping dfuse
facchinm Feb 10, 2025
a0baaa5
boards: add portenta c33
facchinm Feb 10, 2025
f23e354
c33: add artifacts
facchinm Feb 10, 2025
451eccb
build_all: add c33
facchinm Feb 10, 2025
83589f6
mass rebuild
facchinm Feb 10, 2025
36225d1
wip: linked build
facchinm Feb 12, 2025
393f256
wip: c33
facchinm Feb 13, 2025
f7dcc94
zephyrClient: fix SSL overload
facchinm Feb 13, 2025
06dffbb
c33: rebuild loader
facchinm Feb 13, 2025
c8d5898
usb: start supporting USB_DEVICE_STACK_NEXT
facchinm Feb 19, 2025
af85c66
loader: move cache config to be board specific
facchinm Feb 19, 2025
811ae31
portenta_c33: rebuild loader
facchinm Feb 19, 2025
01bf953
build.sh: fix shields parameter
facchinm Feb 28, 2025
0c8afc0
west.yml: use arduino remote
facchinm Feb 28, 2025
7f1503c
post-build: refactor to use flag package
pillo79 Feb 26, 2025
fc8985d
loader: cleanups
pillo79 Feb 26, 2025
91647a7
post-build: rework to use empty area in ELF header or add it in binaries
pillo79 Feb 26, 2025
522566e
core: use the new postbuild tool
pillo79 Mar 3, 2025
5898deb
SerialUSB: create SerialUSB object only if CONFIG_USB_CDC_ACM=y
facchinm Mar 6, 2025
c57da5b
loader: fix rw612 and ek_ra8
facchinm Mar 6, 2025
3f58490
gh: test sketch compilation after packaging core
facchinm Mar 6, 2025
1eade10
Arduino.h: fix DIGITAL_PIN_EXISTS macro to avoid comment expansion is…
pillo79 Mar 12, 2025
ac05eb3
Merge remote-tracking branch 'origin/fully_linked' into arduino
pillo79 Mar 21, 2025
87f323b
platform: common extension mapping
pillo79 Mar 4, 2025
43f2d5a
boards: merge common zephyr flags to platform.txt
pillo79 Mar 4, 2025
e48e3af
variants: generate cflags.txt and includes.txt from llext-edk
pillo79 Mar 4, 2025
887577b
build.sh: get the variant name from the Zephyr build system
pillo79 Mar 13, 2025
55eeab3
llext_exports: remove dropped net_buf_get
pillo79 Mar 20, 2025
a255a36
main: fix enable_shell_usb warnings
pillo79 Mar 20, 2025
751d5f6
loader: enable the Arduino API module
pillo79 Mar 20, 2025
a81cbb0
west: use post_4.1 branch for zephyr
pillo79 Mar 20, 2025
d1f9c0d
boards.txt: fix prelinked flag for post_build_tool
facchinm Mar 21, 2025
77ce198
loader: fix loading of prelinked sketch
facchinm Mar 21, 2025
f6effd0
bootstrap: export Zephyr install directory
pillo79 Mar 21, 2025
5477b89
mass rebuild
pillo79 Mar 24, 2025
0ba9bf0
variants: fix multiple USB definition issues
pillo79 Mar 24, 2025
804ccc1
nano33ble: disable stack canaries
facchinm Mar 26, 2025
3bb2f23
SocketWrapper: start restucturing lib
facchinm Mar 26, 2025
30f1330
gh: fix usage as module
facchinm Mar 26, 2025
ec9326e
Ethernet: compile only if enabled in dts
facchinm Mar 26, 2025
45a735b
loader: fix offset for CONFIG_LLEXT_STORAGE_WRITABLE
facchinm Mar 26, 2025
33706ae
loader: add exports for wifiAP
facchinm Mar 26, 2025
253cde8
rw612: enable wifi AP support
facchinm Mar 26, 2025
e85a95d
platform.txt: provide clean BOARDNAME defines
facchinm Mar 26, 2025
79fc9e2
loader: move dhcp server in own ifdef
facchinm Mar 26, 2025
bb294fc
update to llext_exports.c
mjs513 Mar 31, 2025
872c79a
Merge pull request #90 from mjs513/llext_export-fix-for-BMI270
facchinm Mar 31, 2025
99504de
platform: fix paths with spaces
pillo79 Apr 1, 2025
28db333
WiFiAP: fix interface mismatch
facchinm Apr 1, 2025
45f5f11
platform: fix pyocd.upload.pattern
facchinm Apr 1, 2025
252d801
loader: export shared_multi_heap_alloc if SHARED_MULTI_HEAP is enabled
facchinm Apr 1, 2025
4887276
Merge pull request #94 from facchinm/0_3_hotfixes
facchinm Apr 3, 2025
bd3a17b
build: switch to external list of targets
pillo79 Apr 7, 2025
d7191d9
github: optimize CI
pillo79 Apr 7, 2025
c10e060
github: create matrix build to test Blink on all variants
pillo79 Apr 7, 2025
18f027a
github: collect test warnings
pillo79 Apr 7, 2025
9d22251
github: upload artifacts on push
pillo79 Apr 7, 2025
516bef9
github: generate package_index json
pillo79 Apr 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
37 changes: 18 additions & 19 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,41 +1,40 @@
name: Build
name: Build native Zephyr samples

on: [push, pull_request]

jobs:
build:
name: Build native Zephyr samples
runs-on: ubuntu-latest
container: zephyrprojectrtos/ci:latest
env:
CMAKE_PREFIX_PATH: /opt/toolchains
CCACHE_IGNOREOPTIONS: -specs=*
REPOSITORY: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: ArduinoCore-zephyr

- name: Initialize
working-directory: ArduinoCore-zephyr
run: |
mkdir build && cd build
west init -m https://github.com/arduino/ArduinoCore-zephyr.git
west update
rm -rf modules/lib/ArduinoCore-zephyr/*
cp -r ../* modules/lib/ArduinoCore-zephyr || true
rm modules/lib/ArduinoCore-zephyr/cores/arduino/api
cp -r modules/lib/ArduinoCore-API/api modules/lib/ArduinoCore-zephyr/cores/arduino/api
west init -m https://github.com/${{ env.REPOSITORY }} --mr ${{ env.BRANCH }}
west update -o=--filter=tree:0

- name: ccache
uses: hendrikmuhs/[email protected]
with:
verbose: 1

- name: Build fade
working-directory: ArduinoCore-zephyr/build
working-directory: build
run: |
west build -p -b arduino_nano_33_ble//sense ../samples/fade
west build -p -b arduino_nano_33_ble//sense modules/lib/ArduinoCore-zephyr/samples/fade

- name: Build i2cdemo
working-directory: ArduinoCore-zephyr/build
working-directory: build
run: |
west build -p -b ek_ra8d1 ../samples/i2cdemo
west build -p -b ek_ra8d1 modules/lib/ArduinoCore-zephyr/samples/i2cdemo

- name: Build adc
working-directory: ArduinoCore-zephyr/build
working-directory: build
run: |
west build -p -b arduino_nano_33_ble//sense ../samples/analog_input
west build -p -b arduino_nano_33_ble/nrf52840/sense modules/lib/ArduinoCore-zephyr/samples/analog_input
177 changes: 166 additions & 11 deletions .github/workflows/package_core.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,187 @@
name: Package core
name: Package, test and upload core

on: [push, pull_request]
on:
push:
branches:
- arduino
pull_request:

jobs:
build:

package-core:
name: Build and package core
runs-on: ubuntu-latest
env:
ZEPHYR_SDK_INSTALL_DIR: /opt/zephyr-sdk-0.16.8
CCACHE_IGNOREOPTIONS: -specs=*
outputs:
CORE_TAG: ${{ env.CORE_TAG }}
CORE_ARTIFACT: ${{ env.CORE_ARTIFACT }}
BOARD_NAMES: ${{ env.BOARD_NAMES }}
steps:
- name: Install toolchain
working-directory: /opt
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends git cmake wget python3-pip ninja-build
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.8/zephyr-sdk-0.16.8_linux-x86_64_minimal.tar.xz
sudo apt-get install -y --no-install-recommends git cmake wget python3-pip ninja-build ccache
wget -nv https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.8/zephyr-sdk-0.16.8_linux-x86_64_minimal.tar.xz
tar xf zephyr-sdk-0.16.8_linux-x86_64_minimal.tar.xz && cd zephyr-sdk-0.16.8 && ./setup.sh -t arm-zephyr-eabi -c

- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false

- name: Initialize
run: |
./extra/bootstrap.sh
./extra/build_all.sh
./extra/package.sh `git describe --always`
mv ../arduino-core-zephyr-llext* .
./extra/bootstrap.sh -o=--filter=tree:0
echo "CORE_TAG=$(git describe --always)" >> "$GITHUB_ENV"
echo "CORE_ARTIFACT=ArduinoCore-zephyr-$(git describe --always)" >> "$GITHUB_ENV"
echo "BOARD_NAMES=[ $(cat boards.txt | grep '^[^#]*\.build\.variant' | cut -d '.' -f 1 | xargs printf '"%s",' | sed -e 's/,$//') ]" >> "$GITHUB_ENV"

- name: ccache
uses: hendrikmuhs/[email protected]
with:
verbose: 1

- name: Build variants
run: |
./extra/build_all.sh -f

- name: Package
run: |
./extra/package.sh ${{ env.CORE_TAG }}
mv ../${{ env.CORE_ARTIFACT }}.tar.bz2 .

- name: Archive core
uses: actions/upload-artifact@v4
with:
name: Core
path: arduino-core-zephyr-llext*
name: ${{ env.CORE_ARTIFACT }}
path: ${{ env.CORE_ARTIFACT }}.tar.bz2

test-core:
name: Test arduino:zephyr:${{ matrix.board }}
runs-on: ubuntu-latest
needs: package-core
strategy:
matrix:
board: ${{ fromJSON( needs.package-core.outputs.BOARD_NAMES ) }}
fail-fast: false
env:
FQBN: arduino:zephyr:${{ matrix.board }}
steps:
- uses: actions/download-artifact@v4
with:
name: ${{ needs.package-core.outputs.CORE_ARTIFACT }}

- name: Set up core
run: |
tar xf ${{ needs.package-core.outputs.CORE_ARTIFACT }}.tar.bz2

- name: Create Blink sketch
run: |
mkdir Blink/
wget -nv https://raw.githubusercontent.com/arduino/arduino-examples/refs/heads/main/examples/01.Basics/Blink/Blink.ino -P Blink/

- name: Compile Blink for ${{ env.FQBN }}
uses: pillo79/compile-sketches@main
with:
fqbn: ${{ env.FQBN }}
platforms: |
# Use Board Manager to install the latest release of Arduino Zephyr Boards to get the toolchain
- name: "arduino:zephyr"
source-url: "https://downloads.arduino.cc/packages/package_zephyr_index.json"
- name: "arduino:zephyr"
source-path: "ArduinoCore-zephyr"
sketch-paths: Blink
verbose: 'false'
enable-deltas-report: 'false'
enable-warnings-report: 'true'
enable-warnings-log: 'true'

- name: Clean up log
run: |
sed -i -e 's!/home/runner/.arduino15/packages/arduino/hardware/zephyr/[^/]*/!!g' sketches-reports/*

- uses: actions/upload-artifact@v4
with:
name: test-report-${{ needs.package-core.outputs.CORE_TAG }}-${{ matrix.board }}
path: sketches-reports/*

collect-logs:
name: Test summary
runs-on: ubuntu-latest
needs:
- package-core
- test-core
if: ${{ !cancelled() && needs.package-core.result == 'success' }}
env:
BOARD_NAMES: ${{ needs.package-core.outputs.BOARD_NAMES }}
steps:
- uses: actions/download-artifact@v4
with:
path: .
pattern: test-report-*
merge-multiple: true

- run: |
echo "### Core test results" >> "$GITHUB_STEP_SUMMARY"
for BOARD in $(echo $BOARD_NAMES | jq -cr '.[]'); do
FQBN="arduino:zephyr:$BOARD"
REPORT_FILE="arduino-zephyr-$BOARD.json"
if [ ! -f $REPORT_FILE ]; then
echo ":x: $BOARD - No report found?" >> "$GITHUB_STEP_SUMMARY"
else
REPORT=$(jq -cr '.boards[0].sketches[0]' $REPORT_FILE)
if ! $(echo $REPORT | jq -cr '.compilation_success') ; then
echo ":x: $BOARD - **Build failed**" >> "$GITHUB_STEP_SUMMARY"
else
WARNINGS=$(echo $REPORT | jq -cr '.warnings.current.absolute // 0')
if [ $WARNINGS -eq 0 ]; then
echo ":white_check_mark: $BOARD - Build successful" >> "$GITHUB_STEP_SUMMARY"
else
echo "<details><summary>:warning: $BOARD - $WARNINGS Warnings:</summary>" >> "$GITHUB_STEP_SUMMARY"
echo >> "$GITHUB_STEP_SUMMARY"
echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY"
echo $REPORT | jq -cr '.warnings_log[]' >> "$GITHUB_STEP_SUMMARY"
echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY"
echo >> "$GITHUB_STEP_SUMMARY"
echo "</details>" >> "$GITHUB_STEP_SUMMARY"
fi
fi
fi
done

publish-artifacts:
name: Publish artifacts
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && github.repository == 'arduino/ArduinoCore-zephyr' }}
needs:
- package-core
- test-core
env:
CORE_ARTIFACT: ${{ needs.package-core.outputs.CORE_ARTIFACT }}
CORE_TAG: ${{ needs.package-core.outputs.CORE_TAG }}
PACKAGE_INDEX_JSON: zephyr-core-${{ needs.package-core.outputs.CORE_TAG }}.json
steps:
- uses: actions/download-artifact@v4
with:
name: ${{ env.CORE_ARTIFACT }}

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.IAM_ROLE }}
aws-region: ${{ secrets.AWS_REGION }}

- name: Upload artifact
run: aws s3 sync ${{ env.CORE_ARTIFACT }}.tar.bz2 s3://${{ secrets.S3_BUCKET }}

- name: Prepare package index snippet
run: ./extra/gen_package_index_json.sh

- name: Archive package index snippet
uses: actions/upload-artifact@v4
with:
name: ${{ env.PACKAGE_INDEX_JSON }}
path: ${{ env.PACKAGE_INDEX_JSON }}
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ if (CONFIG_ARDUINO_API)
endif()
endif()

if (CONFIG_ARDUINO_API)
if (CONFIG_ARDUINO_API AND NOT CONFIG_LLEXT)
add_subdirectory(cores)
add_subdirectory(libraries)
zephyr_include_directories(${variant_dir})
Expand Down
20 changes: 20 additions & 0 deletions Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,23 @@ config ARDUINO_ENTRY
default y

endif

if USB_DEVICE_STACK_NEXT

config USB_DEVICE_PRODUCT
string "USB Device Product"
default "Arduino Generic board"

config USB_DEVICE_MANUFACTURER
string "USB Device Manufacturer"
default "Arduino"

config USB_DEVICE_VID
hex "USB Device Vendor ID"
default 0x2341

config USB_DEVICE_PID
hex "USB Device Product ID"
default 0x0001

endif
Loading
Loading