From e6c8d763b9ef57608831602ca8a809ab623f0c67 Mon Sep 17 00:00:00 2001 From: Sergey Shchelkanov Date: Wed, 24 May 2023 15:04:12 +0300 Subject: [PATCH] quad write optional --- mik32_spifi.py | 7 +++++-- mik32_upload.py | 8 +++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/mik32_spifi.py b/mik32_spifi.py index 884dea1..96a7a66 100644 --- a/mik32_spifi.py +++ b/mik32_spifi.py @@ -481,7 +481,7 @@ def get_segments_list(pages_offsets: List[int], segment_size: int) -> List[int]: return list(segments) -def write_pages(pages: Dict[int, List[int]], openocd: OpenOcdTclRpc, is_resume=True): +def write_pages(pages: Dict[int, List[int]], openocd: OpenOcdTclRpc, is_resume=True, use_quad_spi=False): result = 0 openocd.halt() @@ -496,7 +496,10 @@ def write_pages(pages: Dict[int, List[int]], openocd: OpenOcdTclRpc, is_resume=T page_bytes = pages[page_offset] spifi_write_enable(openocd) - spifi_quad_page_program(openocd, page_offset, page_bytes, 256) + if (use_quad_spi): + spifi_quad_page_program(openocd, page_offset, page_bytes, 256) + else: + spifi_page_program(openocd, page_offset, page_bytes, 256) spifi_wait_busy(openocd) result = spifi_read_data(openocd, page_offset, 256, page_bytes) diff --git a/mik32_upload.py b/mik32_upload.py index c251662..34d909a 100644 --- a/mik32_upload.py +++ b/mik32_upload.py @@ -149,7 +149,7 @@ def segments_to_pages(segments: List[Segment], page_size: int) -> Dict[int, List return pages -def upload_file(filename: str, host: str = '127.0.0.1', port: int = OpenOcdTclRpc.DEFAULT_PORT, is_resume=True, run_openocd=False) -> int: +def upload_file(filename: str, host: str = '127.0.0.1', port: int = OpenOcdTclRpc.DEFAULT_PORT, is_resume=True, run_openocd=False, use_quad_spi=False) -> int: """ Write ihex or binary file into MIK32 EEPROM or external flash memory @@ -198,7 +198,7 @@ def upload_file(filename: str, host: str = '127.0.0.1', port: int = OpenOcdTclRp result |= mik32_eeprom.write_pages(pages_eeprom, openocd, is_resume) if (pages_spifi.__len__() > 0): # print(pages_spifi) - result |= mik32_spifi.write_pages(pages_spifi, openocd, is_resume) + result |= mik32_spifi.write_pages(pages_spifi, openocd, is_resume, use_quad_spi) if run_openocd and proc is not None: proc.kill() @@ -224,6 +224,8 @@ def createParser(): parser.add_argument('filepath', nargs='?') parser.add_argument('--run-openocd', dest='run_openocd', action='store_true', default=False) + parser.add_argument('--use-quad-spi', dest='use_quad_spi', + action='store_true', default=False) parser.add_argument( '--openocd-host', dest='openocd_host', default='127.0.0.1') parser.add_argument('--openocd-port', dest='openocd_port', @@ -241,6 +243,6 @@ if __name__ == '__main__': if namespace.filepath: upload_file(namespace.filepath, namespace.openocd_host, - namespace.openocd_port, is_resume=(not namespace.keep_halt), run_openocd=namespace.run_openocd) + namespace.openocd_port, is_resume=(not namespace.keep_halt), run_openocd=namespace.run_openocd, use_quad_spi=namespace.use_quad_spi) else: print("Nothing to upload")