From 046c2e9f4d95a30c01d478b7e4b4b69ae0319338 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 22 Sep 2021 19:16:42 +0200 Subject: [PATCH] use the correct chip for determining if an address is a flash or rom segment --- espflash/src/chip/esp32.rs | 9 ++++----- espflash/src/chip/esp32c3.rs | 4 ++-- espflash/src/chip/esp32s2.rs | 4 ++-- espflash/tests/data/esp32.bin | Bin 145504 -> 79968 bytes 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/espflash/src/chip/esp32.rs b/espflash/src/chip/esp32.rs index 0cb5857c..280643c0 100644 --- a/espflash/src/chip/esp32.rs +++ b/espflash/src/chip/esp32.rs @@ -83,7 +83,7 @@ impl ChipType for Esp32 { addr: PARTION_ADDR, data: Cow::Owned(partition_table), }))) - .chain(once(get_data(image, 0))), + .chain(once(get_data(image, 0, Chip::Esp32))), ) } } @@ -111,6 +111,7 @@ fn test_esp32_rom() { pub(crate) fn get_data<'a>( image: &'a FirmwareImage, chip_id: u16, + chip: Chip, ) -> Result, Error> { let mut data = Vec::new(); @@ -137,10 +138,8 @@ pub(crate) fn get_data<'a>( let mut checksum = ESP_CHECKSUM_MAGIC; - let _ = image.segments().collect::>(); - - let flash_segments: Vec<_> = merge_segments(image.rom_segments(Chip::Esp32s2).collect()); - let mut ram_segments: Vec<_> = merge_segments(image.ram_segments(Chip::Esp32s2).collect()); + let flash_segments: Vec<_> = merge_segments(image.rom_segments(chip).collect()); + let mut ram_segments: Vec<_> = merge_segments(image.ram_segments(chip).collect()); let mut segment_count = 0; diff --git a/espflash/src/chip/esp32c3.rs b/espflash/src/chip/esp32c3.rs index 4d253f80..e11c1f60 100644 --- a/espflash/src/chip/esp32c3.rs +++ b/espflash/src/chip/esp32c3.rs @@ -2,7 +2,7 @@ use crate::chip::esp32::get_data; use crate::{ chip::{ChipType, SpiRegisters}, elf::{FirmwareImage, RomSegment}, - Error, PartitionTable, + Chip, Error, PartitionTable, }; use std::{borrow::Cow, iter::once}; @@ -78,7 +78,7 @@ impl ChipType for Esp32c3 { addr: PARTITION_ADDR, data: Cow::Owned(partition_table), }))) - .chain(once(get_data(image, 5))), + .chain(once(get_data(image, 5, Chip::Esp32c3))), ) } } diff --git a/espflash/src/chip/esp32s2.rs b/espflash/src/chip/esp32s2.rs index cde4edde..74c9fc6b 100644 --- a/espflash/src/chip/esp32s2.rs +++ b/espflash/src/chip/esp32s2.rs @@ -2,7 +2,7 @@ use crate::chip::esp32::get_data; use crate::{ chip::{ChipType, SpiRegisters}, elf::{FirmwareImage, RomSegment}, - Error, PartitionTable, + Chip, Error, PartitionTable, }; use std::{borrow::Cow, iter::once}; @@ -77,7 +77,7 @@ impl ChipType for Esp32s2 { addr: PARTITION_ADDR, data: Cow::Owned(partition_table), }))) - .chain(once(get_data(image, 2))), + .chain(once(get_data(image, 2, Chip::Esp32s2))), ) } } diff --git a/espflash/tests/data/esp32.bin b/espflash/tests/data/esp32.bin index 53c517f0da9964a6ef9c8ea92aefc9efb954efda..4d5eb322138d3938b5a9c714183bc891b98083d8 100644 GIT binary patch delta 93 zcmV-j0HXik@Ce}W1dtd7008?xgp(m8i3A8h%nq~u|IQAv7;qy9%nk@Zlmq|(x6BR! zm;?fh$g?3Nj>xqb0w_2jghH^loBo5hDdg#<0^pKnK|L;7o(15KHy%xVWC@=I(gr0b delta 101 zcmaFxf#tymjtLT*EBFhPSs569+qX=fXx`0q=l14_=ItjoFEEc3X5ny15Z<`z9N*>- zMl)ELHoSpJX{&6NVAQZsNdF=ea8*lvmEY6zI-*x+Ox}2Wz0?1dj5~F&H_O+a+&>)v D