build: Build aller Geräte und README
This commit is contained in:
@@ -0,0 +1,57 @@
|
|||||||
|
# ninlight
|
||||||
|
|
||||||
|
Lokale Firmware für die alten Klyqa-Lampen mit WinnerMicro W600 (E27/E14/GU10 RGB+CW, E27/E14/GU10 CW, G95 Vintage) und das W600-EVK.
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
|
- **Docker Desktop** (primärer Build-Pfad, erste Ausführung baut das Image `ninlight-build`)
|
||||||
|
- **CMake ≥ 3.20**, Ninja, host C compiler (für Host-Tests)
|
||||||
|
- **uv** (für die serielle Konsole)
|
||||||
|
- ARM GNU Toolchain mit newlib: `brew install --cask gcc-arm-embedded` (nur Fallback für nativen Build)
|
||||||
|
|
||||||
|
## Bauen
|
||||||
|
|
||||||
|
Docker (empfohlen – kein lokaler ARM-Compiler nötig):
|
||||||
|
|
||||||
|
tools/docker.sh cmake -S . -B build/evk -G Ninja -DCMAKE_TOOLCHAIN_FILE=cmake/arm-none-eabi.cmake -DNINLIGHT_DEVICE=evk
|
||||||
|
tools/docker.sh cmake --build build/evk
|
||||||
|
tools/docker.sh tools/build_all.sh # alle 8 Geräte
|
||||||
|
|
||||||
|
Native Builds (mit lokal installierter ARM-Toolchain):
|
||||||
|
|
||||||
|
cmake -S . -B build/evk -G Ninja -DCMAKE_TOOLCHAIN_FILE=cmake/arm-none-eabi.cmake -DNINLIGHT_DEVICE=evk
|
||||||
|
cmake --build build/evk
|
||||||
|
|
||||||
|
**Geräte:** evk, e27_rgb, e14_rgb, gu10_rgb, e27_cw, e14_cw, gu10_cw, g95_cw.
|
||||||
|
|
||||||
|
**Lokale Einstellungen** (Token, später WLAN): `config.local.cmake.example` → `config.local.cmake`.
|
||||||
|
|
||||||
|
## Tests
|
||||||
|
|
||||||
|
Host-basierte Unit-Tests (laufen nativ auf dem Mac):
|
||||||
|
|
||||||
|
tools/test_host.sh
|
||||||
|
|
||||||
|
## Flashen und Konsole
|
||||||
|
|
||||||
|
Verfügbare Ports anzeigen:
|
||||||
|
|
||||||
|
build/host-tools/wm_tool -l
|
||||||
|
|
||||||
|
Firmware flashen:
|
||||||
|
|
||||||
|
tools/flash.sh <device> <port>
|
||||||
|
|
||||||
|
Serielle Konsole (115200 8N1, lokales Echo):
|
||||||
|
|
||||||
|
tools/monitor.sh /dev/cu.<port>
|
||||||
|
|
||||||
|
Verfügbare Befehle in der Konsole: `help`.
|
||||||
|
|
||||||
|
## Werksreset
|
||||||
|
|
||||||
|
Gerät 5× hintereinander einschalten, jeweils kürzer als 5 Sekunden.
|
||||||
|
|
||||||
|
## Hardwaretests
|
||||||
|
|
||||||
|
Manuelle Checkliste: `docs/hardware-checklist.md`.
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Builds the firmware for all devices. BUILD_ROOT overrides the output directory (default: build).
|
||||||
|
set -euo pipefail
|
||||||
|
ROOT=$(cd "$(dirname "$0")/.." && pwd)
|
||||||
|
OUT=${BUILD_ROOT:-$ROOT/build}
|
||||||
|
DEVICES=(evk e27_rgb e14_rgb gu10_rgb e27_cw e14_cw gu10_cw g95_cw)
|
||||||
|
for d in "${DEVICES[@]}"; do
|
||||||
|
echo "== $d"
|
||||||
|
cmake -S "$ROOT" -B "$OUT/$d" -G Ninja \
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE="$ROOT/cmake/arm-none-eabi.cmake" -DNINLIGHT_DEVICE="$d" >/dev/null
|
||||||
|
cmake --build "$OUT/$d"
|
||||||
|
done
|
||||||
|
ls -1 "$OUT"/*/ninlight_*.fls
|
||||||
Reference in New Issue
Block a user