你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 VS Code Extension (在Ubuntu上开发STM32,ST官方vscode插件使用指南)

[复制链接]
一个脑子不够用 发布时间:2023-8-5 16:13

跨平台开发必不可少,随着NXP、ST等支持,瑞萨MCU和MPU产品线也将将支持Vscode,VSCode是一款轻量级的、免费的、开源的代码编辑器,并且支持多种开发语言和插件扩展。轻量级、高效的代码导航、强大的调试能力深受开发者喜欢。虽然我们常用keil对STM32进行开发,但是在ubuntu上暂时不支持keil开发,ubuntu上同样有开发STM32的其他方法案,如openocd+gcc-arm-none-eabi+Cortex Debug、openocd+ Jlink+Ozone等等,本文介绍ST官方在2023.3.9推出的vscode插件STM32 VS Code Extension,手把手教你在ubuntu上使用Vscdode开发STM32。

1:默认为全新的虚拟机,也就是什么都没有装的,如果不会装可以查看ST的视频教程,我是按照它的步骤安装完ubuntu后停止,也就是刚刚开启,如图中的这个样子 https://www.bilibili.com/video/BV1mN41127Si?t=747.3

Snipaste_2023-08-05_12-50-09.png

2:然后就是安装chorme,下载完chorme的.deb使用 sudo dpkg -i 文件全名 进行安装,个人习惯使用chorme

Snipaste_2023-08-05_13-01-12.png

3:接下来就是安装各种软件:

Vscode:下载完.deb后使用 sudo dpkg -i 文件全名 进行安装,这个下载的时候最好使用自己的手机开热点快,反正我的是这样。

STM32CubeMX:建议下载6.8.1,解压出来安装就可以,它会自己在home/boxes下建目录

STM32CudeCLT: 下载STM32CubeCLT-DEB的,解压,在它的目录打开敲 sudo sh ./st-stm32cubeclt_1.13.0_17399_20230707_0829_amd64.deb_bundle.sh。这个命令可以参考ST文件um3089,然后敲y确认安装就可以

Snipaste_2023-08-05_13-23-32.png

STMCUFinder:解压正常安装就可以,同STM32CubeMX安装

Git:打开Terminal安装就可以,git –version检查下是否正常安装

Cmake:下载cmake二进制版本的,也就是Binary distributions:下面的,然后解压添加环境变量就可以

sudo gedit /etc/profile

export PATH=/home/osboxes/cmake/cmake-3.27.1-linux-x86_64/bin:$PATH 这个一定要换成你自己cmke的路径

source /etc/profile 应用环境变量

cmake --version 检查下安装是否正确

Snipaste_2023-08-05_13-59-48.png

Snipaste_2023-08-05_14-00-21.png

Ninja:sudo apt-get install ninja-build

Snipaste_2023-08-05_14-24-09.png

libncurses5:sudo apt -get install libncurses5

参考链接:https://community.st.com/t5/stm32-mcu-products/st-link-issue-target-unknown-error-5010512/m-p/399536

Snipaste_2023-08-05_14-24-09.png

安装vscode插件:安装这个就可以,它会自己安装其他的

Snipaste_2023-08-05_14-14-46.png

打开STM32CubeMX生成工程,注意一定要是STM32CubeIDE的工程

Snipaste_2023-08-05_14-33-43.png

Vscode导入工程,它会说你没有ide这个不用管,然后打开工程目录导入生成的.cproject,要打开右键把文件全部显示出来才能看得到

Snipaste_2023-08-05_14-34-40.pngSnipaste_2023-08-05_14-35-05.png

然后cmake一下选择debug,再debug一下,会出现一下错误提示,然后安装提示修改launch.json文件,主要是这些路径,所以一定要知道stm32cubeclt的路径

Snipaste_2023-08-05_14-53-49.png

Snipaste_2023-08-05_14-54-04.png

Snipaste_2023-08-05_14-55-58.png

Mian函数里加个点灯函数,再cmake一下,debug一下就可以看到,已经跑起来了,断点WATCH窗口、单步调试也是正常的

Snipaste_2023-08-05_15-03-03.png

注意:

1:你的STlink一定要是最新的固件,不要在STM32CubeProgramme升级固件上面的固件不是最新的,需要在ST官网下载更新工具更新的才是最新的https://www.st.com/en/development-tools/stsw-link007.html

2:我看到ST上有说需要安vcpkg的也就是说要让Vscode上的那个标志是正常的不然调试窗口会出现什么问题,但是我在尝试过程中并没有让这个标志正常,一样正常,不知道是什么原因

参考链接:https://devblogs.microsoft.com/cppblog/importing-st-projects-into-visual-studio-code/#using-st-projects-in-visual-studio-code

https://devblogs.microsoft.com/cppblog/vcpkg-artifacts/

https://github.com/microsoft/vcpkg#using-vcpkg-with-cmake

Snipaste_2023-08-05_15-09-12.png

如下是我的DEBUG CONSOLE 的输出,图是我新建虚拟机后面全部使用的指令,有一些指令是重复的或者是没有反应的

ST的这个插件还是1.0.0版本,希望之后可以更加方便在Vscode上开发

1: (118) LaunchOptions{"name":"Launch","type":"cppdbg","request":"launch","cwd":"/home/osboxes/STM32CubeMX_Project/Project_1","program":"/home/osboxes/STM32CubeMX_Project/Project_1/build/debug/build/Project_1.elf","MIMode":"gdb","miDebuggerPath":"/opt/st/stm32cubeclt/GNU-tools-for-STM32/bin/arm-none-eabi-gdb","miDebuggerServerAddress":"localhost:3333","debugServerPath":"/opt/st/stm32cubeclt/STLink-gdb-server/bin/ST-LINK_gdbserver","debugServerArgs":"--stm32cubeprogrammer-path /opt/st/stm32cubeclt/STM32CubeProgrammer/bin --swd --port-number 3333","serverStarted":"Waiting for connection on port .\.\.\.","stopAtConnect":true,"postRemoteConnectCommands":[{"text":"load build/debug/build/Project_1.elf"}],"logging":{"engineLogging":true},"preLaunchTask":"Build","configurationTarget":6,"configSource":"workspaceFolder","debugType":"debug","sessionId":"2950ff61-a878-4cd4-8aa8-d4834e803cae"} 1: (186) Starting: "/opt/st/stm32cubeclt/STLink-gdb-server/bin/ST-LINK_gdbserver" --stm32cubeprogrammer-path /opt/st/stm32cubeclt/STM32CubeProgrammer/bin --swd --port-number 3333 1: (207) -> 1: (213) -> 1: (213) ->STMicroelectronics ST-LINK GDB server. Version 7.4.0 1: (213) ->Copyright (c) 2023, STMicroelectronics. All rights reserved. 1: (213) -> 1: (213) ->Starting server with the following options: 1: (213) -> Persistent Mode : Disabled 1: (214) -> Logging Level : 31 1: (214) -> Listen Port Number : 3333 1: (214) -> Status Refresh Delay : 15s 1: (215) -> Verbose Mode : Disabled 1: (215) -> SWD Debug : Enabled 1: (215) -> 1: (1112) ->COM frequency = 4000 kHz 1: (1113) ->Target connection mode: Default 1: (1177) ->Reading ROM table for AP 0 @0xe00fdfd0 1: (1218) ->Hardware watchpoint supported by the target 1: (1285) ->ST-LINK Firmware version : V2J43M28 1: (1285) ->Device ID: 0x451 1: (1291) ->PC: 0x8000808 1: (1297) ->ST-LINK device status: HALT_MODE 1: (1300) ->ST-LINK detects target voltage = 3.22 V 1: (1303) ->ST-LINK device status: HALT_MODE 1: (1303) ->ST-LINK device initialization OK 1: (1303) ->Stm32Device, pollAndNotify running... 1: (1306) ->SwvSrv state change: 0 -> 1 1: (1306) ->Waiting for connection on port 3334... 1: (1306) ->Waiting for debugger connection... 1: (1307) ->Waiting for connection on port 3333... 1: (1307) Starting: "/opt/st/stm32cubeclt/GNU-tools-for-STM32/bin/arm-none-eabi-gdb" --interpreter=mi 1: (1308) DebuggerPid=3052 1: (1316) ->=thread-group-added,id="i1" 1: (1317) ->~"GNU gdb (GNU Tools for STM32 11.3.rel1.20230519-1941) 12.1.90.20220802-git\n" 1: (1317) ->~"Copyright (C) 2022 Free Software Foundation, Inc.\n" 1: (1317) ->~"License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law." 1: (1317) ->~"\nType \"show copying\" and \"show warranty\" for details.\n" 1: (1317) ->~"This GDB was configured as \"--host=x86_64-linux-gnu --target=arm-none-eabi\".\n" 1: (1317) ->~"Type \"show configuration\" for configuration details.\n" 1: (1317) ->~"For bug reporting instructions, please see:\n" 1: (1317) ->~"https://www.gnu.org/software/gdb/bugs/.\n" 1: (1317) ->~"Find the GDB manual and other documentation resources online at:\n http://www.gnu.org/software/gdb/documentation/." 1: (1317) ->~"\n\n" 1: (1317) ->~"For help, type \"help\".\n" 1: (1317) ->~"Type \"apropos word\" to search for commands related to \"word\".\n" 1: (1317) ->(gdb) 1: (1332) <-1001-gdb-set mi-async on 1: (1333) ->1001^done 1: (1333) ->(gdb) 1: (1337) 1001: elapsed time 6 1: (1348) <-1002-interpreter-exec console "set pagination off" 1: (1349) ->=cmd-param-changed,param="pagination",value="off" 1: (1349) ->1002^done 1: (1349) ->(gdb) 1: (1349) 1002: elapsed time 1 1: (1349) <-1003-gdb-set auto-solib-add on 1: (1349) ->1003^done 1: (1349) ->(gdb) 1: (1349) 1003: elapsed time 0 1: (1350) <-1004-gdb-set solib-search-path /home/osboxes/STM32CubeMX_Project/Project_1/build/debug/build: 1: (1350) ->1004^done 1: (1350) ->(gdb) 1: (1350) 1004: elapsed time 0 1: (1351) <-1005-environment-cd /home/osboxes/STM32CubeMX_Project/Project_1 1: (1351) ->1005^done 1: (1351) ->(gdb) 1: (1352) 1005: elapsed time 0 1: (1352) <-1006-file-exec-and-symbols /home/osboxes/STM32CubeMX_Project/Project_1/build/debug/build/Project_1.elf 1: (1356) ->1006^done 1: (1358) ->(gdb) 1: (1358) 1006: elapsed time 6 1: (1360) <-1007-interpreter-exec console "show architecture" 1: (1361) ->~"The target architecture is set to \"auto\" (currently \"armv7e-m\").\n" 1: (1361) ->1007^done 1: (1361) ->(gdb) 1: (1361) 1007: elapsed time 1 1: (1363) <-1008-break-insert -f main 1: (1379) ->1008^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x080005d2",func="main",file="/home/osboxes/STM32CubeMX_Project/Project_1/Core/Src/main.c",fullname="/home/osboxes/STM32CubeMX_Project/Project_1/Core/Src/main.c",line="72",thread-groups=["i1"],times="0",original-location="main"} 1: (1379) ->(gdb) 1: (1385) 1008: elapsed time 22 1: (1389) <-1009-target-select remote localhost:3333 1: (1391) ->Accepted connection on port 3333... 1: (1392) ->Debugger connected 1: (1392) ->Waiting for debugger connection... 1: (1392) ->Waiting for connection on port 3333... 1: (1392) ->GDB session thread running 1: (1392) ->GdbSessionManager, session started: 1 1: (1438) ->=thread-group-started,id="i1",pid="42000" 1: (1438) ->=thread-created,id="1",group-id="i1" 1: (1442) <-1010-thread-info 1 1: (1463) ->~"Note: automatically using hardware breakpoints for read-only addresses.\n" 1: (1490) ->~"Reset_Handler () at /home/osboxes/STM32CubeMX_Project/Project_1/Core/Startup/startup_stm32f769nihx.s:61\n" 1: (1490) ->~"61\t ldr sp, =_estack / set stack pointer /\n" 1: (1491) ->stopped,frame={addr="0x08000808",func="Reset_Handler",args=[],file="/home/osboxes/STM32CubeMX_Project/Project_1/Core/Startup/startup_stm32f769nihx.s",fullname="/home/osboxes/STM32CubeMX_Project/Project_1/Core/Startup/startup_stm32f769nihx.s",line="61",arch="armv7e-m"},thread-id="1",stopped-threads="all",core="0" 1: (1491) ->1009^connected 1: (1491) ->(gdb) 1: (1491) ->1010^done,threads=[{id="1",target-id="Thread 1",name="main",frame={level="0",addr="0x08000808",func="Reset_Handler",args=[],file="/home/osboxes/STM32CubeMX_Project/Project_1/Core/Startup/startup_stm32f769nihx.s",fullname="/home/osboxes/STM32CubeMX_Project/Project_1/Core/Startup/startup_stm32f769nihx.s",line="61",arch="armv7e-m"},state="stopped",core="0"}] 1: (1491) ->(gdb) 1: (1496) 1009: elapsed time 106 1: (1496) 1010: elapsed time 54 1: (1497) <-1011-interpreter-exec console "load build/debug/build/Project_1.elf" 1: (1497) ->~"Loading section .isr_vector, size 0x1f8 lma 0x8000000\n" 1: (1497) ->1011+download,{section=".isr_vector",section-size="504",total-size="1304266"} 1: (1497) ->1011+download,{section=".isr_vector",section-sent="504",section-size="504",total-sent="504",total-size="1304266"} 1: (1497) ->~"Loading section .text, size 0x17bc lma 0x80001f8\n" 1: (1498) ->1011+download,{section=".text",section-size="6076",total-size="1304266"} 1: (1499) ->~"Loading section .rodata, size 0x10 lma 0x80019b4\n" 1: (1499) ->1011+download,{section=".rodata",section-size="16",total-size="1304266"} 1: (1499) ->~"Loading section .ARM, size 0x8 lma 0x80019c4\n" 1: (1499) ->1011+download,{section=".ARM",section-size="8",total-size="1304266"} 1: (1499) ->~"Loading section .init_array, size 0x4 lma 0x80019cc\n" 1: (1499) ->1011+download,{section=".init_array",section-size="4",total-size="1304266"} 1: (1499) ->~"Loading section .fini_array, size 0x4 lma 0x80019d0\n" 1: (1499) ->1011+download,{section=".fini_array",section-size="4",total-size="1304266"} 1: (1499) ->~"Loading section .data, size 0xc lma 0x80019d4\n" 1: (1499) ->1011+download,{section=".data",section-size="12",total-size="1304266"} 1: (1502) ->Stm32Device, closeDevice() entry 1: (1503) ->GDB session, device event: 5 1: (1511) ->Stm32Device, pollAndNotify stopped 1: (1557) ->Stm32Device, closeDevice() exit 1: (1557) -> ------ Switching to STM32CubeProgrammer ----- 1: (1578) -> ------------------------------------------------------------------- 1: (1578) -> STM32CubeProgrammer v2.14.0 1: (1578) -> ------------------------------------------------------------------- 1: (1578) -> 1: (1582) -> 1: (1583) -> 1: (1583) ->Log output file: /tmp/STM32CubeProgrammer_2bDFMk.log 1: (1607) ->ST-LINK SN : 0672FF575251717867092344 1: (1607) ->ST-LINK FW : V2J43M28 1: (1611) ->Board : 32F769IDISCOVERY 1: (1622) ->Voltage : 3.22V 1: (1697) ->SWD freq : 4000 KHz 1: (1697) ->Connect mode: Under Reset 1: (1697) ->Reset mode : Hardware reset 1: (1712) ->Device ID : 0x451 1: (1726) ->Revision ID : Rev Z 1: (1811) ->Device name : STM32F76x/STM32F77x 1: (1826) ->Flash size : 2 MBytes 1: (1826) ->Device type : MCU 1: (1826) ->Device CPU : Cortex-M7 1: (1842) ->BL Version : 0x93 1: (1857) -> 1: (1859) -> 1: (1859) -> 1: (1859) ->Memory Programming ... 1: (1859) ->Opening and parsing file: ST-LINK_GDB_server_0XuUSj.srec 1: (1859) -> File : ST-LINK_GDB_server_0XuUSj.srec 1: (1859) -> Size : 6.47 KB 1: (1859) -> Address : 0x08000000 1: (1859) -> 1: (1859) -> 1: (1859) ->Erasing memory corresponding to segment 0: 1: (2022) ->Erasing internal memory sector 0 1: (2717) ->Download in Progress: 1: (3269) -> 1: (3270) -> 1: (3270) ->File download complete 1: (3270) ->Time elapsed during download operation: 00:00:01.410 1: (3284) -> ------ Switching context ----- 1: (3306) ->COM frequency = 4000 kHz 1: (3306) ->Target connection mode: Default 1: (3529) ->Reading ROM table for AP 0 @0xe00fdfd0 1: (3598) ->Hardware watchpoint supported by the target 1: (3662) ->ST-LINK Firmware version : V2J43M28 1: (3662) ->Device ID: 0x451 1: (3666) ->PC: 0x8000808 1: (3678) ->ST-LINK detects target voltage = 3.22 V 1: (3681) ->ST-LINK device status: HALT_MODE 1: (3681) ->GDB session, device event: 6 1: (3681) ->~"Start address 0x08000808, load size 6624\n" 1: (3681) ->Stm32Device, pollAndNotify running... 1: (3699) ->~"Transfer rate: 2 KB/sec, 946 bytes/write.\n" 1: (3699) ->1011^done 1: (3699) ->(gdb) 1: (3699) 1011: elapsed time 2201 1: (3706) Send Event AD7EngineCreateEvent 1: (3708) Send Event AD7ProgramCreateEvent 1: (3889) Send Event AD7LoadCompleteEvent ST-LINK_gdbserver: ST-LINK_gdbserver: ST-LINK_gdbserver: STMicroelectronics ST-LINK GDB server. Version 7.4.0 ST-LINK_gdbserver: Copyright (c) 2023, STMicroelectronics. All rights reserved. ST-LINK_gdbserver: ST-LINK_gdbserver: Starting server with the following options: ST-LINK_gdbserver: Persistent Mode : Disabled ST-LINK_gdbserver: Logging Level : 31 ST-LINK_gdbserver: Listen Port Number : 3333 ST-LINK_gdbserver: Status Refresh Delay : 15s ST-LINK_gdbserver: Verbose Mode : Disabled ST-LINK_gdbserver: SWD Debug : Enabled ST-LINK_gdbserver: ST-LINK_gdbserver: COM frequency = 4000 kHz ST-LINK_gdbserver: Target connection mode: Default ST-LINK_gdbserver: Reading ROM table for AP 0 @0xe00fdfd0 ST-LINK_gdbserver: Hardware watchpoint supported by the target ST-LINK_gdbserver: ST-LINK Firmware version : V2J43M28 ST-LINK_gdbserver: Device ID: 0x451 ST-LINK_gdbserver: PC: 0x8000808 ST-LINK_gdbserver: ST-LINK device status: HALT_MODE ST-LINK_gdbserver: ST-LINK detects target voltage = 3.22 V ST-LINK_gdbserver: ST-LINK device status: HALT_MODE ST-LINK_gdbserver: ST-LINK device initialization OK ST-LINK_gdbserver: Stm32Device, pollAndNotify running... ST-LINK_gdbserver: SwvSrv state change: 0 -> 1 ST-LINK_gdbserver: Waiting for connection on port 3334... ST-LINK_gdbserver: Waiting for debugger connection... ST-LINK_gdbserver: Waiting for connection on port 3333... =thread-group-added,id="i1" GNU gdb (GNU Tools for STM32 11.3.rel1.20230519-1941) 12.1.90.20220802-git Copyright (C) 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=x86_64-linux-gnu --target=arm-none-eabi". Type "show configuration" for configuration details. For bug reporting instructions, please see: https://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/.

For help, type "help". Type "apropos word" to search for commands related to "word". Warning: Debuggee TargetArchitecture not detected, assuming x86_64. =cmd-param-changed,param="pagination",value="off" ST-LINK_gdbserver: Accepted connection on port 3333... ST-LINK_gdbserver: Debugger connected ST-LINK_gdbserver: Waiting for debugger connection... ST-LINK_gdbserver: Waiting for connection on port 3333... ST-LINK_gdbserver: GDB session thread running ST-LINK_gdbserver: GdbSessionManager, session started: 1 Note: automatically using hardware breakpoints for read-only addresses. Reset_Handler () at /home/osboxes/STM32CubeMX_Project/Project_1/Core/Startup/startup_stm32f769nihx.s:61 61 ldr sp, =_estack / set stack pointer / ST-LINK_gdbserver: Stm32Device, closeDevice() entry ST-LINK_gdbserver: GDB session, device event: 5 ST-LINK_gdbserver: Stm32Device, pollAndNotify stopped ST-LINK_gdbserver: Stm32Device, closeDevice() exit ST-LINK_gdbserver: ------ Switching to STM32CubeProgrammer ----- ST-LINK_gdbserver: ------------------------------------------------------------------- ST-LINK_gdbserver: STM32CubeProgrammer v2.14.0 ST-LINK_gdbserver: ------------------------------------------------------------------- ST-LINK_gdbserver: ST-LINK_gdbserver: ST-LINK_gdbserver: ST-LINK_gdbserver: Log output file: /tmp/STM32CubeProgrammer_2bDFMk.log ST-LINK_gdbserver: ST-LINK SN : 0672FF575251717867092344 ST-LINK_gdbserver: ST-LINK FW : V2J43M28 ST-LINK_gdbserver: Board : 32F769IDISCOVERY ST-LINK_gdbserver: Voltage : 3.22V ST-LINK_gdbserver: SWD freq : 4000 KHz ST-LINK_gdbserver: Connect mode: Under Reset ST-LINK_gdbserver: Reset mode : Hardware reset ST-LINK_gdbserver: Device ID : 0x451 ST-LINK_gdbserver: Revision ID : Rev Z ST-LINK_gdbserver: Device name : STM32F76x/STM32F77x ST-LINK_gdbserver: Flash size : 2 MBytes ST-LINK_gdbserver: Device type : MCU ST-LINK_gdbserver: Device CPU : Cortex-M7 ST-LINK_gdbserver: BL Version : 0x93 ST-LINK_gdbserver: ST-LINK_gdbserver: ST-LINK_gdbserver: ST-LINK_gdbserver: Memory Programming ... ST-LINK_gdbserver: Opening and parsing file: ST-LINK_GDB_server_0XuUSj.srec ST-LINK_gdbserver: File : ST-LINK_GDB_server_0XuUSj.srec ST-LINK_gdbserver: Size : 6.47 KB ST-LINK_gdbserver: Address : 0x08000000 ST-LINK_gdbserver: ST-LINK_gdbserver: ST-LINK_gdbserver: Erasing memory corresponding to segment 0: ST-LINK_gdbserver: Erasing internal memory sector 0 ST-LINK_gdbserver: Download in Progress: ST-LINK_gdbserver: ST-LINK_gdbserver: ST-LINK_gdbserver: File download complete ST-LINK_gdbserver: Time elapsed during download operation: 00:00:01.410 ST-LINK_gdbserver: ------ Switching context ----- ST-LINK_gdbserver: COM frequency = 4000 kHz ST-LINK_gdbserver: Target connection mode: Default ST-LINK_gdbserver: Reading ROM table for AP 0 @0xe00fdfd0 ST-LINK_gdbserver: Hardware watchpoint supported by the target ST-LINK_gdbserver: ST-LINK Firmware version : V2J43M28 ST-LINK_gdbserver: Device ID: 0x451 ST-LINK_gdbserver: PC: 0x8000808 ST-LINK_gdbserver: ST-LINK detects target voltage = 3.22 V ST-LINK_gdbserver: ST-LINK device status: HALT_MODE ST-LINK_gdbserver: GDB session, device event: 6 ST-LINK_gdbserver: Stm32Device, pollAndNotify running... 1: (3957) <-1012-thread-info 1: (3981) ->1012^done,threads=[{id="1",target-id="Thread 1",name="main",frame={level="0",addr="0x08000808",func="Reset_Handler",args=[],file="/home/osboxes/STM32CubeMX_Project/Project_1/Core/Startup/startup_stm32f769nihx.s",fullname="/home/osboxes/STM32CubeMX_Project/Project_1/Core/Startup/startup_stm32f769nihx.s",line="61",arch="armv7e-m"},state="stopped",core="0"}],current-thread-id="1" 1: (3981) ->(gdb) 1: (3981) 1012: elapsed time 24 1: (3992) <-1013-stack-list-frames 0 1000 1: (3993) ->1013^done,stack=[frame={level="0",addr="0x08000808",func="Reset_Handler",file="/home/osboxes/STM32CubeMX_Project/Project_1/Core/Startup/startup_stm32f769nihx.s",fullname="/home/osboxes/STM32CubeMX_Project/Project_1/Core/Startup/startup_stm32f769nihx.s",line="61",arch="armv7e-m"}] 1: (3993) ->(gdb) 1: (3999) 1013: elapsed time 6 1: (4004) Send Event AD7ProcessInfoUpdatedEvent 1: (4015) Send Event AD7ThreadCreateEvent 1: (4029) <-1014-break-delete 1 1: (4030) ->1014^done 1: (4030) ->(gdb) 1: (4032) 1014: elapsed time 2 1: (4034) Send Event AD7BreakpointEvent Execute debugger commands using "-exec <command>", for example "-exec info registers" will list registers in use (when GDB is the debugger) 1: (4097) <-1015-stack-list-arguments 0 0 0 1: (4097) ->1015^done,stack-args=[frame={level="0",args=[]}] 1: (4097) ->(gdb) 1: (4098) 1015: elapsed time 1 1: (4117) <-1016-stack-list-arguments 0 0 0 1: (4117) ->1016^done,stack-args=[frame={level="0",args=[]}] 1: (4117) ->(gdb) 1: (4117) 1016: elapsed time 0 1: (4152) <-1017-var-create - "_tx_thread_created_ptr" 1: (4154) ->1017^error,msg="-var-create: unable to create variable object" 1: (4154) ->(gdb) 1: (4154) 1017: elapsed time 1 1: (4206) <-1018-var-create - "aaa" 1: (4207) ->1018^error,msg="-var-create: unable to create variable object" 1: (4207) ->(gdb) 1: (4207) 1018: elapsed time 0 1: (4208) <-1019-var-create - "pxReadyTasksLists" 1: (4208) ->1019^error,msg="-var-create: unable to create variable object" 1: (4208) ->(gdb) 1: (4208) 1019: elapsed time 0 1: (4217) <-1020-var-create - "_kernel_thread_info_offsets" 1: (4218) ->1020^error,msg="-var-create: unable to create variable object" 1: (4218) ->(gdb) 1: (4218) 1020: elapsed time 0 1: (4228) <-1021-var-create - * "_track_list_k_mutex" 1: (4229) ->1021^error,msg="-var-create: unable to create variable object" 1: (4230) ->(gdb) 1: (4230) 1021: elapsed time 1 1: (4554) <-1022-stack-list-variables 0 1: (4554) ->1022^done,variables=[] 1: (4554) ->(gdb) 1: (4555) 1022: elapsed time 1

Snipaste_2023-08-05_15-03-42.png

image.png
Snipaste_2023-08-05_14-33-43.png
Snipaste_2023-08-05_14-53-49.png
Snipaste_2023-08-05_14-54-04.png
Snipaste_2023-08-05_14-55-58.png
收藏 评论2 发布时间:2023-8-5 16:13

举报

2个回答
STMCU-管管 回答时间:2023-8-7 13:13:51
Vscode确实最近比较热门,很好的分享
7 z2 s( w: g; u+ n6 L* i# P
lemonboard 回答时间:2023-8-30 09:25:15

自己开发的程序哪里需要这么复杂。

还不是由于官方库函数的各种封装,各种分层。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版