@@ -7,8 +7,9 @@ use crate::{
7
7
Error , PartitionTable ,
8
8
} ;
9
9
10
- use std:: { io:: Write , str :: FromStr } ;
10
+ use std:: io:: Write ;
11
11
12
+ use crate :: error:: { ChipDetectError , FlashDetectError } ;
12
13
use crate :: flash_target:: { Esp32Target , Esp8266Target , FlashTarget , RamTarget } ;
13
14
use crate :: flasher:: SpiAttachParams ;
14
15
pub use esp32:: Esp32 ;
@@ -102,14 +103,14 @@ pub enum Chip {
102
103
}
103
104
104
105
impl Chip {
105
- pub fn from_magic ( magic : u32 ) -> Option < Self > {
106
+ pub fn from_magic ( magic : u32 ) -> Result < Self , ChipDetectError > {
106
107
match magic {
107
- Esp32 :: CHIP_DETECT_MAGIC_VALUE => Some ( Chip :: Esp32 ) ,
108
+ Esp32 :: CHIP_DETECT_MAGIC_VALUE => Ok ( Chip :: Esp32 ) ,
108
109
Esp32c3 :: CHIP_DETECT_MAGIC_VALUE | Esp32c3 :: CHIP_DETECT_MAGIC_VALUE2 => {
109
- Some ( Chip :: Esp32c3 )
110
+ Ok ( Chip :: Esp32c3 )
110
111
}
111
- Esp8266 :: CHIP_DETECT_MAGIC_VALUE => Some ( Chip :: Esp8266 ) ,
112
- _ => None ,
112
+ Esp8266 :: CHIP_DETECT_MAGIC_VALUE => Ok ( Chip :: Esp8266 ) ,
113
+ _ => Err ( ChipDetectError :: from ( magic ) ) ,
113
114
}
114
115
}
115
116
@@ -154,19 +155,6 @@ impl Chip {
154
155
}
155
156
}
156
157
157
- impl FromStr for Chip {
158
- type Err = Error ;
159
-
160
- fn from_str ( s : & str ) -> Result < Self , Self :: Err > {
161
- match s {
162
- "esp32" => Ok ( Chip :: Esp32 ) ,
163
- "esp32c3" => Ok ( Chip :: Esp32c3 ) ,
164
- "esp8266" => Ok ( Chip :: Esp8266 ) ,
165
- _ => Err ( Error :: UnrecognizedChip ) ,
166
- }
167
- }
168
- }
169
-
170
158
#[ derive( Copy , Clone , Zeroable , Pod , Debug ) ]
171
159
#[ repr( C ) ]
172
160
struct EspCommonHeader {
@@ -186,16 +174,16 @@ struct SegmentHeader {
186
174
187
175
// Note that this function ONLY applies to the ESP32 and variants; the ESP8266
188
176
// has defined its own version rather than using this implementation.
189
- fn encode_flash_size ( size : FlashSize ) -> Result < u8 , Error > {
177
+ fn encode_flash_size ( size : FlashSize ) -> Result < u8 , FlashDetectError > {
190
178
match size {
191
- FlashSize :: Flash256Kb => Err ( Error :: UnsupportedFlash ( size as u8 ) ) ,
192
- FlashSize :: Flash512Kb => Err ( Error :: UnsupportedFlash ( size as u8 ) ) ,
179
+ FlashSize :: Flash256Kb => Err ( FlashDetectError :: from ( size as u8 ) ) ,
180
+ FlashSize :: Flash512Kb => Err ( FlashDetectError :: from ( size as u8 ) ) ,
193
181
FlashSize :: Flash1Mb => Ok ( 0x00 ) ,
194
182
FlashSize :: Flash2Mb => Ok ( 0x10 ) ,
195
183
FlashSize :: Flash4Mb => Ok ( 0x20 ) ,
196
184
FlashSize :: Flash8Mb => Ok ( 0x30 ) ,
197
185
FlashSize :: Flash16Mb => Ok ( 0x40 ) ,
198
- FlashSize :: FlashRetry => Err ( Error :: UnsupportedFlash ( size as u8 ) ) ,
186
+ FlashSize :: FlashRetry => Err ( FlashDetectError :: from ( size as u8 ) ) ,
199
187
}
200
188
}
201
189
0 commit comments