diff --git a/.github/workflows/build-stm.yml b/.github/workflows/build-stm.yml
index bd393eb..57afd2c 100644
--- a/.github/workflows/build-stm.yml
+++ b/.github/workflows/build-stm.yml
@@ -15,12 +15,16 @@ jobs:
strategy:
fail-fast: false
matrix:
- example: [stm32-blink]
+ example: [stm32-blink, stm32-lvgl]
steps:
- name: Checkout repo
uses: actions/checkout@v4
+ - name: Fixup for running locally in act
+ if: ${{ env.ACT }}
+ run: echo /opt/acttoolcache/node/18.20.8/x64/bin >> $GITHUB_PATH
+
- name: Set up Python
uses: actions/setup-python@v5
with:
@@ -32,8 +36,21 @@ jobs:
- name: Install Swift
uses: ./.github/actions/install-swift
+ - name: Set environment variables
+ run: |
+ echo "STM_BOARD=STM32F746G_DISCOVERY" >> $GITHUB_ENV
+
- name: Build ${{ matrix.example }}
working-directory: ${{ matrix.example }}
run: |
- export STM_BOARD=STM32F746G_DISCOVERY
- ./build-elf.sh
+ if [[ -f ./fetch-dependencies.sh ]]; then
+ ./fetch-dependencies.sh
+ fi
+
+ if [[ -f ./build-elf.sh ]]; then
+ ./build-elf.sh
+ fi
+
+ if [[ -f Makefile ]]; then
+ make
+ fi
diff --git a/.swiftformatignore b/.swiftformatignore
index 3dd7359..cec22c7 100644
--- a/.swiftformatignore
+++ b/.swiftformatignore
@@ -1,4 +1,6 @@
./harmony/*
+./stm32-lvgl/*
./stm32-lcd-logo/Sources/STM32F7X6/*
+./stm32-lvgl/Sources/Registers/*
./stm32-neopixel/Sources/STM32F7X6/*
./stm32-uart-echo/Sources/STM32F7X6/*
diff --git a/README.md b/README.md
index 6a66e10..ce75082 100644
--- a/README.md
+++ b/README.md
@@ -33,6 +33,7 @@ Each example in this repository contains build and deployment instructions, howe
| [rpi-picow-blink-sdk](./rpi-picow-blink-sdk) | Raspberry Pi Pico W | Pico SDK | Blink an LED to signal 'SOS' in Morse code repeatedly with Swift & the Pico SDK. |
|
| [stm32-blink](./stm32-blink) | STM32F746G-DISCO | None | Blink an LED repeatedly. |
|
| [stm32-lcd-logo](./stm32-lcd-logo) | STM32F746G-DISCO | None | Animate the Swift Logo on the built-in LCD. |
|
+| [stm32-lvgl](./stm32-lvgl) | STM32F746G-DISCO | – | Baremetal setup of LCD, touch panel, DRAM, using the LLVM Embedded toolchain for ARM. Renders graphics, animations, and reacts to user input via LVGL. Includes a macOS/Linux SDL based host simulation app. |
|
| [stm32-neopixel](./stm32-neopixel) | STM32F746G-DISCO | None | Control NeoPixel LEDs using SPI. |
|
| [stm32-uart-echo](./stm32-uart-echo) | STM32F746G-DISCO | None | Echo user input using UART. |
|
diff --git a/Tools/elf2hex.py b/Tools/elf2hex.py
index 37d360e..acb8450 100755
--- a/Tools/elf2hex.py
+++ b/Tools/elf2hex.py
@@ -18,11 +18,23 @@
# file format suitable for flashing onto some embedded devices.
#
# Usage:
-# $ elf2hex.py