Skip to content

Commit 096ac49

Browse files
authored
Merge pull request #56 from esp-rs/correct-flash-addresses
use the correct chip for determining if an address is a flash or rom segment
2 parents 9ab462a + 046c2e9 commit 096ac49

File tree

4 files changed

+8
-9
lines changed

4 files changed

+8
-9
lines changed

espflash/src/chip/esp32.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ impl ChipType for Esp32 {
8383
addr: PARTION_ADDR,
8484
data: Cow::Owned(partition_table),
8585
})))
86-
.chain(once(get_data(image, 0))),
86+
.chain(once(get_data(image, 0, Chip::Esp32))),
8787
)
8888
}
8989
}
@@ -111,6 +111,7 @@ fn test_esp32_rom() {
111111
pub(crate) fn get_data<'a>(
112112
image: &'a FirmwareImage,
113113
chip_id: u16,
114+
chip: Chip,
114115
) -> Result<RomSegment<'a>, Error> {
115116
let mut data = Vec::new();
116117

@@ -137,10 +138,8 @@ pub(crate) fn get_data<'a>(
137138

138139
let mut checksum = ESP_CHECKSUM_MAGIC;
139140

140-
let _ = image.segments().collect::<Vec<_>>();
141-
142-
let flash_segments: Vec<_> = merge_segments(image.rom_segments(Chip::Esp32s2).collect());
143-
let mut ram_segments: Vec<_> = merge_segments(image.ram_segments(Chip::Esp32s2).collect());
141+
let flash_segments: Vec<_> = merge_segments(image.rom_segments(chip).collect());
142+
let mut ram_segments: Vec<_> = merge_segments(image.ram_segments(chip).collect());
144143

145144
let mut segment_count = 0;
146145

espflash/src/chip/esp32c3.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::chip::esp32::get_data;
22
use crate::{
33
chip::{ChipType, SpiRegisters},
44
elf::{FirmwareImage, RomSegment},
5-
Error, PartitionTable,
5+
Chip, Error, PartitionTable,
66
};
77
use std::{borrow::Cow, iter::once};
88

@@ -78,7 +78,7 @@ impl ChipType for Esp32c3 {
7878
addr: PARTITION_ADDR,
7979
data: Cow::Owned(partition_table),
8080
})))
81-
.chain(once(get_data(image, 5))),
81+
.chain(once(get_data(image, 5, Chip::Esp32c3))),
8282
)
8383
}
8484
}

espflash/src/chip/esp32s2.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::chip::esp32::get_data;
22
use crate::{
33
chip::{ChipType, SpiRegisters},
44
elf::{FirmwareImage, RomSegment},
5-
Error, PartitionTable,
5+
Chip, Error, PartitionTable,
66
};
77
use std::{borrow::Cow, iter::once};
88

@@ -77,7 +77,7 @@ impl ChipType for Esp32s2 {
7777
addr: PARTITION_ADDR,
7878
data: Cow::Owned(partition_table),
7979
})))
80-
.chain(once(get_data(image, 2))),
80+
.chain(once(get_data(image, 2, Chip::Esp32s2))),
8181
)
8282
}
8383
}

espflash/tests/data/esp32.bin

-64 KB
Binary file not shown.

0 commit comments

Comments
 (0)