feat(firmware): add SD/FAT spike (Spike 3)

Standalone bench program (src/bin/sd_fat.rs, `just flash-sd`) that mounts
FAT over the EPD's shared SPI2 bus and proves the persistence module's
atomic save: write .tmp, fsync, rename, read back and compare.

Runs SD-only: the EPD's SpiBusDriver holds an exclusive bus lock for its
lifetime, so an arbitrated SD device can't be live alongside it yet. Keeps
CRC required and maps a card that rejects CMD59 to a clear "use a genuine
card" message rather than running the user's notes over an unchecked bus.

sdkconfig gains CONFIG_FATFS_LFN_HEAP (the atomic-save .tmp name isn't valid
8.3) and, temporarily, CONFIG_LOG_MAXIMUM_LEVEL_DEBUG to read the drivers'
per-command R1 bytes during bring-up.
This commit is contained in:
Julien Calixte
2026-07-05 18:16:42 +02:00
parent f77f6697d1
commit 9fc21568e7
4 changed files with 321 additions and 0 deletions

View File

@@ -22,6 +22,13 @@ name = "wifi_tls"
path = "src/bin/wifi_tls.rs"
harness = false
# Spike 3 — SD card (FAT) over the shared SPI2 bus. Standalone bench program.
# Flash with `just flash-sd`.
[[bin]]
name = "sd_fat"
path = "src/bin/sd_fat.rs"
harness = false
[profile.release]
opt-level = "s"