nuttx-apps/examples
Marco Casaroli 2492317f15 examples/nxflatxip: Run an NXFLAT module in place out of xipfs.
The point of a writable execute-in-place file system is that a module can
arrive after the firmware was built and still run without being copied into
RAM.  This demonstrates exactly that, end to end: it writes an NXFLAT module
into xipfs the way a download would, declaring the size up front so the
extent is exact, checks the file system can hand out a real flash pointer
for it, and runs two instances concurrently.

Both instances report the address of their own text and of their stack.  The
text address is the same in both and is inside the flash window -- it is the
address the file occupies on the media -- while the stacks differ.  While
they run, the extent carries one pin per instance, which is what stops the
defragmenter relocating code that is executing.

Two subcommands cover the file system rather than the module.  bench times a
bulk read out of the mapped flash before and after a write, which on the
RP2350 is the cost of whichever path the driver used to restore XIP.  defrag
fills the volume, deletes every other file until an allocation genuinely
cannot be satisfied, compacts, retries the same allocation, then verifies
every relocated file byte for byte and again after a remount, printing a
block map at each step.

The module has neither static data nor string constants, and reports through
a callback into the firmware instead of formatting its own output.  That is
not stylistic: the ldnxflat in circulation resolves the GOT entries for .bss
objects into the import table, and drops the addend when it resolves the
PC-relative references to .rodata, so a module using either quietly computes
wrong addresses.  The comment in module/xipmod.c records both.  The callback
also exercises the other direction of the interface, firmware code entered
with the module's data base still live in r10.

Assisted-by: Claude Code:claude-opus-5
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-07-28 16:47:49 +08:00
..
abntcodi examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
adc include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
adjtime !apps: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-22 13:38:25 +08:00
ads7046 examples/ads7046: Add new example for ADS7046 ADC 2025-08-20 02:28:15 +08:00
adxl372_test examples: Add depends on 2025-01-03 21:28:20 +08:00
ajoystick include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
alarm !apps: replace sclock_t with clock_t and drop redundant time_t/off_t casts 2026-05-11 17:38:32 +08:00
amg88xx examples/amg88xx: fix kconfig 2025-02-05 10:51:56 +08:00
apa102 examples: Add depends on 2025-01-03 21:28:20 +08:00
apds9960 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
audio_rttl !examples/audio_rtttl: Implement example using RTTTL library 2026-07-13 10:02:37 +08:00
baromonitor examples/baromonitor: New LVGL example which integrates with barometer 2026-07-20 09:40:04 +08:00
bastest examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
battery include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
ble examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
bme680 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
bmi160 examples/bmi160: Fix typo of depends on 2025-03-07 11:21:34 +01:00
bmp180 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
bmp280 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
bridge include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
buttons sched/signal: Add support to disable partial or all signals 2026-01-15 15:48:54 +08:00
calib_udelay examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
camera include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
can include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
capture include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
cbortest examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
cctype examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
charger !apps: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-22 13:38:25 +08:00
chat include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
chrono signals: fix build and runtime issues when signals all isabled 2026-01-19 22:55:19 +08:00
configdata apps: Replace O_RDOK with O_RDONLY after alias removal 2026-06-28 13:00:52 +02:00
cordic include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
cpuhog examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
cromfs examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
dac examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
dhcpd dhcpd: Supports kernel mode compilation 2026-01-02 12:29:42 -03:00
dhtxx examples: Add depends on 2025-01-03 21:28:20 +08:00
discover include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
djoystick include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
dronecan !apps: drop CONFIG_SYSTEM_TIME64 conditionals 2026-05-11 17:38:32 +08:00
elf examples/elf: extend nxpkg validation coverage. 2026-07-25 12:06:28 -03:00
embedlog examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
esp32_himem examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
etl include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
fb examples/fb: add SMPTE color bar example 2026-07-28 10:46:12 +08:00
fbcon include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
fboverlay examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
flash_test examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
flowc include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
fmsynth examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
foc !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
ft80x include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
ftpc examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
ftpd include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
fxos8700cq_test examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
gpio examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
gps examples: gps: bound NMEA line reads 2026-07-06 16:31:53 +08:00
hall include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
hdc1008_demo examples: Add depends on 2025-01-03 21:28:20 +08:00
hello examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
hello_d examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
hello_nim examples/hello_nim/Kconfig: name consistent with other Hello World apps 2026-04-13 00:28:32 +08:00
hello_swift examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
hello_wasm examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
hello_zig examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
helloxx include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
hidkbd examples: Add depends on 2025-01-03 21:28:20 +08:00
hts221_reader include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
hx711 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
i2schar include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
i2sloop signals: fix build and runtime issues when signals all isabled 2026-01-19 22:55:19 +08:00
igmp include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
ina219 examples: Add depends on 2025-01-03 21:28:20 +08:00
ina226 examples: Add depends on 2025-01-03 21:28:20 +08:00
ini_dumper examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
ipcfg include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
ipforward signals: fix build and runtime issues when signals all isabled 2026-01-19 22:55:19 +08:00
isl29023 examples: Add depends on 2025-01-03 21:28:20 +08:00
json examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
keyboard include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
leds examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
leds_rust examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
leds_zig examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
lely_master examples: add Lely CANopen master example 2026-07-06 11:02:13 -03:00
lely_slave examples: add Lely CANopen slave example 2026-07-06 11:02:13 -03:00
libtest examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
lis3dsh_reader include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
lp503x examples: lp503x: Fix command argument handling 2026-07-09 09:41:15 +08:00
lsm6dsl_reader include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
lsm303_reader include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
lsm330spi_test examples: Add depends on 2025-01-03 21:28:20 +08:00
ltr308 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
lua_module examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
lvgldemo !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
lvglterm examples/lvglterm: add USB HID keyboard input with cursor scrolling 2026-07-07 09:52:42 +08:00
lws_echo examples/lws_echo: Add a simple websocket server example 2026-06-16 14:27:29 -03:00
max31855 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
mcuboot examples/mcuboot: add example to update from binary in local storage 2025-07-16 09:49:45 +08:00
mdnsd examples/mdnsd: Create an event-based starter for mDNS daemon 2026-06-16 14:24:42 -03:00
media examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
microros_pub examples/microros_pub: Add minimal Int32 publisher example. 2026-06-02 00:15:25 +08:00
microros_sub examples/microros_sub: Add minimal Int32 subscriber example. 2026-06-04 14:30:34 +08:00
microwindows examples/microwindows: add mwdemo demo application 2026-07-28 09:53:05 +02:00
mld include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
mlx90614 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
mml_parser examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
modbus examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
modbusmaster examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
module include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
mount apps: Fix unchecked strdup()/asprintf() as requested in #1727 2026-05-23 16:30:52 -04:00
mqttc examples/mqttc: add a subscriber client implementation example 2026-07-13 10:02:05 +08:00
mtdpart include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
mtdrwb include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
netlink_route !apps: drop CONFIG_SYSTEM_TIME64 conditionals 2026-05-11 17:38:32 +08:00
netloop examples: Fix network echo receive terminators 2026-07-09 09:27:18 +08:00
netpkt !apps: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-22 13:38:25 +08:00
nettest include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
nimble !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
nimble_blecent !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
nimble_bleprph !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
nng_test include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
noteprintf !compiler: drop CONFIG_HAVE_LONG_LONG and require long long support 2026-05-11 17:38:32 +08:00
nrf24l01_btle examples: nrf24l01_btle: Fix RX terminator bounds 2026-07-09 09:28:21 +08:00
nrf24l01_term examples: nrf24l01_term: reserve RX terminator 2026-07-09 09:30:49 +08:00
null examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
nunchuck include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
nx include/debug.h: fix checkpatch fallout in touched apps files 2026-04-11 10:39:27 -03:00
nxdemo include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
nxflat include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
nxflatxip examples/nxflatxip: Run an NXFLAT module in place out of xipfs. 2026-07-28 16:47:49 +08:00
nxhello include/debug.h: fix checkpatch fallout in touched apps files 2026-04-11 10:39:27 -03:00
nximage include/debug.h: fix checkpatch fallout in touched apps files 2026-04-11 10:39:27 -03:00
nxlines include/debug.h: fix checkpatch fallout in touched apps files 2026-04-11 10:39:27 -03:00
nxmbserver modbus: add nxmodbus 2026-04-20 12:45:17 -03:00
nxscope !compiler: drop CONFIG_HAVE_LONG_LONG and require long long support 2026-05-11 17:38:32 +08:00
nxterm include/debug.h: fix checkpatch fallout in touched apps files 2026-04-11 10:39:27 -03:00
nxtext include/debug.h: fix checkpatch fallout in touched apps files 2026-04-11 10:39:27 -03:00
obd2 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
oneshot !apps: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-22 13:38:25 +08:00
opencyphal examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
optee examples/optee: Correct use of shm reg id and flags 2025-05-13 21:17:51 +08:00
optee_gp tee/libteec, examples/optee_gp: Fix cmake build 2025-08-02 09:59:21 -03:00
pca9635 examples: Add depends on 2025-01-03 21:28:20 +08:00
pdcurses examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
pf_ieee802154 include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
pipe examples/pipe: bugfix testcase of fifo 2026-01-22 19:53:39 +08:00
poll examples: Fix network echo receive terminators 2026-07-09 09:27:18 +08:00
popen apps/examples/popen: Modify kconfig file 2026-01-22 19:52:02 +08:00
posix_spawn include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
posix_stdio examples/posix_stdio: Fix Kconfig to define default stack size 2025-06-01 09:21:15 -03:00
powerled !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
powermonitor include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
pppd examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
pty_test examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
pulsecount examples: add pulse count example 2026-05-22 13:39:32 +08:00
pwfb include/debug.h: fix checkpatch fallout in touched apps files 2026-04-11 10:39:27 -03:00
pwlines include/debug.h: fix checkpatch fallout in touched apps files 2026-04-11 10:39:27 -03:00
pwm examples/pwm: remove refenrences to PULSECOUNT 2026-05-22 13:39:32 +08:00
qencoder include/debug.h: fix checkpatch fallout in touched apps files 2026-04-11 10:39:27 -03:00
random include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
relays include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
rfid_readuid examples: Add depends on 2025-01-03 21:28:20 +08:00
rgbled examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
rng90 examples/rng90: add RNG90 example 2026-06-09 12:36:04 +08:00
romfs apps: Fix unchecked strdup()/asprintf() as requested in #1727 2026-05-23 16:30:52 -04:00
rpmsgsocket rpmsgsocket:add rpmsg socket test cases 2026-01-24 17:07:42 +08:00
rust examples/rust: Show command arguments in hello_rust_cargo 2026-06-20 10:33:46 -03:00
scd41 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
sendmail examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
sensor_fusion examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
serialblaster examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
serialrx examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
serloop examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
settings apps: Fix additional open() arguments. 2026-05-22 13:39:04 +08:00
shm_test examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
sht3x examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
shv-nxboot-updater signals: fix build and runtime issues when signals all isabled 2026-01-19 22:55:19 +08:00
shv-test netutils/libshvc: add Silicon Heaven integration into NuttX and SHV examples 2025-09-24 21:43:07 +08:00
slcd examples: Add depends on 2025-01-03 21:28:20 +08:00
smf system/smf: Port SMF .c/.h files to NuttX 2026-01-05 12:50:04 -05:00
smps !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
sotest examples/sotest: support packaged shared library fixtures. 2026-07-26 20:54:58 +08:00
spislv_test apps/examples: Add path option to SPI Slave test 2026-05-19 07:02:31 -03:00
stat examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
stepper examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
sx127x_demo include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
system examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
tcp_ipc_client examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
tcp_ipc_server examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
tcpblaster include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
tcpecho include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
telnetd examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
termios examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
thttpd examples/thttpd: use procfs for tasks CGI 2026-06-14 08:56:44 -03:00
tiff examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
timer examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
timer_gpio examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
tlpi examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
tmp112 examples/tmp112: Add new example for TMP112 temperature sensor 2025-08-19 14:27:45 +08:00
touchscreen include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
txmorse examples/txmorse: Example application for transmitting Morse code 2026-07-21 05:46:11 -03:00
udgram examples: fix local socket address lengths 2026-07-13 12:28:07 +02:00
udp include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
udpblaster include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
uid style: Fix coding style violations in nuttx-apps 2026-01-12 00:54:48 +08:00
unionfs examples: Add depends to different test cases 2025-03-06 09:34:24 +01:00
usbserial include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
userfs apps: Replace O_RDOK with O_RDONLY after alias removal 2026-06-29 07:42:09 +02:00
usrsocktest apps: Fix O_ACCMODE bitmask checks after Linux flag alignment 2026-06-30 12:19:58 -04:00
ustream examples: fix local socket address lengths 2026-07-13 12:28:07 +02:00
uvc_cam examples/uvc_cam: add UVC camera streaming app 2026-03-30 14:52:06 +08:00
veml6070 examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
wamr_module examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
watchdog !apps: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-22 13:38:25 +08:00
watched examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
watcher include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
webpanel examples/webpanel: Add a web panel application to configure NuttX 2026-06-18 09:14:36 -03:00
webserver include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
wget examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
wgetjson examples: wgetjson: check allocations before use 2026-07-09 09:35:19 +08:00
wiegand examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
ws2812 include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
ws2812esp32rmt include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
xbc_test examples: Add depends on 2025-01-03 21:28:20 +08:00
xedge_demo signals: fix build and runtime issues when signals all isabled 2026-01-19 22:55:19 +08:00
xmlrpc examples: xmlrpc: bound header value copy 2026-07-09 09:27:44 +08:00
zerocross include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
.gitignore Remove extra whitespace from files (#43) 2020-01-31 08:29:24 -06:00
CMakeLists.txt examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
Make.defs examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00
Makefile examples: migrate to SPDX identifier 2024-12-30 18:02:50 +08:00