mirror of
https://github.com/MikronMIK32/mik32-uploader.git
synced 2026-01-01 13:37:03 +03:00
Исправление проверки сектора
This commit is contained in:
parent
a68b2eedb7
commit
01975b377c
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,6 +4,7 @@ openocd
|
||||
*.code-workspace
|
||||
dist
|
||||
mik32_upload.spec
|
||||
/build
|
||||
/upload_drivers/jtag_spifi/.pio/build/mik32v2/hal_core
|
||||
/upload_drivers/jtag_spifi/.pio/build/mik32v2/hal_peripherals
|
||||
/upload_drivers/jtag_spifi/.pio/build/mik32v2/hal_utilities
|
||||
|
||||
@ -392,15 +392,8 @@ def write_pages(pages: Dict[int, List[int]], openocd: OpenOcdTclRpc, use_quad_sp
|
||||
return 0
|
||||
|
||||
|
||||
def wait_halted(openocd: OpenOcdTclRpc, timeout_seconds: float = 2) -> int:
|
||||
start_time = time.perf_counter()
|
||||
while ("halted" not in openocd.run("riscv.cpu curstate")):
|
||||
if (time.perf_counter() - start_time) > timeout_seconds:
|
||||
print("Wait halted TIMEOUT!")
|
||||
openocd.halt()
|
||||
return 1
|
||||
time.sleep(0.01)
|
||||
return 0
|
||||
def wait_halted(openocd: OpenOcdTclRpc, timeout_seconds: float = 2):
|
||||
openocd.run(f'wait_halt {int(timeout_seconds * 1000)}')
|
||||
|
||||
|
||||
def write_pages_by_sectors(pages: Dict[int, List[int]], openocd: OpenOcdTclRpc, use_quad_spi=False, use_chip_erase=False):
|
||||
@ -429,36 +422,6 @@ def write_pages_by_sectors(pages: Dict[int, List[int]], openocd: OpenOcdTclRpc,
|
||||
openocd.run("wp 0x2003000 4 w")
|
||||
openocd.resume(0x2000000)
|
||||
wait_halted(openocd)
|
||||
openocd.halt()
|
||||
|
||||
# spifi erase
|
||||
#
|
||||
# for sector in sectors_list:
|
||||
# print(f"Erase sector {sector}", flush=True)
|
||||
# openocd.write_word(0x02002000, 0b0010 | (sector << 8))
|
||||
# openocd.resume()
|
||||
# if wait_halted(openocd) != 0:
|
||||
# return 1
|
||||
# print(
|
||||
# f"Erase sector {sector} result {openocd.read_word(0x02002008)}", flush=True)
|
||||
|
||||
# spifi erase check
|
||||
#
|
||||
# for sector in sectors_list:
|
||||
# # print(f"Erase sector {sector}", flush=True)
|
||||
# # openocd.write_word(0x02002000, 0b0010 | sector)
|
||||
# # openocd.resume()
|
||||
# # if wait_halted(openocd) != 0:
|
||||
# # return 1
|
||||
# # print(f"Erase sector {sector} result {openocd.read_word(0x02002008)}", flush=True)
|
||||
|
||||
# page_bytes = [0xff] * 256
|
||||
|
||||
# result = spifi_read_data(openocd, sector, 256, page_bytes)
|
||||
|
||||
# if result == 1:
|
||||
# print("Data error")
|
||||
# return result
|
||||
|
||||
for sector in sectors_list:
|
||||
print(f"Program sector {sector}", flush=True)
|
||||
@ -470,53 +433,17 @@ def write_pages_by_sectors(pages: Dict[int, List[int]], openocd: OpenOcdTclRpc,
|
||||
else:
|
||||
bytes_list.extend([0]*256)
|
||||
|
||||
# extend_value = 1 + sector
|
||||
# bytes_list.extend([(extend_value >> 0) & 0xFF, (extend_value >> 8)
|
||||
# & 0xFF, (extend_value >> 16) & 0xFF, (extend_value >> 24) & 0xFF])
|
||||
# print(bytes_list)
|
||||
|
||||
openocd.write_memory(0x02002000, 8, bytes_list)
|
||||
openocd.run(f"set_reg {{t6 {sector}}}")
|
||||
|
||||
openocd.resume()
|
||||
wait_halted(openocd, 60)
|
||||
# openocd.halt()
|
||||
wait_halted(openocd, 10)
|
||||
print(f"Check page result {openocd.read_memory(0x2003000, 32, 1)}")
|
||||
|
||||
print(f"{datetime.datetime.now().time()} Program sector {sector} complete", flush=True)
|
||||
|
||||
|
||||
|
||||
# result = generic_flash.read_data(openocd, sector, 4096, bytes_list)
|
||||
|
||||
# for page in range(16):
|
||||
# page_bytes = pages.get(page * 256 + sector)
|
||||
# if page_bytes is not None:
|
||||
# result = generic_flash.read_data(
|
||||
# openocd, page * 256 + sector, 256, page_bytes, dma=dma_instance)
|
||||
|
||||
# if result == 1:
|
||||
# print("Data error")
|
||||
# return result
|
||||
|
||||
|
||||
init_memory(openocd)
|
||||
|
||||
# check write
|
||||
#
|
||||
# pages_offsets = list(pages)
|
||||
# for index, page_offset in enumerate(pages_offsets):
|
||||
# page_bytes = pages[page_offset]
|
||||
|
||||
# memory_bytes = openocd.read_memory(page_offset + 0x80000000, 8, 256)
|
||||
# print(page_offset, memory_bytes)
|
||||
|
||||
# for i, byte in enumerate(memory_bytes):
|
||||
# if byte != page_bytes[i]:
|
||||
# print("Data error!")
|
||||
# openocd.run("rbp 0x02002010")
|
||||
# return result
|
||||
|
||||
if result == 0:
|
||||
# Прошивка страниц флеш памяти по SPIFI была завершена
|
||||
print("Flashing of flash memory pages via SPIFI has been completed", flush=True)
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
:020000040200F8
|
||||
:10000000FD62938202400100FD12E39E02FE374131
|
||||
:10001000000213010100B7110002938101F5B71529
|
||||
:100020000002938505F537160002130606F5B7168C
|
||||
:100030000002938606F539A083A2050023A056008E
|
||||
:1000400091059106E3EAC5FEB7150002938505F513
|
||||
:1000500037160002130606F5B7160002938606F55A
|
||||
:10001000000213010100B7110002938101D8B71546
|
||||
:100020000002938505D837160002130606D8B716C6
|
||||
:100030000002938606D839A083A2050023A05600AB
|
||||
:1000400091059106E3EAC5FEB7150002938505D830
|
||||
:1000500037160002130606D8B7160002938606D894
|
||||
:1000600039A083A2050023A0560091059106E3EA7A
|
||||
:10007000C5FEB7150002938505F537160002130675
|
||||
:1000800006F521A023A005009105E3EDC5FEB7000C
|
||||
:10007000C5FEB7150002938505D837160002130692
|
||||
:1000800006D821A023A005009105E3EDC5FEB70029
|
||||
:100090000002E780C00AB7000002E780C00AB7008C
|
||||
:1000A0000002E780002373005010F5BF828000003B
|
||||
:1000B0000000000000000000000000000000000040
|
||||
@ -34,67 +34,67 @@
|
||||
:1002000080028145280886C6B137BD47230CF1001E
|
||||
:100210008947230EF1003ED2E177938707082C0827
|
||||
:100220000A85231AF102EF00A07BB640616182804B
|
||||
:10023000757106C726C34AC1CEDED2DCD6DADAD85B
|
||||
:10024000DED622C5E2D4E6D2EAD04D3F371508000B
|
||||
:100250000147814621469305F01113050540BD2253
|
||||
:1002600037150002130545E8452113064002814574
|
||||
:100270006818CD35B707070028183EDCEF00F002FC
|
||||
:1002800037150002130545E941212818EF005015E4
|
||||
:1002900037150002130585EA85293729000237152D
|
||||
:1002A0000002B734000293050900130505ECA929E3
|
||||
:1002B000371A000223A00400856993840400B71A4A
|
||||
:1002C0000002371B0002B71B00022818EF00501174
|
||||
:1002D000E256E1679387176AFD1781C7D84E418BB5
|
||||
:1002E00065FFFE8513054AED0521FE852818EF0000
|
||||
:1002F00030190144130C0900B3068C00B3858F003C
|
||||
:1003000013060010281813040410EF00B012E313B2
|
||||
:1003100034FF514693850AE74800EF00B01AE257D0
|
||||
:1003200051464C0048103ECC02CE02D0EF0090194E
|
||||
:100330002808EF00C07B0144014DB70C0080B38555
|
||||
:100340009F01A29503260C009441630DD6001385EE
|
||||
:10035000CBEE5D2E0D4D1104410CE31234FF23A0B2
|
||||
:10036000A401A5B7B28613058BF1792EEDB7011163
|
||||
:10037000B717080006CE02C402C69387074063126F
|
||||
:10038000F502B70705000947D8CF930700063EC01E
|
||||
:1003900085473EC28A85374508007126F2400561CF
|
||||
:1003A0008280B727080093870780E319F5FEB70717
|
||||
:1003B00005001147D8CF930700303EC037450800ED
|
||||
:1003C00085473EC28A8513050540C1BF011122CC75
|
||||
:1003D00026CA4AC84EC652C42A8406CE2E89B28482
|
||||
:1003E000368ABA896937BD47014563FE2703232052
|
||||
:1003F000040023262401FD575CCC2322440193E70B
|
||||
:1004000014002324340113F744001CC0A1885C4C61
|
||||
:10041000054501C713D56701058991CC6DD9939620
|
||||
:10042000A700E3D606FEF2406244D2444249B249F4
|
||||
:10043000224A0561828061DDFDB7484D1981058939
|
||||
:100440008280411122C406C62A842285FD3775DDCB
|
||||
:10045000B2402244410182809317050137150800FC
|
||||
:10046000C183130505401CD5E9BF411122C406C64E
|
||||
:100470002A840305040009E5B24022444101828038
|
||||
:100480000504D93FFDB75971D6CADAC8DEC6E2C441
|
||||
:10049000E6C2EAC086D6A2D4A6D2CAD0CECED2CCEC
|
||||
:1004A0006EDEAA872E8D930A0003130BA002930B16
|
||||
:1004B000C004130C0002A94C038507006307052242
|
||||
:1004C00013075002138917006311E508038517000D
|
||||
:1004D0006310550903852700138937008544631687
|
||||
:1004E000650B03240D0093074D006355040033048E
|
||||
:1004F00080408944030509003E8D05099377F5FD89
|
||||
:10050000639777010305090093E444000509630E2E
|
||||
:10051000051C13070006AA876356A700930705FE6C
|
||||
:10052000E207E1871307F0046388E70C6342F706EC
|
||||
:1005300013073004638CE70A130740046381E70E56
|
||||
:10054000130720048946638AE70A3937EA8951A0EC
|
||||
:100550001307D0026306E50013892700814441B7E1
|
||||
:100560000385270013893700894495BF330494031A
|
||||
:1005700005092A940305F9FF130404FD930705FDFB
|
||||
:1005800093F7F70FE374F7FE95BF01442547FDB7D6
|
||||
:10059000130750056385E708130780056383E708A1
|
||||
:1005A00013073005E393E7FA832D0D0093094D00FF
|
||||
:1005B00013FA24006E85EF0050052A8D93041D0068
|
||||
:1005C00063150A00636A8D00268D6E85793D636A26
|
||||
:1005D0008D004E8DCA87CDB513050002B53D268D21
|
||||
:1005E000F1BF130500028D3D050DD5B703050D00C4
|
||||
:1005F00093094D009535F1BFA14613F744009309C7
|
||||
:100230000D71232E1114232A9114232441152322F6
|
||||
:10024000511523206115232E7113232C8113232C88
|
||||
:1002500081142328211523263115232A91132328BD
|
||||
:10026000A113693F371508000147814621469305D0
|
||||
:10027000F01113050540A12A37150002130585CE9C
|
||||
:1002800061211306400281456800E935B707070080
|
||||
:1002900028003EC4EF00700137150002130585CF1A
|
||||
:1002A000A5212800EF00700E371500021305C5D0F8
|
||||
:1002B000A129B72A00023715000293850A00130509
|
||||
:1002C00045D2373A000289218144130A0A00371BBC
|
||||
:1002D0000002371C0002856BFE8513058BD323209B
|
||||
:1002E0009A00FE8C15212800EF00300AA246E16733
|
||||
:1002F0009387176AFD1781C7D84E418B65FFE68546
|
||||
:100300002800EF00901293890A00014981443304C8
|
||||
:100310009901CE86A285130600102800EF00300C4C
|
||||
:1003200013060010814508183535A28514181306E8
|
||||
:1003300000102800EF00B0130144130D00101C182A
|
||||
:10034000B3858900A29783C6050003C707006387AA
|
||||
:10035000E600228613050CD5452E8D440504E310D6
|
||||
:10036000A4FF1309091093890910E31279FBADB7B3
|
||||
:100370000111B717080006CE02C402C693870740D2
|
||||
:100380006312F502B70705000947D8CF93070006A7
|
||||
:100390003EC085473EC28A85374508006926F2403F
|
||||
:1003A00005618280B727080093870780E319F5FE6F
|
||||
:1003B000B70705001147D8CF930700303EC0374537
|
||||
:1003C000080085473EC28A8513050540C1BF01115B
|
||||
:1003D00022CC26CA4AC84EC652C42A8406CE2E89CA
|
||||
:1003E000B284368ABA896937BD47014563FE27035F
|
||||
:1003F0002320040023262401FD575CCC2322440142
|
||||
:1004000093E714002324340113F744001CC0A1888F
|
||||
:100410005C4C054501C713D56701058991CC6DD9A1
|
||||
:100420009396A700E3D606FEF2406244D2444249C6
|
||||
:10043000B249224A0561828061DDFDB7484D1981CC
|
||||
:1004400005898280411122C406C62A842285FD378F
|
||||
:1004500075DDB240224441018280931705013715B2
|
||||
:100460000800C183130505401CD5E9BF411122C412
|
||||
:1004700006C62A840305040009E5B240224441016E
|
||||
:1004800082800504D93FFDB75971D6CADAC8DEC6E5
|
||||
:10049000E2C4E6C2EAC086D6A2D4A6D2CAD0CECEE4
|
||||
:1004A000D2CC6EDEAA872E8D930A0003130BA00216
|
||||
:1004B000930BC004130C0002A94C038507006306CC
|
||||
:1004C000052213075002138917006311E5080385FD
|
||||
:1004D00017006310550903852700138937008544E9
|
||||
:1004E0006316650B03240D0093074D00635504004C
|
||||
:1004F000330480408944030509003E8D0509937744
|
||||
:10050000F5FD639777010305090093E444000509AD
|
||||
:10051000630D051C13070006AA876356A7009307FF
|
||||
:1005200005FEE207E1871307F0046387E70C6342E7
|
||||
:10053000F70613073004638BE70A13074004638050
|
||||
:10054000E70E1307200489466389E70A3937EA89E9
|
||||
:1005500049A01307D0026306E500138927008144F0
|
||||
:1005600041B70385270013893700894495BF3304B9
|
||||
:10057000940305092A940305F9FF130404FD930766
|
||||
:1005800005FD93F7F70FE374F7FE95BF0144254788
|
||||
:10059000FDB7130750056384E708130780056382DE
|
||||
:1005A000E70813073005E393E7FA832D0D0093095D
|
||||
:1005B0004D0013FA24006E85F1252A8D93041D0049
|
||||
:1005C00063150A00636A8D00268D6E854535636A62
|
||||
:1005D0008D004E8DCA87D5B513050002BD3D268D11
|
||||
:1005E000F1BF13050002953D050DD5B703050D00BC
|
||||
:1005F00093094D009D35F1BFA14613F744009309BF
|
||||
:100600004D0015C31306400403270D006396C7026F
|
||||
:10061000635407023307E04093E4040131A8A9467C
|
||||
:10062000E9BFC146D9BF130740046395E70003271C
|
||||
@ -107,12 +107,12 @@
|
||||
:100690001307D0022380EDFE938D270093F71400FB
|
||||
:1006A0001305000299C3130500036E8A8988130796
|
||||
:1006B0001A0081E463648A023A8AFD1D3307BD0192
|
||||
:1006C00003050700513BE39A0DFEE3748AF013051E
|
||||
:1006D00000025933050AD5BFEE879DBF3AC62AC42A
|
||||
:1006E000A53B324722453A8AD9B7B650265496548C
|
||||
:1006C00003050700593BE39A0DFEE3748AF0130516
|
||||
:1006D00000026133050AD5BFEE879DBF3AC62AC422
|
||||
:1006E000AD3B324722453A8AD9B7B6502654965484
|
||||
:1006F0000659F649664AD64A464BB64B264C964CA6
|
||||
:10070000064DF25D6561828039712ED24C1006CEA5
|
||||
:1007100032D436D63AD83EDA42DC46DE2EC6A5338F
|
||||
:1007100032D436D63AD83EDA42DC46DE2EC6AD3387
|
||||
:10072000F24021618280B7470800938707402A88FA
|
||||
:100730006303F508B7570800938707806303F50A3A
|
||||
:1007400037470800630CE50A05458280331E1F0108
|
||||
@ -173,76 +173,47 @@
|
||||
:100AB00002C402C62147B707050037550800D8C74A
|
||||
:100AC00005448D478A85130505803EC022C2A139A1
|
||||
:100AD000375508009307C0038A851305058022C295
|
||||
:100AE00022C43EC08931F2406244056182804111D6
|
||||
:100AF00022C406C62A84553F18405C4F93E707017D
|
||||
:100B00005CCF1C441CCB5C4085CB1C43B70610005B
|
||||
:100B1000D58F1CC3144C5C48B240D606CE07D58F87
|
||||
:100B200083460401C206D58F8346C4012244E206EF
|
||||
:100B3000D58F1CCF410182801C43B706F0FFFD1604
|
||||
:100B4000F58FC1BF032305002A8E0325C30113655A
|
||||
:100B50000502232EA3002324C300139626014982F5
|
||||
:100B60004D8E232603012322C300139605016354EF
|
||||
:100B7000060299C20545B1CB01476346D700639C85
|
||||
:100B800008020D4582803386E7000346060005070C
|
||||
:100B9000230AC300DDB799C2054505CB8147E3D0E1
|
||||
:100BA000D7FE03260E00034546013306F7008507EE
|
||||
:100BB0002300A600EDB783270E00FD18DC4F93F746
|
||||
:100BC0000702D5DF11656D8D11E18280B70707003F
|
||||
:100BD00083C7470113F585001D8D3335A000828042
|
||||
:100BE0001C414147D8CF8280E1689388086A014858
|
||||
:100BF0008147014781460146B7052006A1B701118B
|
||||
:100C000006CEA307010089476393F502B705203597
|
||||
:100C1000E1681307F1009388086A01488147854617
|
||||
:100C200001460D37F2400345F10005618280B705AA
|
||||
:100C30002005F9BF011106CE22CC26CA2E844AC84F
|
||||
:100C4000AA84328936C64D37B247E1682286938836
|
||||
:100C5000086A01480147CA86B78580022685616413
|
||||
:100C6000D5351304146A7D1411C485452685413F8A
|
||||
:100C7000058975F9F2406244D24442490561828097
|
||||
:100C8000011106CE22CC26CA2EC6AA84B13F324616
|
||||
:100C9000E1689388086A0148814701478146B705A2
|
||||
:100CA000802026856164793D1304146A7D1411C483
|
||||
:100CB00085452685A937058975F9F2406244D244F5
|
||||
:100CC00005618280B3C7A5008D8BB308C500B1E76D
|
||||
:100CD0008D4763F4C704937735002A87B9EB13F681
|
||||
:100CE000C8FFB306E6409307000263C8D706AE8686
|
||||
:100CF000BA876371C70203A806009107910623AE65
|
||||
:100D000007FFE3EAC7FE9307F6FF998FF19B910770
|
||||
:100D10003E97BE956366170182802A87637E15031E
|
||||
:100D200083C7050005078505A30FF7FEE39AE8FED4
|
||||
:100D3000828083C60500050793773700A30FD7FE8F
|
||||
:100D40008505D1DF83C60500050793773700A30F1C
|
||||
:100D5000D7FE8505F9FF61B78280411122C61304D1
|
||||
:100D6000000283A3050083A2450083AF850003AF83
|
||||
:100D7000C50083AE050103AE450103A3850103A8A9
|
||||
:100D8000C501945113074702B307E640232E77FCB1
|
||||
:100D9000232057FE2322F7FF2324E7FF2326D7FF34
|
||||
:100DA0002328C7FF232A67FE232C07FF232ED7FE05
|
||||
:100DB00093854502E347F4FAAE86BA876371C702AA
|
||||
:100DC00003A806009107910623AE07FFE3EAC7FEDA
|
||||
:100DD0009307F6FF998FF19B91073E97BE95636548
|
||||
:100DE000170132444101828083C70500050785054C
|
||||
:100DF000A30FF7FEE387E8FE83C705000507850517
|
||||
:100E0000A30FF7FEE392E8FEE9BF937735002A8748
|
||||
:100E10009DEFB7867F7F9386F6F7FD551043110748
|
||||
:100E2000B377D600B697D18FD58FE389B7FE8346C7
|
||||
:100E3000C7FFB307A7408DCA8346D7FF9DC20345AE
|
||||
:100E4000E7FF3335A0003E9579158280F9D28347BC
|
||||
:100E50000700050793763700F5FB098F1305F7FFA9
|
||||
:100E600082801385D7FF82801385C7FF82800000B0
|
||||
:100E7000000000000000000000000000040000006E
|
||||
:100E800003000000535441525420445249564552E5
|
||||
:100E90000A0000006D737020696E697420636F6DC5
|
||||
:100EA000706C6574650A000073706966692072650C
|
||||
:100EB00073657420636F6D706C6574650A00000063
|
||||
:100EC000425546464552344B203D20307825303837
|
||||
:100ED000780A0000455241534520534543544F5230
|
||||
:100EE000203078253038780A000000006164647290
|
||||
:100EF0005B3078253038785D206275663A6D656DB7
|
||||
:100F0000203D2030782530387820213D203078254C
|
||||
:100F10003038780A00000000616464725B30782524
|
||||
:100F20003038785D206275663A6D656D203D203001
|
||||
:100F30007825303878203D3D203078253038780AC3
|
||||
:100F400000000000000000000000000000000000A1
|
||||
:100AE00022C43EC08931F240624405618280032302
|
||||
:100AF00005002A8E0325C30113650502232EA300DA
|
||||
:100B00002324C3001396260149824D8E2326030118
|
||||
:100B10002322C300139605016354060299C20545BA
|
||||
:100B2000B1CB01476346D700639C08020D45828024
|
||||
:100B30003386E700034606000507230AC300DDB736
|
||||
:100B400099C2054505CB8147E3D0D7FE03260E00A9
|
||||
:100B5000034546013306F70085072300A600EDB7DD
|
||||
:100B600083270E00FD18DC4F93F70702D5DF1165D0
|
||||
:100B70006D8D11E18280B707070083C7470113F528
|
||||
:100B800085001D8D3335A00082801C414147D8CFA0
|
||||
:100B90008280E1689388086A01488147014781465D
|
||||
:100BA0000146B7052006A1B7011106CEA307010033
|
||||
:100BB00089476393F502B7052035E1681307F10013
|
||||
:100BC0009388086A01488147854601460D37F240FF
|
||||
:100BD0000345F10005618280B7052005F9BF0111C9
|
||||
:100BE00006CE22CC26CA2E844AC8AA84328936C6AA
|
||||
:100BF0004D37B247E16822869388086A0148014769
|
||||
:100C0000CA86B785800226856164D5351304146AC7
|
||||
:100C10007D1411C485452685413F058975F9F2404B
|
||||
:100C20006244D244424905618280011106CE22CC41
|
||||
:100C300026CA2EC6AA84B13F3246E1689388086A64
|
||||
:100C40000148814701478146B705802026856164B8
|
||||
:100C5000793D1304146A7D1411C485452685A9378E
|
||||
:100C6000058975F9F2406244D24405618280E168E9
|
||||
:100C700036879388086AB28601482E868147B70571
|
||||
:100C80008003B5B5937735002A879DEFB7867F7FC0
|
||||
:100C90009386F6F7FD5510431107B377D600B69744
|
||||
:100CA000D18FD58FE389B7FE8346C7FFB307A7402F
|
||||
:100CB0008DCA8346D7FF9DC20345E7FF3335A000A9
|
||||
:100CC0003E9579158280F9D2834707000507937610
|
||||
:100CD0003700F5FB098F1305F7FF82801385D7FFD7
|
||||
:100CE00082801385C7FF828053544152542044525E
|
||||
:100CF000495645520A0000006D737020696E697490
|
||||
:100D000020636F6D706C6574650A000073706966AE
|
||||
:100D10006920726573657420636F6D706C657465AE
|
||||
:100D20000A000000425546464552344B203D2030D3
|
||||
:100D300078253038780A0000455241534520534504
|
||||
:100D400043544F52203078253038780A0000000094
|
||||
:100D5000616464725B3078253038783A30782530B9
|
||||
:100D600032785D206275663A6D656D203D20307881
|
||||
:100D70002530327820213D203078253032780A0025
|
||||
:0400000502000000F5
|
||||
:00000001FF
|
||||
|
||||
@ -0,0 +1 @@
|
||||
{"build_type": "release", "env_name": "mik32v2", "libsource_dirs": ["c:\\Users\\user\\.platformio\\packages\\tool-mik32-uploader\\upload_drivers\\jtag_spifi\\lib", "c:\\Users\\user\\.platformio\\packages\\tool-mik32-uploader\\upload_drivers\\jtag_spifi\\.pio\\libdeps\\mik32v2", "C:\\Users\\user\\.platformio\\lib"], "defines": ["OSC_SYSTEM_VALUE=32000000L", "PLATFORMIO=60115", "MIK32V2"], "includes": {"build": ["c:\\Users\\user\\.platformio\\packages\\tool-mik32-uploader\\upload_drivers\\jtag_spifi\\include", "c:\\Users\\user\\.platformio\\packages\\tool-mik32-uploader\\upload_drivers\\jtag_spifi\\src", "c:\\Users\\user\\.platformio\\packages\\tool-mik32-uploader\\upload_drivers\\jtag_spifi\\-v", "c:\\Users\\user\\.platformio\\packages\\tool-mik32-uploader\\upload_drivers\\jtag_spifi\\src", "C:\\Users\\user\\.platformio\\packages\\framework-mik32v2-sdk\\shared\\include", "C:\\Users\\user\\.platformio\\packages\\framework-mik32v2-sdk\\shared\\periphery", "C:\\Users\\user\\.platformio\\packages\\framework-mik32v2-sdk\\shared\\runtime", "C:\\Users\\user\\.platformio\\packages\\framework-mik32v2-sdk\\shared\\libs", "C:\\Users\\user\\.platformio\\packages\\framework-mik32v2-sdk\\hal\\core\\Include", "C:\\Users\\user\\.platformio\\packages\\framework-mik32v2-sdk\\hal\\peripherals\\Include", "C:\\Users\\user\\.platformio\\packages\\framework-mik32v2-sdk\\hal\\utilities\\Include"], "compatlib": [], "toolchain": ["C:\\Users\\user\\.platformio\\packages\\toolchain-riscv\\riscv-none-elf\\include\\c++\\13.2.0", "C:\\Users\\user\\.platformio\\packages\\toolchain-riscv\\riscv-none-elf\\include\\c++\\13.2.0\\riscv-none-elf", "C:\\Users\\user\\.platformio\\packages\\toolchain-riscv\\lib\\gcc\\riscv-none-elf\\13.2.0\\include", "C:\\Users\\user\\.platformio\\packages\\toolchain-riscv\\lib\\gcc\\riscv-none-elf\\13.2.0\\include-fixed", "C:\\Users\\user\\.platformio\\packages\\toolchain-riscv\\riscv-none-elf\\include"]}, "cc_flags": ["-std=gnu11", "-march=rv32imc_zicsr_zifencei", "-mabi=ilp32", "-mcmodel=medlow", "-Os", "-g3", "-Wall", "-fsigned-char", "-ffunction-sections", "-ffixed-x31"], "cxx_flags": ["-std=gnu++17", "-fabi-version=0", "-fno-exceptions", "-fno-rtti", "-fno-use-cxa-atexit", "-fno-threadsafe-statics", "-march=rv32imc_zicsr_zifencei", "-mabi=ilp32", "-mcmodel=medlow", "-Os", "-g3", "-Wall", "-fsigned-char", "-ffunction-sections", "-ffixed-x31"], "cc_path": "C:\\Users\\user\\.platformio\\packages\\toolchain-riscv\\bin\\riscv-none-elf-gcc.exe", "cxx_path": "C:\\Users\\user\\.platformio\\packages\\toolchain-riscv\\bin\\riscv-none-elf-g++.exe", "gdb_path": "C:\\Users\\user\\.platformio\\packages\\toolchain-riscv\\bin\\riscv-none-elf-gdb.exe", "prog_path": "c:\\Users\\user\\.platformio\\packages\\tool-mik32-uploader\\upload_drivers\\jtag_spifi\\.pio\\build\\mik32v2\\firmware.elf", "svd_path": "C:\\Users\\user\\.platformio\\platforms\\mik32\\misc\\svd\\mik32v2.svd", "compiler_type": "gcc", "targets": [{"name": "upload", "group": "Platform", "title": "Upload"}], "extra": {"flash_images": []}}
|
||||
@ -16,7 +16,7 @@ const int BUFFER4K_SIZE = 4 * 1024;
|
||||
extern uint8_t *BUFFER4K[];
|
||||
extern uint32_t *BUFFER_STATUS[];
|
||||
|
||||
register uint32_t address asm("x31");
|
||||
register uint32_t address_reg asm("x31");
|
||||
|
||||
void SystemClock_Config(void);
|
||||
|
||||
@ -46,6 +46,9 @@ int main()
|
||||
|
||||
while (1)
|
||||
{
|
||||
uint32_t address = address_reg;
|
||||
xprintf("ERASE SECTOR 0x%08x\n", address);
|
||||
// xprintf("*BUFFER_STATUS 0x%08x\n", *BUFFER_STATUS);
|
||||
// asm ("wfi");
|
||||
|
||||
// *BUFFER_STATUS = 1;
|
||||
@ -53,42 +56,26 @@ int main()
|
||||
HAL_SPIFI_Reset(&spifi);
|
||||
HAL_SPIFI_WaitResetClear(&spifi, HAL_SPIFI_TIMEOUT);
|
||||
|
||||
xprintf("ERASE SECTOR 0x%08x\n", address);
|
||||
HAL_SPIFI_W25_SectorErase4K(&spifi, address);
|
||||
|
||||
for (uint32_t ad = 0; ad < BUFFER4K_SIZE; ad += 256)
|
||||
int result = 0;
|
||||
|
||||
for (int ad = 0; ad < BUFFER4K_SIZE; ad += 256)
|
||||
{
|
||||
// xprintf("Write Page 0x%08x from 0x%08x\n", ad + address, (uint8_t *)((uint32_t)BUFFER4K + ad));
|
||||
HAL_SPIFI_W25_PageProgram(&spifi, ad + address, 256, (uint8_t *)((uint32_t)BUFFER4K + ad));
|
||||
}
|
||||
HAL_SPIFI_W25_PageProgram(&spifi, address + ad, 256, (uint8_t *)((uint32_t)BUFFER4K + ad));
|
||||
|
||||
SPIFI_MemoryCommandTypeDef cmd_mem = {
|
||||
.OpCode = 0x03,
|
||||
.FieldForm = SPIFI_CONFIG_CMD_FIELDFORM_ALL_SERIAL,
|
||||
.FrameForm = SPIFI_CONFIG_CMD_FRAMEFORM_OPCODE_3ADDR,
|
||||
.InterimData = 0,
|
||||
.InterimLength = 0,
|
||||
};
|
||||
uint8_t rb[256] = { 0 };
|
||||
HAL_SPIFI_W25_ReadData(&spifi, address + ad, 256, rb);
|
||||
|
||||
SPIFI_MemoryModeConfig_HandleTypeDef spifi_mem = {
|
||||
.Instance = spifi.Instance,
|
||||
.Command = cmd_mem,
|
||||
};
|
||||
|
||||
HAL_SPIFI_MemoryMode_Init(&spifi_mem);
|
||||
|
||||
int result = 0;
|
||||
for (uint32_t ad = 0; ad < BUFFER4K_SIZE; ad += 4)
|
||||
for (uint32_t b = 0; b < 256; b++)
|
||||
{
|
||||
if (*(uint32_t *)(BUFFER4K + ad) != *(uint32_t *)(0x80000000 + address + ad))
|
||||
if (*(uint8_t *)((uint32_t)BUFFER4K + ad + b) != rb[b])
|
||||
{
|
||||
xprintf("addr[0x%08x] buf:mem = 0x%08x != 0x%08x\n", 0x80000000 + address + ad, *(uint32_t *)(BUFFER4K + ad), *(uint32_t *)(0x80000000 + address + ad));
|
||||
xprintf("addr[0x%08x:0x%02x] buf:mem = 0x%02x != 0x%02x\n", (uint32_t)BUFFER4K + ad + b, b, *(uint8_t *)((uint32_t)BUFFER4K + ad + b), rb[b]);
|
||||
result = 3;
|
||||
// break;
|
||||
}
|
||||
else
|
||||
{
|
||||
xprintf("addr[0x%08x] buf:mem = 0x%08x == 0x%08x\n", 0x80000000 + address + ad, *(uint32_t *)(BUFFER4K + ad), *(uint32_t *)(0x80000000 + address + ad));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user