- Настроена отладка: работает если бинарник был предзагружен через (bootROM/booloader)
- TODO: заливать бинарник с помощью программатора
This commit is contained in:
Dmitry Akimov 2026-03-19 19:26:03 +03:00
parent 8c9e62b3cc
commit ec2c02b957
5 changed files with 387 additions and 2 deletions

View file

@ -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 \

3
.vscode/launch.json vendored
View file

@ -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",

2
.vscode/tasks.json vendored
View file

@ -214,7 +214,7 @@
"reveal": "silent",
"panel": "shared"
}
}
},
],
"inputs": [
{

375
FLASH_LOG.log Normal file
View file

@ -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]<e00fe000:ROM class=1 designer=43b:Arm part=4c8> [rom_table]
0000187 I AHB-AP#0 Class 0x1 ROM table #1 @ 0xe00fe000 (designer=43b:Arm part=4c8) [rom_table]
0000191 I [0]<e00ff000:ROM class=1 designer=43b:Arm part=4c7> [rom_table]
0000191 I AHB-AP#0 Class 0x1 ROM table #2 @ 0xe00ff000 (designer=43b:Arm part=4c7) [rom_table]
0000194 I [0]<e000e000:SCS v7-M class=14 designer=43b:Arm part=00c> [rom_table]
0000207 I [1]<e0001000:DWT v7-M class=14 designer=43b:Arm part=002> [rom_table]
0000209 I [2]<e0002000:FPB v7-M class=14 designer=43b:Arm part=00e> [rom_table]
0000210 I [3]<e0000000:ITM v7-M class=14 designer=43b:Arm part=001> [rom_table]
0000210 D [4]<fff41002 not present> [rom_table]
0000210 D [5]<fff42002 not present> [rom_table]
0000214 I [1]<e0041000:ETM M7 class=9 designer=43b:Arm part=975 devtype=13 archid=4a13 devid=0:0:0> [rom_table]
0000219 I [2]<e0042000:CTI CS-400 class=9 designer=43b:Arm part=906 devtype=14 archid=0000 devid=40800:0:0> [rom_table]
0000219 D [3]<1ff02002 not present> [rom_table]
0000221 I [1]<e0040000:TPIU M7 class=9 designer=43b:Arm part=9a9 devtype=11 archid=0000 devid=ca1:0:0> [rom_table]
0000222 I [2]<e0043000:TSGEN class=15 designer=43b:Arm part=101> [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 <pyocd.core.session.Session object at 0x102979420> [session]
0032270 D uninit board <pyocd.board.board.Board object at 0x1048020e0> [board]
0032271 D cannot resume core 0: core is RUNNING [cortex_m]

View file

@ -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