From b9e217f35680f3fb554cc8c613871d5128c81786 Mon Sep 17 00:00:00 2001 From: Sergey Shchelkanov Date: Tue, 30 May 2023 15:36:33 +0300 Subject: [PATCH] wip --- mik32_spifi.py | 16 +++++++++------- mik32_upload.py | 3 +-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/mik32_spifi.py b/mik32_spifi.py index b5b9d11..c452384 100644 --- a/mik32_spifi.py +++ b/mik32_spifi.py @@ -298,7 +298,9 @@ def spifi_chip_erase(openocd: OpenOcdTclRpc): def spifi_sector_erase(openocd: OpenOcdTclRpc, address: int): print("Erase sector %s..." % hex(address)) openocd.write_word(SPIFI_CONFIG_ADDR, address) - spifi_intrq_clear(openocd) + # spifi_intrq_clear(openocd) + openocd.write_word(SPIFI_CONFIG_STAT, openocd.read_word( + SPIFI_CONFIG_STAT) | SPIFI_CONFIG_STAT_INTRQ_M) openocd.write_word(SPIFI_CONFIG_STAT, openocd.read_word( SPIFI_CONFIG_STAT) | SPIFI_CONFIG_STAT_INTRQ_M) openocd.write_word(SPIFI_CONFIG_CMD, (CHIP_ERASE_COMMAND << SPIFI_CONFIG_CMD_OPCODE_S) | @@ -311,7 +313,9 @@ def spifi_read_data(openocd: OpenOcdTclRpc, address: int, byte_count: int) -> Li read_data: List[int] = [] openocd.write_word(SPIFI_CONFIG_ADDR, address) - spifi_intrq_clear(openocd) + # spifi_intrq_clear(openocd) + openocd.write_word(SPIFI_CONFIG_STAT, openocd.read_word( + SPIFI_CONFIG_STAT) | SPIFI_CONFIG_STAT_INTRQ_M) openocd.write_word(SPIFI_CONFIG_CMD, (READ_DATA_COMMAND << SPIFI_CONFIG_CMD_OPCODE_S) | (SPIFI_CONFIG_CMD_FRAMEFORM_OPCODE_3ADDR << SPIFI_CONFIG_CMD_FRAMEFORM_S) | (SPIFI_CONFIG_CMD_FIELDFORM_ALL_SERIAL << SPIFI_CONFIG_CMD_FIELDFORM_S) | @@ -357,9 +361,7 @@ def spifi_page_program(openocd: OpenOcdTclRpc, ByteAddress: int, data: List[int] raise Exception("Byte count more than 256") print("Writing page %s..." % hex(ByteAddress)) - # spifi_intrq_clear(openocd) - openocd.write_word(SPIFI_CONFIG_STAT, openocd.read_word( - SPIFI_CONFIG_STAT) | SPIFI_CONFIG_STAT_INTRQ_M) + spifi_intrq_clear(openocd) openocd.write_word(SPIFI_CONFIG_ADDR, ByteAddress) openocd.write_word(SPIFI_CONFIG_IDATA, 0x00) openocd.write_word(SPIFI_CONFIG_CLIMIT, 0x00000000) @@ -388,13 +390,13 @@ def spifi_erase(openocd, erase_type: EraseType = EraseType.CHIP_ERASE, sectors: spifi_write_enable(openocd) spifi_chip_erase(openocd) spifi_wait_busy(openocd) - spifi_check_erase(openocd, 0, 65536) + spifi_check_erase(openocd, 0, 4096) elif erase_type == EraseType.SECTOR_ERASE: for sector in sectors: spifi_write_enable(openocd) spifi_sector_erase(openocd, sector) spifi_wait_busy(openocd) - spifi_check_erase(openocd, sector, sector + 4096) + spifi_check_erase(openocd, sector, sector + 0x800) def spifi_write(openocd: OpenOcdTclRpc, address: int, data: List[int], data_len: int): diff --git a/mik32_upload.py b/mik32_upload.py index 9fa67d7..19d4e9a 100644 --- a/mik32_upload.py +++ b/mik32_upload.py @@ -67,7 +67,7 @@ mik32v0_sections: List[MemorySection] = [ @dataclass class Segment: offset: int - memory: MemorySection or None + memory: Union[MemorySection, None] data: List[int] @@ -205,7 +205,6 @@ def upload_file( if run_openocd: cmd = shlex.split("%s -s %s -f interface/ftdi/m-link.cfg -f target/mik32.cfg" % ( openocd_path, scripts_path), posix=False) - print(cmd) proc = subprocess.Popen( cmd, creationflags=subprocess.CREATE_NEW_CONSOLE | subprocess.SW_HIDE)