diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index fb30120..60dd33e 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -54,6 +54,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ clang-17 clangd-17 libclang-rt-17-dev clang-tidy-17 clang-format-17 \ gdb-multiarch \ build-essential \ + libncurses5 \ && update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-17 100 \ && update-alternatives --install /usr/bin/clang clang /usr/bin/clang-17 100 \ && update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-17 100 \ diff --git a/.vscode/launch.json b/.vscode/launch.json index 203844e..db441bf 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -11,10 +11,11 @@ "servertype": "external", "gdbTarget": "host.docker.internal:3333", "gdbPath": "arm-none-eabi-gdb", - "executable": "${workspaceFolder}/build/Debug/firmware/test/firmware_test.elf", + "executable": "${workspaceFolder}/build/Debug/firmware_test.elf", "device": "MIMXRT1052CVJ5B", "svdFile": "${workspaceFolder}/bsp/generated/startup/MIMXRT1052.xml", "interface": "swd", + "showDevDebugOutput": "raw", "loadFiles": [], "runToEntryPoint": "main", "preLaunchTask": "build:firmware-test-debug", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index b1618cd..49522e7 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -214,7 +214,7 @@ "reveal": "silent", "panel": "shared" } - } + }, ], "inputs": [ { diff --git a/FLASH_LOG.log b/FLASH_LOG.log new file mode 100644 index 0000000..b8fad10 --- /dev/null +++ b/FLASH_LOG.log @@ -0,0 +1,375 @@ +tft_manufacture_test git:(dev) ✗ uv run --directory tools/hil pyocd flash \ + --target mimxrt1050_quadspi \ + --base-address 0x60000000 -vvv \ + --erase chip \ + ../../build/Debug/firmware_test_hab.bin +0000149 D Project directory: /Users/von_akimow/Desktop/TFT_ENV/tft_manufacture_test/tools/hil [session] +0000150 D Project directory: /Users/von_akimow/Desktop/TFT_ENV/tft_manufacture_test/tools/hil [session] +0000152 D CMSIS-DAP v2 probe GUXFBWDJBWTGQ: firmware version 3.160, protocol version 2.1.1 [dap_access_cmsis_dap] +0000154 I Target type is mimxrt1050_quadspi [board] +0000157 D Running task load_svd [sequencer] +0000157 D Running task pre_connect [sequencer] +0000157 D Running task dp_init [sequencer] +0000157 D Running task lock_probe [sequencer] +0000157 D Running task get_probe_capabilities [sequencer] +0000157 D Running task connect [sequencer] +0000161 D Default wire protocol selected; using SWD [dap] +0000162 D Sending deprecated SWJ sequence to select SWD [swj] +0000164 I DP IDR = 0x0bd11477 (v1 MINDP rev0) [dap] +0000164 D Running task clear_sticky_err [sequencer] +0000164 D Running task power_up_debug [sequencer] +0000165 D Running task check_version [sequencer] +0000165 D Running task unlock_probe [sequencer] +0000165 D Running task unlock_device [sequencer] +0000165 D Running task create_discoverer [sequencer] +0000165 D Running task discovery [sequencer] +0000165 D Running task find_aps [sequencer] +0000169 D Running task create_aps [sequencer] +0000169 D Running task create_ap.0 [sequencer] +0000179 D AHB-AP#0 default HPROT=3 HNONSEC=0 [ap] +0000180 D AHB-AP#0 implemented HPROT=f HNONSEC=0 [ap] +0000181 I AHB-AP#0 IDR = 0x04770041 (AHB-AP var4 rev0) [discovery] +0000181 D Running task find_components [sequencer] +0000181 D Running task init_ap.0 [sequencer] +0000185 I AHB-AP#0 Class 0x1 ROM table #0 @ 0xe00fd000 (designer=00e:NXP part=88c) [rom_table] +0000187 I [0] [rom_table] +0000187 I AHB-AP#0 Class 0x1 ROM table #1 @ 0xe00fe000 (designer=43b:Arm part=4c8) [rom_table] +0000191 I [0] [rom_table] +0000191 I AHB-AP#0 Class 0x1 ROM table #2 @ 0xe00ff000 (designer=43b:Arm part=4c7) [rom_table] +0000194 I [0] [rom_table] +0000207 I [1] [rom_table] +0000209 I [2] [rom_table] +0000210 I [3] [rom_table] +0000210 D [4] [rom_table] +0000210 D [5] [rom_table] +0000214 I [1] [rom_table] +0000219 I [2] [rom_table] +0000219 D [3]<1ff02002 not present> [rom_table] +0000221 I [1] [rom_table] +0000222 I [2] [rom_table] +0000222 D [3]<1ff03002 not present> [rom_table] +0000222 D Running task create_cores [sequencer] +0000239 I IMXRT Boot Mode: Internal Boot [target_imxrt] +0000242 I CPU core #0: Cortex-M7 r1p1, v7.0-M architecture [cortex_m] +0000243 I Extensions: [DSP, FPU, FPU_DP, FPU_V5, MPU] [cortex_m] +0000243 I FPU present: FPv5-D16-M [cortex_m] +0000244 D selected core #0 [soc_target] +0000244 D Running task create_components [sequencer] +0000244 D Creating DWT component [discovery] +0000246 I 4 hardware watchpoints [dwt] +0000246 D Creating FPB component [discovery] +0000247 I 8 hardware breakpoints, 1 literal comparators [fpb] +0000247 D fpb has been disabled [fpb] +0000247 D Creating ITM component [discovery] +0000249 D Creating TPIU component [discovery] +0000250 D Running task check_for_cores [sequencer] +0000250 D Running task halt_on_connect [sequencer] +0000250 D halting core 0 [cortex_m] +0000250 D Running task post_connect [sequencer] +0000250 D Running task post_connect_hook [sequencer] +0000250 D Running task create_flash [sequencer] +0000251 D Running task notify [sequencer] +0000251 I IMXRT Boot Mode: Internal Boot [target_imxrt] +0000252 I IMXRT Boot Device: 0 [target_imxrt] +0000252 D normal_set_reset_catch [target_imxrt] +0000252 D set reset catch, core 0 [cortex_m] +0000252 D removing all breakpoints before reset [manager] +0000252 D halting core 0 [cortex_m] +0000254 D reset, core 0, type=VECTRESET [cortex_m] +0000254 D no delegate or debug sequence handled reset; performing VECTRESET reset, core 0 [cortex_m] +0000364 D clear reset catch, core 0 [cortex_m] +0000365 D disabling hardware breakpoints after reset [manager] +0000366 I Loading /Users/von_akimow/Desktop/TFT_ENV/tft_manufacture_test/build/Debug/firmware_test_hab.bin at 0x60000000 [load_cmd] +0000367 D Using double buffer chip erase program [builder] +0000367 D 0 of 89 pages have erased data [builder] +0000367 D halting core 0 [cortex_m] +0000586 D resuming core 0 [cortex_m] +0000586 D added=[] removed=[] [manager] +0000586 D bps after flush={} [manager] +0000592 D resuming core 0 [cortex_m] +0000592 D added=[] removed=[] [manager] +0000593 D bps after flush={} [manager] +0031381 D resuming core 0 [cortex_m] +0031381 D added=[] removed=[] [manager] +0031381 D bps after flush={} [manager] +[ ] 1%0031383 D halting core 0 [cortex_m] +0031392 D resuming core 0 [cortex_m] +0031392 D added=[] removed=[] [manager] +0031392 D bps after flush={} [manager] +0031396 D resuming core 0 [cortex_m] +0031396 D added=[] removed=[] [manager] +0031396 D bps after flush={} [manager] +[= ] 3%0031404 D resuming core 0 [cortex_m] +0031404 D added=[] removed=[] [manager] +0031404 D bps after flush={} [manager] +[= ] 4%0031412 D resuming core 0 [cortex_m] +0031412 D added=[] removed=[] [manager] +0031412 D bps after flush={} [manager] +[== ] 5%0031419 D resuming core 0 [cortex_m] +0031419 D added=[] removed=[] [manager] +0031419 D bps after flush={} [manager] +[== ] 6%0031427 D resuming core 0 [cortex_m] +0031427 D added=[] removed=[] [manager] +0031427 D bps after flush={} [manager] +[=== ] 7%0031435 D resuming core 0 [cortex_m] +0031435 D added=[] removed=[] [manager] +0031435 D bps after flush={} [manager] +[==== ] 8%0031442 D resuming core 0 [cortex_m] +0031442 D added=[] removed=[] [manager] +0031442 D bps after flush={} [manager] +[==== ] 9%0031450 D resuming core 0 [cortex_m] +0031450 D added=[] removed=[] [manager] +0031450 D bps after flush={} [manager] +[===== ] 10%0031458 D resuming core 0 [cortex_m] +0031458 D added=[] removed=[] [manager] +0031458 D bps after flush={} [manager] +[===== ] 11%0031465 D resuming core 0 [cortex_m] +0031465 D added=[] removed=[] [manager] +0031465 D bps after flush={} [manager] +[====== ] 12%0031473 D resuming core 0 [cortex_m] +0031473 D added=[] removed=[] [manager] +0031473 D bps after flush={} [manager] +[====== ] 14%0031481 D resuming core 0 [cortex_m] +0031481 D added=[] removed=[] [manager] +0031481 D bps after flush={} [manager] +[======= ] 15%0031489 D resuming core 0 [cortex_m] +0031489 D added=[] removed=[] [manager] +0031489 D bps after flush={} [manager] +[======= ] 16%0031496 D resuming core 0 [cortex_m] +0031496 D added=[] removed=[] [manager] +0031497 D bps after flush={} [manager] +[======== ] 17%0031504 D resuming core 0 [cortex_m] +0031504 D added=[] removed=[] [manager] +0031504 D bps after flush={} [manager] +[========= ] 18%0031512 D resuming core 0 [cortex_m] +0031512 D added=[] removed=[] [manager] +0031512 D bps after flush={} [manager] +[========= ] 19%0031520 D resuming core 0 [cortex_m] +0031520 D added=[] removed=[] [manager] +0031520 D bps after flush={} [manager] +[========== ] 20%0031528 D resuming core 0 [cortex_m] +0031528 D added=[] removed=[] [manager] +0031528 D bps after flush={} [manager] +[========== ] 21%0031536 D resuming core 0 [cortex_m] +0031536 D added=[] removed=[] [manager] +0031536 D bps after flush={} [manager] +[=========== ] 22%0031544 D resuming core 0 [cortex_m] +0031544 D added=[] removed=[] [manager] +0031544 D bps after flush={} [manager] +[=========== ] 24%0031552 D resuming core 0 [cortex_m] +0031552 D added=[] removed=[] [manager] +0031552 D bps after flush={} [manager] +[============ ] 25%0031560 D resuming core 0 [cortex_m] +0031560 D added=[] removed=[] [manager] +0031560 D bps after flush={} [manager] +[============ ] 26%0031568 D resuming core 0 [cortex_m] +0031568 D added=[] removed=[] [manager] +0031568 D bps after flush={} [manager] +[============= ] 27%0031576 D resuming core 0 [cortex_m] +0031576 D added=[] removed=[] [manager] +0031577 D bps after flush={} [manager] +[============= ] 28%0031584 D resuming core 0 [cortex_m] +0031585 D added=[] removed=[] [manager] +0031585 D bps after flush={} [manager] +[============== ] 29%0031593 D resuming core 0 [cortex_m] +0031593 D added=[] removed=[] [manager] +0031593 D bps after flush={} [manager] +[=============== ] 30%0031601 D resuming core 0 [cortex_m] +0031601 D added=[] removed=[] [manager] +0031601 D bps after flush={} [manager] +[=============== ] 31%0031609 D resuming core 0 [cortex_m] +0031609 D added=[] removed=[] [manager] +0031609 D bps after flush={} [manager] +[================ ] 32%0031617 D resuming core 0 [cortex_m] +0031617 D added=[] removed=[] [manager] +0031617 D bps after flush={} [manager] +[================ ] 34%0031626 D resuming core 0 [cortex_m] +0031626 D added=[] removed=[] [manager] +0031626 D bps after flush={} [manager] +[================= ] 35%0031634 D resuming core 0 [cortex_m] +0031634 D added=[] removed=[] [manager] +0031634 D bps after flush={} [manager] +[================= ] 36%0031643 D resuming core 0 [cortex_m] +0031643 D added=[] removed=[] [manager] +0031643 D bps after flush={} [manager] +[================== ] 37%0031651 D resuming core 0 [cortex_m] +0031651 D added=[] removed=[] [manager] +0031651 D bps after flush={} [manager] +[================== ] 38%0031660 D resuming core 0 [cortex_m] +0031660 D added=[] removed=[] [manager] +0031660 D bps after flush={} [manager] +[=================== ] 39%0031668 D resuming core 0 [cortex_m] +0031668 D added=[] removed=[] [manager] +0031668 D bps after flush={} [manager] +[==================== ] 40%0031677 D resuming core 0 [cortex_m] +0031677 D added=[] removed=[] [manager] +0031677 D bps after flush={} [manager] +[==================== ] 41%0031686 D resuming core 0 [cortex_m] +0031686 D added=[] removed=[] [manager] +0031686 D bps after flush={} [manager] +[===================== ] 42%0031694 D resuming core 0 [cortex_m] +0031694 D added=[] removed=[] [manager] +0031694 D bps after flush={} [manager] +[===================== ] 44%0031703 D resuming core 0 [cortex_m] +0031703 D added=[] removed=[] [manager] +0031703 D bps after flush={} [manager] +[====================== ] 45%0031712 D resuming core 0 [cortex_m] +0031712 D added=[] removed=[] [manager] +0031712 D bps after flush={} [manager] +[====================== ] 46%0031721 D resuming core 0 [cortex_m] +0031721 D added=[] removed=[] [manager] +0031721 D bps after flush={} [manager] +[======================= ] 47%0031729 D resuming core 0 [cortex_m] +0031729 D added=[] removed=[] [manager] +0031729 D bps after flush={} [manager] +[======================= ] 48%0031738 D resuming core 0 [cortex_m] +0031738 D added=[] removed=[] [manager] +0031738 D bps after flush={} [manager] +[======================== ] 49%0031747 D resuming core 0 [cortex_m] +0031747 D added=[] removed=[] [manager] +0031747 D bps after flush={} [manager] +[========================= ] 50%0031756 D resuming core 0 [cortex_m] +0031756 D added=[] removed=[] [manager] +0031756 D bps after flush={} [manager] +[========================= ] 51%0031765 D resuming core 0 [cortex_m] +0031765 D added=[] removed=[] [manager] +0031765 D bps after flush={} [manager] +[========================== ] 52%0031773 D resuming core 0 [cortex_m] +0031773 D added=[] removed=[] [manager] +0031773 D bps after flush={} [manager] +[========================== ] 53%0031782 D resuming core 0 [cortex_m] +0031782 D added=[] removed=[] [manager] +0031782 D bps after flush={} [manager] +[=========================== ] 55%0031791 D resuming core 0 [cortex_m] +0031791 D added=[] removed=[] [manager] +0031791 D bps after flush={} [manager] +[=========================== ] 56%0031800 D resuming core 0 [cortex_m] +0031800 D added=[] removed=[] [manager] +0031800 D bps after flush={} [manager] +[============================ ] 57%0031809 D resuming core 0 [cortex_m] +0031809 D added=[] removed=[] [manager] +0031809 D bps after flush={} [manager] +[============================ ] 58%0031818 D resuming core 0 [cortex_m] +0031818 D added=[] removed=[] [manager] +0031818 D bps after flush={} [manager] +[============================= ] 59%0031827 D resuming core 0 [cortex_m] +0031827 D added=[] removed=[] [manager] +0031827 D bps after flush={} [manager] +[============================== ] 60%0031836 D resuming core 0 [cortex_m] +0031836 D added=[] removed=[] [manager] +0031836 D bps after flush={} [manager] +[============================== ] 61%0031845 D resuming core 0 [cortex_m] +0031845 D added=[] removed=[] [manager] +0031845 D bps after flush={} [manager] +[=============================== ] 62%0031854 D resuming core 0 [cortex_m] +0031854 D added=[] removed=[] [manager] +0031854 D bps after flush={} [manager] +[=============================== ] 63%0031863 D resuming core 0 [cortex_m] +0031863 D added=[] removed=[] [manager] +0031863 D bps after flush={} [manager] +[================================ ] 65%0031872 D resuming core 0 [cortex_m] +0031872 D added=[] removed=[] [manager] +0031872 D bps after flush={} [manager] +[================================ ] 66%0031881 D resuming core 0 [cortex_m] +0031881 D added=[] removed=[] [manager] +0031881 D bps after flush={} [manager] +[================================= ] 67%0031890 D resuming core 0 [cortex_m] +0031890 D added=[] removed=[] [manager] +0031890 D bps after flush={} [manager] +[================================= ] 68%0031899 D resuming core 0 [cortex_m] +0031899 D added=[] removed=[] [manager] +0031899 D bps after flush={} [manager] +[================================== ] 69%0031908 D resuming core 0 [cortex_m] +0031908 D added=[] removed=[] [manager] +0031908 D bps after flush={} [manager] +[=================================== ] 70%0031918 D resuming core 0 [cortex_m] +0031918 D added=[] removed=[] [manager] +0031918 D bps after flush={} [manager] +[=================================== ] 71%0031927 D resuming core 0 [cortex_m] +0031927 D added=[] removed=[] [manager] +0031927 D bps after flush={} [manager] +[==================================== ] 72%0031936 D resuming core 0 [cortex_m] +0031936 D added=[] removed=[] [manager] +0031936 D bps after flush={} [manager] +[==================================== ] 73%0031945 D resuming core 0 [cortex_m] +0031945 D added=[] removed=[] [manager] +0031945 D bps after flush={} [manager] +[===================================== ] 75%0031954 D resuming core 0 [cortex_m] +0031954 D added=[] removed=[] [manager] +0031954 D bps after flush={} [manager] +[===================================== ] 76%0031963 D resuming core 0 [cortex_m] +0031963 D added=[] removed=[] [manager] +0031963 D bps after flush={} [manager] +[====================================== ] 77%0031972 D resuming core 0 [cortex_m] +0031972 D added=[] removed=[] [manager] +0031972 D bps after flush={} [manager] +[====================================== ] 78%0031981 D resuming core 0 [cortex_m] +0031981 D added=[] removed=[] [manager] +0031981 D bps after flush={} [manager] +[======================================= ] 79%0031990 D resuming core 0 [cortex_m] +0031990 D added=[] removed=[] [manager] +0031990 D bps after flush={} [manager] +[======================================== ] 80%0032000 D resuming core 0 [cortex_m] +0032000 D added=[] removed=[] [manager] +0032000 D bps after flush={} [manager] +[======================================== ] 81%0032009 D resuming core 0 [cortex_m] +0032009 D added=[] removed=[] [manager] +0032009 D bps after flush={} [manager] +[========================================= ] 82%0032018 D resuming core 0 [cortex_m] +0032018 D added=[] removed=[] [manager] +0032018 D bps after flush={} [manager] +[========================================= ] 83%0032027 D resuming core 0 [cortex_m] +0032027 D added=[] removed=[] [manager] +0032027 D bps after flush={} [manager] +[========================================== ] 84%0032036 D resuming core 0 [cortex_m] +0032036 D added=[] removed=[] [manager] +0032036 D bps after flush={} [manager] +[========================================== ] 86%0032045 D resuming core 0 [cortex_m] +0032045 D added=[] removed=[] [manager] +0032045 D bps after flush={} [manager] +[=========================================== ] 87%0032054 D resuming core 0 [cortex_m] +0032054 D added=[] removed=[] [manager] +0032054 D bps after flush={} [manager] +[=========================================== ] 88%0032063 D resuming core 0 [cortex_m] +0032063 D added=[] removed=[] [manager] +0032063 D bps after flush={} [manager] +[============================================ ] 89%0032072 D resuming core 0 [cortex_m] +0032072 D added=[] removed=[] [manager] +0032072 D bps after flush={} [manager] +[============================================= ] 90%0032082 D resuming core 0 [cortex_m] +0032082 D added=[] removed=[] [manager] +0032082 D bps after flush={} [manager] +[============================================= ] 91%0032091 D resuming core 0 [cortex_m] +0032091 D added=[] removed=[] [manager] +0032091 D bps after flush={} [manager] +[============================================== ] 92%0032100 D resuming core 0 [cortex_m] +0032100 D added=[] removed=[] [manager] +0032100 D bps after flush={} [manager] +[============================================== ] 93%0032109 D resuming core 0 [cortex_m] +0032110 D added=[] removed=[] [manager] +0032110 D bps after flush={} [manager] +[=============================================== ] 94%0032118 D resuming core 0 [cortex_m] +0032119 D added=[] removed=[] [manager] +0032119 D bps after flush={} [manager] +[=============================================== ] 96%0032127 D resuming core 0 [cortex_m] +0032127 D added=[] removed=[] [manager] +0032127 D bps after flush={} [manager] +[================================================ ] 97%0032136 D resuming core 0 [cortex_m] +0032136 D added=[] removed=[] [manager] +0032136 D bps after flush={} [manager] +[================================================ ] 98%0032146 D resuming core 0 [cortex_m] +0032146 D added=[] removed=[] [manager] +0032146 D bps after flush={} [manager] +[================================================= ] 99%0032155 D resuming core 0 [cortex_m] +0032155 D added=[] removed=[] [manager] +0032155 D bps after flush={} [manager] +[==================================================] 100% +0032159 D resuming core 0 [cortex_m] +0032159 D added=[] removed=[] [manager] +0032159 D bps after flush={} [manager] +0032161 I Erased chip, programmed 22784 bytes (89 pages), skipped 0 bytes (0 pages) at 0.70 kB/s [loader] +0032162 D reset, core 0, type=VECTRESET [cortex_m] +0032162 D no delegate or debug sequence handled reset; performing VECTRESET reset, core 0 [cortex_m] +0032269 D uninit session [session] +0032270 D uninit board [board] +0032271 D cannot resume core 0: core is RUNNING [cortex_m] \ No newline at end of file diff --git a/just/host.just b/just/host.just index ec29515..b9cf354 100644 --- a/just/host.just +++ b/just/host.just @@ -346,3 +346,11 @@ debug-server: [group('debug')] debug-list-targets: uv run --directory {{ _hil_dir }} pyocd list --targets | grep -i mimx + +[doc('Собрать HAB Debug и прошить через MCU-Link')] +[group('flash')] +flash-test-debug-swd: + uv run --directory {{ _hil_dir }} pyocd flash \ + --config {{ justfile_directory() }}/pyocd_debug.yaml \ + --base-address 0x60000000 \ + {{ BUILD_DIR }}/Debug/firmware_test_hab.bin