Skip to content

Commit b754206

Browse files
committed
Extract a module inside chip for code specific to the ESP32 and variants
1 parent 91e8ec6 commit b754206

File tree

6 files changed

+66
-58
lines changed

6 files changed

+66
-58
lines changed

espflash/src/chip/esp32.rs renamed to espflash/src/chip/esp32/esp32.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
use crate::chip::Esp32Params;
1+
use std::ops::Range;
22

3-
use crate::image_format::{Esp32BootloaderFormat, ImageFormat, ImageFormatId};
3+
use super::Esp32Params;
44
use crate::{
55
chip::{Chip, ChipType, SpiRegisters},
66
elf::FirmwareImage,
7+
image_format::{Esp32BootloaderFormat, ImageFormat, ImageFormatId},
78
Error, PartitionTable,
89
};
910

10-
use std::ops::Range;
11-
1211
pub struct Esp32;
1312

1413
const IROM_MAP_START: u32 = 0x400d0000;
@@ -27,7 +26,7 @@ pub const PARAMS: Esp32Params = Esp32Params {
2726
app_addr: 0x10000,
2827
app_size: 0x3f0000,
2928
chip_id: 0,
30-
default_bootloader: include_bytes!("../../bootloader/esp32-bootloader.bin"),
29+
default_bootloader: include_bytes!("../../../bootloader/esp32-bootloader.bin"),
3130
};
3231

3332
impl ChipType for Esp32 {

espflash/src/chip/esp32c3.rs renamed to espflash/src/chip/esp32/esp32c3.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
use crate::chip::Esp32Params;
2-
use crate::image_format::{Esp32BootloaderFormat, ImageFormat, ImageFormatId};
1+
use std::ops::Range;
2+
3+
use super::Esp32Params;
34
use crate::{
45
chip::{ChipType, SpiRegisters},
56
elf::FirmwareImage,
7+
image_format::{Esp32BootloaderFormat, ImageFormat, ImageFormatId},
68
Chip, Error, PartitionTable,
79
};
810

9-
use std::ops::Range;
10-
1111
pub struct Esp32c3;
1212

1313
const IROM_MAP_START: u32 = 0x42000000;
@@ -26,7 +26,7 @@ pub const PARAMS: Esp32Params = Esp32Params {
2626
app_addr: 0x10000,
2727
app_size: 0x3f0000,
2828
chip_id: 5,
29-
default_bootloader: include_bytes!("../../bootloader/esp32c3-bootloader.bin"),
29+
default_bootloader: include_bytes!("../../../bootloader/esp32c3-bootloader.bin"),
3030
};
3131

3232
impl ChipType for Esp32c3 {

espflash/src/chip/esp32s2.rs renamed to espflash/src/chip/esp32/esp32s2.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
use crate::chip::Esp32Params;
2-
use crate::image_format::{Esp32BootloaderFormat, ImageFormat, ImageFormatId};
1+
use std::ops::Range;
2+
3+
use super::Esp32Params;
34
use crate::{
45
chip::{ChipType, SpiRegisters},
56
elf::FirmwareImage,
7+
image_format::{Esp32BootloaderFormat, ImageFormat, ImageFormatId},
68
Chip, Error, PartitionTable,
79
};
810

9-
use std::ops::Range;
10-
1111
pub struct Esp32s2;
1212

1313
const IROM_MAP_START: u32 = 0x40080000;
@@ -26,7 +26,7 @@ pub const PARAMS: Esp32Params = Esp32Params {
2626
app_addr: 0x10000,
2727
app_size: 0x100000,
2828
chip_id: 2,
29-
default_bootloader: include_bytes!("../../bootloader/esp32s2-bootloader.bin"),
29+
default_bootloader: include_bytes!("../../../bootloader/esp32s2-bootloader.bin"),
3030
};
3131

3232
impl ChipType for Esp32s2 {

espflash/src/chip/esp32/mod.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
use crate::PartitionTable;
2+
3+
mod esp32;
4+
mod esp32c3;
5+
mod esp32s2;
6+
7+
pub use esp32::Esp32;
8+
pub use esp32c3::Esp32c3;
9+
pub use esp32s2::Esp32s2;
10+
11+
#[derive(Clone, Copy, Debug)]
12+
pub struct Esp32Params {
13+
pub boot_addr: u32,
14+
pub partition_addr: u32,
15+
pub nvs_addr: u32,
16+
pub nvs_size: u32,
17+
pub phy_init_data_addr: u32,
18+
pub phy_init_data_size: u32,
19+
pub app_addr: u32,
20+
pub app_size: u32,
21+
pub chip_id: u16,
22+
pub default_bootloader: &'static [u8],
23+
}
24+
25+
impl Esp32Params {
26+
pub fn default_partition_table(&self) -> PartitionTable {
27+
PartitionTable::basic(
28+
self.nvs_addr,
29+
self.nvs_size,
30+
self.phy_init_data_addr,
31+
self.phy_init_data_size,
32+
self.app_addr,
33+
self.app_size,
34+
)
35+
}
36+
}

espflash/src/chip/esp8266.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
use super::ChipType;
2-
use crate::{chip::SpiRegisters, elf::FirmwareImage, Chip, Error, PartitionTable};
3-
4-
use crate::error::UnsupportedImageFormatError;
5-
use crate::image_format::{Esp8266Format, ImageFormat, ImageFormatId};
6-
71
use std::ops::Range;
82

9-
pub const IROM_MAP_START: u32 = 0x40200000;
3+
use super::ChipType;
4+
use crate::{
5+
chip::SpiRegisters,
6+
elf::FirmwareImage,
7+
error::UnsupportedImageFormatError,
8+
image_format::{Esp8266Format, ImageFormat, ImageFormatId},
9+
Chip, Error, PartitionTable,
10+
};
11+
12+
const IROM_MAP_START: u32 = 0x40200000;
1013
const IROM_MAP_END: u32 = 0x40300000;
1114

1215
pub struct Esp8266;

espflash/src/chip/mod.rs

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
1+
use std::ops::Range;
2+
13
use strum_macros::Display;
24

35
use crate::{
46
elf::FirmwareImage,
57
error::ChipDetectError,
68
flash_target::{Esp32Target, Esp8266Target, FlashTarget, RamTarget},
79
flasher::SpiAttachParams,
10+
image_format::{ImageFormat, ImageFormatId},
811
Error, PartitionTable,
912
};
1013

11-
use crate::image_format::{ImageFormat, ImageFormatId};
12-
pub use esp32::Esp32;
13-
pub use esp32c3::Esp32c3;
14-
pub use esp32s2::Esp32s2;
15-
pub use esp8266::Esp8266;
16-
use std::ops::Range;
17-
1814
mod esp32;
19-
mod esp32c3;
20-
mod esp32s2;
2115
mod esp8266;
2216

17+
pub use esp32::{Esp32, Esp32Params, Esp32c3, Esp32s2};
18+
pub use esp8266::Esp8266;
19+
2320
pub trait ChipType {
2421
const CHIP_DETECT_MAGIC_VALUE: u32;
2522
const CHIP_DETECT_MAGIC_VALUE2: u32 = 0x0; // give default value, as most chips don't only have one
@@ -198,30 +195,3 @@ impl Chip {
198195
}
199196
}
200197
}
201-
202-
#[derive(Clone, Copy, Debug)]
203-
pub struct Esp32Params {
204-
pub boot_addr: u32,
205-
pub partition_addr: u32,
206-
pub nvs_addr: u32,
207-
pub nvs_size: u32,
208-
pub phy_init_data_addr: u32,
209-
pub phy_init_data_size: u32,
210-
pub app_addr: u32,
211-
pub app_size: u32,
212-
pub chip_id: u16,
213-
pub default_bootloader: &'static [u8],
214-
}
215-
216-
impl Esp32Params {
217-
pub fn default_partition_table(&self) -> PartitionTable {
218-
PartitionTable::basic(
219-
self.nvs_addr,
220-
self.nvs_size,
221-
self.phy_init_data_addr,
222-
self.phy_init_data_size,
223-
self.app_addr,
224-
self.app_size,
225-
)
226-
}
227-
}

0 commit comments

Comments
 (0)