quad write optional

This commit is contained in:
Sergey Shchelkanov 2023-05-24 15:04:12 +03:00
parent d0ef886952
commit e6c8d763b9
2 changed files with 10 additions and 5 deletions

View File

@ -481,7 +481,7 @@ def get_segments_list(pages_offsets: List[int], segment_size: int) -> List[int]:
return list(segments) 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 result = 0
openocd.halt() openocd.halt()
@ -496,7 +496,10 @@ def write_pages(pages: Dict[int, List[int]], openocd: OpenOcdTclRpc, is_resume=T
page_bytes = pages[page_offset] page_bytes = pages[page_offset]
spifi_write_enable(openocd) spifi_write_enable(openocd)
if (use_quad_spi):
spifi_quad_page_program(openocd, page_offset, page_bytes, 256) spifi_quad_page_program(openocd, page_offset, page_bytes, 256)
else:
spifi_page_program(openocd, page_offset, page_bytes, 256)
spifi_wait_busy(openocd) spifi_wait_busy(openocd)
result = spifi_read_data(openocd, page_offset, 256, page_bytes) result = spifi_read_data(openocd, page_offset, 256, page_bytes)

View File

@ -149,7 +149,7 @@ def segments_to_pages(segments: List[Segment], page_size: int) -> Dict[int, List
return pages 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 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) result |= mik32_eeprom.write_pages(pages_eeprom, openocd, is_resume)
if (pages_spifi.__len__() > 0): if (pages_spifi.__len__() > 0):
# print(pages_spifi) # 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: if run_openocd and proc is not None:
proc.kill() proc.kill()
@ -224,6 +224,8 @@ def createParser():
parser.add_argument('filepath', nargs='?') parser.add_argument('filepath', nargs='?')
parser.add_argument('--run-openocd', dest='run_openocd', parser.add_argument('--run-openocd', dest='run_openocd',
action='store_true', default=False) action='store_true', default=False)
parser.add_argument('--use-quad-spi', dest='use_quad_spi',
action='store_true', default=False)
parser.add_argument( parser.add_argument(
'--openocd-host', dest='openocd_host', default='127.0.0.1') '--openocd-host', dest='openocd_host', default='127.0.0.1')
parser.add_argument('--openocd-port', dest='openocd_port', parser.add_argument('--openocd-port', dest='openocd_port',
@ -241,6 +243,6 @@ if __name__ == '__main__':
if namespace.filepath: if namespace.filepath:
upload_file(namespace.filepath, namespace.openocd_host, 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: else:
print("Nothing to upload") print("Nothing to upload")