diff --git a/Cargo.lock b/Cargo.lock index e6b56db8..4e709be2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -456,7 +456,7 @@ dependencies = [ "cargo_metadata", "clap", "env_logger", - "esp-idf-part", + "esp-idf-part 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "espflash", "log", "miette", @@ -908,8 +908,18 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] @@ -926,17 +936,42 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.96", +] + [[package]] name = "darling_macro" version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ - "darling_core", + "darling_core 0.14.4", "quote", "syn 1.0.109", ] +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core 0.20.10", + "quote", + "syn 2.0.96", +] + [[package]] name = "dbus" version = "0.9.7" @@ -998,7 +1033,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819b87cc7a05b3abe3fc38e59b3980a5fd3162f25a247116441a9171d3e84481" dependencies = [ "bitvec", - "deku_derive", + "deku_derive 0.16.0", +] + +[[package]] +name = "deku" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709ade444d53896e60f6265660eb50480dd08b77bfc822e5dcc233b88b0b2fba" +dependencies = [ + "bitvec", + "deku_derive 0.17.0", + "no_std_io", + "rustversion", ] [[package]] @@ -1007,13 +1054,26 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e2ca12572239215a352a74ad7c776d7e8a914f8a23511c6cbedddd887e5009e" dependencies = [ - "darling", - "proc-macro-crate", + "darling 0.14.4", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "deku_derive" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7534973f93f9de83203e41c8ddd32d230599fa73fa889f3deb1580ccd186913" +dependencies = [ + "darling 0.20.10", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "der" version = "0.7.9" @@ -1236,7 +1296,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59f50b6c32370067087b46087cd5333f2dfe678f0b01223fa70fde6f15449844" dependencies = [ "csv", - "deku", + "deku 0.16.0", "heapless", "md5", "parse_int", @@ -1247,6 +1307,23 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "esp-idf-part" +version = "0.5.0" +source = "git+https://github.com/esp-rs/esp-idf-part?rev=8cb16c0254d8299fe5a4a692e460f73844e024bf#8cb16c0254d8299fe5a4a692e460f73844e024bf" +dependencies = [ + "csv", + "deku 0.17.0", + "heapless", + "md-5", + "parse_int", + "regex", + "serde", + "serde_plain", + "strum", + "thiserror 1.0.69", +] + [[package]] name = "espflash" version = "4.0.0-dev" @@ -1264,7 +1341,7 @@ dependencies = [ "dialoguer", "directories", "env_logger", - "esp-idf-part", + "esp-idf-part 0.5.0 (git+https://github.com/esp-rs/esp-idf-part?rev=8cb16c0254d8299fe5a4a692e460f73844e024bf)", "flate2", "hex", "indicatif", @@ -3108,6 +3185,15 @@ dependencies = [ "libc", ] +[[package]] +name = "no_std_io" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fa5f306a6f2c01b4fd172f29bb46195b1764061bf926c75e96ff55df3178208" +dependencies = [ + "memchr", +] + [[package]] name = "nom" version = "7.1.3" @@ -3461,6 +3547,15 @@ dependencies = [ "toml_edit 0.19.15", ] +[[package]] +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit 0.22.22", +] + [[package]] name = "proc-macro2" version = "1.0.92" diff --git a/espflash/Cargo.toml b/espflash/Cargo.toml index 2f942aee..a33fb035 100644 --- a/espflash/Cargo.toml +++ b/espflash/Cargo.toml @@ -38,7 +38,7 @@ defmt-parser = { version = "=0.4.1", features = ["unstable"], optional = true dialoguer = { version = "0.11.0", optional = true } directories = { version = "5.0.1", optional = true } env_logger = { version = "0.11.6", optional = true } -esp-idf-part = "0.5.0" +esp-idf-part = { version = "0.5.0", git = "https://github.com/esp-rs/esp-idf-part", rev = "8cb16c0254d8299fe5a4a692e460f73844e024bf" } flate2 = "1.0.35" hex = { version = "0.4.3", features = ["serde"] } indicatif = { version = "0.17.9", optional = true } diff --git a/espflash/src/bin/espflash.rs b/espflash/src/bin/espflash.rs index f91642b2..4440e463 100644 --- a/espflash/src/bin/espflash.rs +++ b/espflash/src/bin/espflash.rs @@ -1,3 +1,4 @@ +use espflash::image_format; use std::{ fs::{self, File}, io::Read, diff --git a/espflash/src/elf.rs b/espflash/src/elf.rs index 735a921d..209f2b2c 100644 --- a/espflash/src/elf.rs +++ b/espflash/src/elf.rs @@ -9,7 +9,6 @@ use std::{ }; use xmas_elf::{ - program::Type, sections::{SectionData, ShType}, ElfFile, }; diff --git a/espflash/src/lib.rs b/espflash/src/lib.rs index cd3e6b18..f29b9e32 100644 --- a/espflash/src/lib.rs +++ b/espflash/src/lib.rs @@ -39,7 +39,7 @@ pub mod flasher; pub mod image_format; pub mod targets; -mod elf; +pub mod elf; mod error; // Command-line interface diff --git a/espflash/src/targets/flash_target/esp32.rs b/espflash/src/targets/flash_target/esp32.rs index e2f1e918..af6caed9 100644 --- a/espflash/src/targets/flash_target/esp32.rs +++ b/espflash/src/targets/flash_target/esp32.rs @@ -4,7 +4,7 @@ use flate2::{ write::{ZlibDecoder, ZlibEncoder}, Compression, }; -use log::{info, warn}; +use log::info; use md5::{Digest, Md5}; #[cfg(feature = "serialport")] @@ -159,12 +159,6 @@ impl FlashTarget for Esp32Target { .try_into() })?; - if addr == 0x10000 { - warn!("Writing!"); - std::fs::write("/home/avee/projects/xldata/flash/segment_md5_bin", &segment.data).unwrap(); - } - info!("MD5 checksum: {:?}", checksum_md5); - info!("Flash MD5 checksum: {:?}", flash_checksum_md5.to_be_bytes()); if checksum_md5.as_slice() == flash_checksum_md5.to_be_bytes() { info!( "Segment at address '0x{:x}' has not changed, skipping write",