From 5a19b871494cb1fa944ef7c056b8a54a41f9fade Mon Sep 17 00:00:00 2001 From: Sergey Shchelkanov Date: Thu, 22 Jun 2023 14:45:08 +0300 Subject: [PATCH] fix --- mik32_upload.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/mik32_upload.py b/mik32_upload.py index bc72be0..1c033f4 100644 --- a/mik32_upload.py +++ b/mik32_upload.py @@ -55,6 +55,16 @@ class BootMode(Enum): def __str__(self): 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): @@ -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( - filter_segments(segments, MemoryType.EEPROM), + filter_segments(segments, MemoryType.EEPROM, boot_mode.to_memory_type()), 128 ) pages_spifi = segments_to_pages( - filter_segments(segments, MemoryType.SPIFI), + filter_segments(segments, MemoryType.SPIFI, boot_mode.to_memory_type()), 256 ) @@ -267,7 +277,7 @@ def upload_file( file = FirmwareFile(filename) segments: List[Segment] = file.get_segments() - pages: Pages = form_pages(segments) + pages: Pages = form_pages(segments, boot_mode) proc: Union[subprocess.Popen, None] = None if is_run_openocd: