This commit is contained in:
Sergey Shchelkanov 2023-06-22 14:45:08 +03:00
parent 93b0c589dd
commit 5a19b87149

View File

@ -56,6 +56,16 @@ class BootMode(Enum):
def __str__(self): def __str__(self):
return self.value return self.value
def to_memory_type(self) -> MemoryType:
if self.value == 'eeprom':
return MemoryType.EEPROM
if self.value == 'ram':
return MemoryType.RAM
if self.value == 'spifi':
return MemoryType.SPIFI
return MemoryType.UNKNOWN
class MemorySection(NamedTuple): class MemorySection(NamedTuple):
type: MemoryType type: MemoryType
@ -224,13 +234,13 @@ def filter_segments(segments: List[Segment], memory_type: MemoryType, boot_type:
) )
def form_pages(segments: List[Segment]) -> Pages: def form_pages(segments: List[Segment], boot_mode = BootMode.UNDEFINED) -> Pages:
pages_eeprom = segments_to_pages( pages_eeprom = segments_to_pages(
filter_segments(segments, MemoryType.EEPROM), filter_segments(segments, MemoryType.EEPROM, boot_mode.to_memory_type()),
128 128
) )
pages_spifi = segments_to_pages( pages_spifi = segments_to_pages(
filter_segments(segments, MemoryType.SPIFI), filter_segments(segments, MemoryType.SPIFI, boot_mode.to_memory_type()),
256 256
) )
@ -267,7 +277,7 @@ def upload_file(
file = FirmwareFile(filename) file = FirmwareFile(filename)
segments: List[Segment] = file.get_segments() segments: List[Segment] = file.get_segments()
pages: Pages = form_pages(segments) pages: Pages = form_pages(segments, boot_mode)
proc: Union[subprocess.Popen, None] = None proc: Union[subprocess.Popen, None] = None
if is_run_openocd: if is_run_openocd: