commit d56701ad8e422cdd4156b5c76517ec035f34ee8b
parent c8dd5e04149aa135a001fbab3afe8f905c3c2ed2
Author: Daniel Barlow <dan@telent.net>
Date: Sun, 18 Jan 2026 17:38:58 +0000
add esp_hal_ota crate
and do the manual setup steps for it
Diffstat:
4 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/.cargo/config.toml b/.cargo/config.toml
@@ -1,5 +1,5 @@
[target.riscv32imc-unknown-none-elf]
-runner = "espflash flash --monitor --chip esp32c3"
+runner = "espflash flash --erase-parts otadata --partition-table ./partitions.csv --monitor --chip esp32c3"
[env]
ESP_LOG="info"
diff --git a/Cargo.lock b/Cargo.lock
@@ -308,6 +308,7 @@ dependencies = [
"esp-backtrace",
"esp-bootloader-esp-idf",
"esp-hal",
+ "esp-hal-ota",
"esp-println",
"esp-radio",
"esp-rtos",
@@ -711,6 +712,17 @@ dependencies = [
]
[[package]]
+name = "esp-hal-ota"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0f57c560af3fe8037ea9aadc094089703a5b6fdd808b7c68650125615d71a8e"
+dependencies = [
+ "embedded-storage",
+ "esp32c3",
+ "log",
+]
+
+[[package]]
name = "esp-hal-procmacros"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/ecu-esp32/Cargo.toml b/ecu-esp32/Cargo.toml
@@ -71,7 +71,9 @@ embassy-net = { version = "0.7.1", features = [
dns-protocol = { version = "0.1.2", default-features = false, features = [
# no "std" feature
] }
-
+esp-hal-ota = { version = "0.4.5", features = [
+ "esp32c3", "log"
+] }
[profile.dev]
diff --git a/partitions.csv b/partitions.csv
@@ -0,0 +1,7 @@
+# https://github.com/filipton/esp-hal-ota/blob/master/partitions.csv.template
+# Name, Type, SubType, Offset, Size, Flags
+nvs, data, nvs, 0x9000, 0x4000,
+otadata, data, ota, 0xd000, 0x2000,
+phy_init, data, phy, 0xf000, 0x1000,
+ota_0, app, ota_0, 0x10000, 0x100000,
+ota_1, app, ota_1, 0x110000, 0x100000,