diff --git a/mik32_debug_hal/eeprom.py b/mik32_debug_hal/eeprom.py index f0cc203..53eaf1e 100644 --- a/mik32_debug_hal/eeprom.py +++ b/mik32_debug_hal/eeprom.py @@ -291,31 +291,27 @@ def write_memory(pages: Dict[int, List[int]], openocd: OpenOcdTclRpc) -> int: openocd.halt() openocd.write_memory(0x02003800, 32, [1]) openocd.run(f"set_reg {{t6 {max_address}}}") - print("EEPROM Init...") pathname = os.path.dirname(sys.argv[0]) openocd.run("wp 0x2003800 4 w") - print("Loading Driver...", flush=True) + + print("Uploading driver...", flush=True) # openocd.run("load_image {%s}" % pathlib.Path(os.path.join(pathname, "firmware.hex"))) openocd.run("load_image {%s}" % pathlib.Path( "C:\\Users\\user\\.platformio\\packages\\tool-mik32-uploader\\upload_drivers\\jtag_eeprom\\.pio\\build\\mik32v2\\firmware.hex" )) - - # openocd.resume(0x2000000) - # wait_halted(openocd) - # print(f"Check page result {openocd.read_memory(0x2003800, 32, 1)}") - print("Uploading data...", flush=True) openocd.write_memory(0x02001800, 8, bytes_list) - print("Uploading data complete!", flush=True) - print("Run driver...", flush=True) + print("Uploading data complete! Run driver...", flush=True) openocd.resume(0x2000000) + wait_halted(openocd, 10) + openocd.run("rwp 0x02003800") + openocd.run("step") print(f"Check page result {openocd.read_memory(0x2003800, 32, 1)}") if result == 0: - # Прошивка страниц флеш памяти по SPIFI была завершена print(f"{datetime.datetime.now().time()} EEPROM recording has been completed", flush=True) return 0 diff --git a/upload_drivers/jtag_eeprom/.pio/build/mik32v2/firmware.hex b/upload_drivers/jtag_eeprom/.pio/build/mik32v2/firmware.hex index 6f352fb..9f62f3a 100644 --- a/upload_drivers/jtag_eeprom/.pio/build/mik32v2/firmware.hex +++ b/upload_drivers/jtag_eeprom/.pio/build/mik32v2/firmware.hex @@ -1,13 +1,13 @@ :020000040200F8 :10000000FD62938202400100FD12E39E02FE374131 -:10001000000213010100B70100029381016CB705D2 -:1000200000029385056C370600021306066CB706BE -:1000300000029386066C39A083A2050023A0560017 -:1000400091059106E3EAC5FEB70500029385056CAC -:100050003706000213060675B70600029386066C83 +:10001000000213010100B70100029381016AB705D4 +:1000200000029385056A370600021306066AB706C2 +:1000300000029386066A39A083A2050023A0560019 +:1000400091059106E3EAC5FEB70500029385056AAE +:10005000370600021306066AB70600029386066A90 :1000600039A083A2050023A0560091059106E3EA7A -:10007000C5FEB70500029385056C3706000213061E -:10008000066C21A023A005009105E3EDC5FEB70095 +:10007000C5FEB70500029385056A37060002130620 +:10008000066A21A023A005009105E3EDC5FEB70097 :100090000002E780C00AB7000002E780C00AB7008C :1000A0000002E780E02273005010F5BF828000005C :1000B0000000000000000000000000000000000040 @@ -33,88 +33,77 @@ :1001F000C1171D8F3E96E374C3F8A5B75D71130652 :1002000080028145280886C6B137BD47230CF1001E :100210008947230EF1003ED2E177938707082C0827 -:100220000A85231AF102552EB64061618280317130 -:1002300006DF22DD26DB4AD952D556D34ED77D3F85 -:100240006146814528003937B70707009387074083 -:1002500005453EC2592861671307076A8D46130694 -:1002600000028145480037240002616941201304DF -:1002700004808144014A1309096A930A000863E96A -:10028000F40105459D20B747000223A0478101A046 -:100290009399040193D90901CA8701479306000283 -:1002A0002286CE8548006520130600088145081087 -:1002B00055354A87930600021010CE854800012A62 -:1002C00001471410B3078700BA9683C6060083C798 -:1002D0000700639AF6000507E31557FF93840408A7 -:1002E0001304040869BF094AD5BFD9AE1C418E0664 -:1002F00003A88700B3E6060193E6060894C71449ED -:1003000099CA814663DDC600CCC323A007003A85A5 -:100310000DE50D458280CCC3814663CCC600944771 -:1003200093E6360094C775D7C8477D17058965FDE4 -:10033000828023A007008506CDB703A8C7007D15DE -:1003400013781800E31608FC8506910565BF03289D -:1003500005000E0783288800336717011367070815 -:100360002324E800184905C301476353D702131536 -:1003700027002322B800329508412320A8003E859B -:100380000DED0D4582802322B8000147634FD70051 -:1003900003278800136757002324E800FDD30325B3 -:1003A000C800FD1705897DF9828093152700B29555 -:1003B0008C4105072320B800D1BF8328C8007D15D4 -:1003C00093F81800E39E08FA0507910579BF1C49C8 -:1003D00089CF814763FFD70003280500BA8823220D -:1003E000B800639108020D45828008414CC163E466 -:1003F000D700014582800C411397270032970CC328 -:100400008507F5B70323C800FD1813731300E31A1B -:1004100003FC832808001398270032982320180132 -:100420008507910545BF0547AA876305E50209478A -:100430006300E506054591EBB7060600DC4A7D77CB -:100440001307F73FF98FDCCA014582807D1719EB4E -:100450000D4582809306004037A707001307071257 -:10046000B7050500905D7D8E75D2370606005C4AA3 -:100470007D771307F73FF98FD58F41115CCA02C60C -:1004800013073006B2476359F700014541018280E6 -:10049000856693860680C9B7B24785073EC6DDB735 -:1004A00091476307F50263EAA7008547630AF504ED -:1004B00089476309F50405458280A147E31DF5FEE0 -:1004C0000947094501A8FD1781EFC8D20D45828073 -:1004D00005470D45B7A7070093870712B706050024 -:1004E000905E798E6DD28A05C98D4111CCD202C63B -:1004F00013073006B247635AF70001454101828075 -:100500001147C9BF21470145F1B7B24785073EC62C -:10051000D5B70547AA876305E50209476302E506E3 -:10052000054591EBB70606009C4A7D771307F73F18 -:10053000F98F9CCA014582807D1719EB0D45828099 -:100540009306004037A7070013070712B7050500F9 -:10055000905D7D8E75D2370706001C4B7D761306A5 -:10056000F63FF18FD58F1CCB85471CCF411102C6BA -:1005700013073006B2476359F700014541018280F5 -:100580008566938606807DBFB24785073EC6DDB788 -:1005900011C98547630DF50205458280FD1791EB72 -:1005A0000D4582800946B7A7070093870712B70653 -:1005B0000500985E718F7DD34111C8D602C613071E -:1005C0003006B2476357F700014541018280054676 -:1005D000D9BFB24785073EC6EDB7011126CAB70499 -:1005E0000600DC4806CE22CC4AC84EC652C456C2CB -:1005F000F19BDCC89C482A89C845F19B9CC883C7ED -:10060000C5012E848A07DCC883C7D5018A079CC828 -:10061000193D0C44AA8A0345440059351848B707C8 -:1006200005002A8A98C358480850D8C3184C98C760 -:10063000CD35AA894850A93F834704002A8793F6FD -:10064000170089E6D44893E62600D4C893F627001D -:1006500099E637060600544A93E6160054CA93F604 -:10066000470099E637060600144A93E6260014CAA6 -:10067000A18B99E7B70606009C4A93E717009CCA2E -:10068000F2406244232059012322490123243901E5 -:100690002326E900D244B249224A924A4A85424975 -:1006A00005618280B7070500DC53054721658D8B06 -:1006B000F9176376F7003755E80113050580828046 -:1006C000411122C406C62A84F13FB70705009C43A6 -:1006D0001307803E8507B357F502B3D7E7020D67CE -:1006E0001307779CB387E7022167130707D0B3D7B7 -:1006F000E70219C4BE82FD12E39F02FE7D147DF85D -:10070000B240224441018280411122C406C62A849B -:10071000513FB70705009C431307803E8507B35739 -:10072000F502B3D7E7022947B387E702216713072A -:1007300007D0B3D7E70219C4BE82FD12E39F02FEC1 -:100740007D147DF8B2402244410182800000000007 +:100220000A85231AF1026526B64061618280317128 +:1002300006DF22DD26DB4AD952D54ED7C1376146CB +:1002400081452800013FB707070061679387074092 +:100250001307076A8D4613060002814548003724BC +:10026000000261693EC2130404809D288144130981 +:10027000096A130A000863E4F4018147A9A093996D +:10028000040193D90901CA87014793060002228617 +:10029000CE8548007D2013060008814508105D3D8D +:1002A0004A87930600021010CE854800192A01479C +:1002B0001410B3078700BA9683C6060083C70700E9 +:1002C0006388F6008947374700022320F78001A0A2 +:1002D0000507E31F47FD938404081304040861BF66 +:1002E0001C418E0603A88700B3E6060193E60608C4 +:1002F00094C7144999CA814663DDC600CCC323A0C4 +:1003000007003A850DE50D458280CCC3814663CC5C +:10031000C600944793E6360094C775D7C8477D1743 +:10032000058965FD828023A007008506CDB703A857 +:10033000C7007D1513781800E31608FC85069105A3 +:1003400065BF032805000E0783288800336717015F +:10035000136707082324E800184905C301476353BE +:10036000D702131527002322B80032950841232015 +:10037000A8003E850DED0D4582802322B80001477F +:10038000634FD70003278800136757002324E80032 +:10039000FDD30325C800FD1705897DF982809315DB +:1003A0002700B2958C4105072320B800D1BF8328D0 +:1003B000C8007D1593F81800E39E08FA050791051B +:1003C00079BF1C4989CF814763FFD7000328050007 +:1003D000BA882322B800639108020D458280084143 +:1003E0004CC163E4D700014582800C41139727007C +:1003F00032970CC38507F5B70323C800FD181373A4 +:100400001300E31A03FC832808001398270032988E +:10041000232018018507910545BF0547AA87630575 +:10042000E50209476300E506054591EBB7060600BE +:10043000DC4A7D771307F73FF98FDCCA01458280DC +:100440007D1719EB0D4582809306004037A7070002 +:1004500013070712B7050500905D7D8E75D237062C +:1004600006005C4A7D771307F73FF98FD58F41115E +:100470005CCA02C613073006B2476359F70001454C +:1004800041018280856693860680C9B7B247850799 +:100490003EC6DDB791476307F50263EAA7008547CB +:1004A000630AF50489476309F50405458280A1477D +:1004B000E31DF5FE0947094501A8FD1781EFC8D2E4 +:1004C0000D45828005470D45B7A7070093870712A2 +:1004D000B7060500905E798E6DD28A05C98D4111EF +:1004E000CCD202C613073006B247635AF700014563 +:1004F000410182801147C9BF21470145F1B7B24789 +:1005000085073EC6D5B70547AA876305E5020947B3 +:100510006302E506054591EBB70606009C4A7D7728 +:100520001307F73FF98F9CCA014582807D1719EBAD +:100530000D4582809306004037A707001307071276 +:10054000B7050500905D7D8E75D2370706001C4B00 +:100550007D761306F63FF18FD58F1CCB85471CCFD8 +:10056000411102C613073006B2476359F70001452F +:10057000410182808566938606807DBFB2478507EC +:100580003EC6DDB711C98547630DF502054582807A +:10059000FD1791EB0D4582800946B7A707009387A9 +:1005A0000712B7060500985E718F7DD34111C8D63A +:1005B00002C613073006B2476357F70001454101F1 +:1005C00082800546D9BFB24785073EC6EDB7011107 +:1005D00026CAB7040600DC4806CE22CC4AC84EC65E +:1005E00052C456C2F19BDCC89C482A89C845F19B7D +:1005F0009CC883C7C5012E848A07DCC883C7D50180 +:100600008A079CC8193D0C44AA8A03454400593501 +:100610001848B70705002A8A98C358480850D8C315 +:10062000184C98C7CD35AA894850A93F8347040084 +:100630002A8793F6170089E6D44893E62600D4C8A3 +:1006400093F6270099E637060600544A93E616000B +:1006500054CA93F6470099E637060600144A93E613 +:10066000260014CAA18B99E7B70606009C4A93E7B7 +:1006700017009CCAF24062442320590123224901F9 +:10068000232439012326E900D244B249224A924A5E +:100690004A85424905618280000000000000000098 :0400000502000000F5 :00000001FF diff --git a/upload_drivers/jtag_eeprom/src/main.c b/upload_drivers/jtag_eeprom/src/main.c index 25bab13..f142b89 100644 --- a/upload_drivers/jtag_eeprom/src/main.c +++ b/upload_drivers/jtag_eeprom/src/main.c @@ -4,16 +4,10 @@ #include "uart_lib.h" #include "xprintf.h" -/** - * @file main.c - * - * @brief Пример демонстрирует чтение и запись значений во внешнюю флеш память Winbond W25 по Standard (Single) SPI - */ -// extern char __HEAP_START[]; const int BUFFER_SIZE = 8 * 1024; extern uint8_t *BUFFER[]; -extern uint32_t *BUFFER_STATUS[]; +extern uint32_t BUFFER_STATUS[]; #define EEPROM_OP_TIMEOUT 100000 #define USART_TIMEOUT 1000 @@ -29,7 +23,6 @@ HAL_EEPROM_HandleTypeDef heeprom; int main() { - // *BUFFER_STATUS = 1; SystemClock_Config(); #ifdef UART_DEBUG @@ -39,17 +32,8 @@ int main() HAL_EEPROM_HandleTypeDef heeprom = { .Instance = EEPROM_REGS, - }; - // *BUFFER_STATUS = 1; - - HAL_DelayMs(1); - - // asm ("wfi"); - - // *BUFFER_STATUS = 1; - HAL_EEPROM_Erase(&heeprom, 0, EEPROM_PAGE_WORDS, HAL_EEPROM_WRITE_ALL, EEPROM_OP_TIMEOUT); int result = 0; @@ -80,12 +64,13 @@ int main() xprintf("addr[0x%04x:0x%08x] buf:mem = 0x%02x != 0x%02x\n", (uint32_t)BUFFER + ad + b, 0x01000000 + ad + b, ebuf, rb[b]); #endif result = 2; - break; + goto error_exit; } } } - HAL_DelayMs(1); + error_exit: + *BUFFER_STATUS = result; // asm ("wfi");