赞
踩
最近想通过stm32自己写一个RTOS,以加深对于RTOS的理解,为了尽快搭建环境,选择了使用STM32CubeIDE 生成代码,再使用 VScode进行调试,下载,中间遇到一些坑,希望接下来的人能够避免。
首先使用STM32CubeIDE 生成功能,配置相关参数,生成代码,这一步很简单,建议参考KeySking的视频:
1、【STM32入门教程-2023】第1集 安装开发环境 STM32CubeIDE
2、【STM32·番外】使用VS Code开发STM32~
下面重点讲我在进行vscode配置的时候踩的一些坑
这是因为之前编译的时候,E盘出问题了(严重怀疑是我在使用百度网盘下载资料的时候选择了下载完自动关系,导致我电脑硬盘的分区表丢了,后面通过diskgenius软件找回),然后系统将所有的文件默认打开路径换成了D盘。
解决办法见此链接
表示生成路径选错了,在CMakePresets.json中修改
如果不知道写什么,可以故意写错,然后从下面的选项中选择一个,Ninja或者MinGW Makefile
这里注意: 在使用之前,一定要下载好相关的程序,然后将其路径添加到电脑的环境变量中,要不然则会提示:
CMake Error: CMake was unable to find a build program corresponding to “Ninja”. CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
这是因为没有选择好合适的gdb文件,详细参考:
使用VS Code进行STM32单片机开发(创建工程、编译、调试)基于官方插件STM32 for VS Code Extension
修改如下项目:
"miDebuggerPath": "${command:vscode-embedded.st.gdb}",
"miDebuggerServerAddress": "localhost:3333",
"debugServerPath": "${command:vscode-embedded.st.gdbserver}",
"debugServerArgs": "--stm32cubeprogrammer-path ${command:vscode-embedded.st.cubeprogrammer} --swd --port-number 3333",
这些项目中${}全部替换为本机上的软件工具目录,注意替换中的反斜杠’\’要变成正斜杠’/’。
"miDebuggerPath": "D:/Program/IDE/ST/STM32Cube/STM32CubeIDE_1.12.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/arm-none-eabi-gdb.exe",
"miDebuggerServerAddress": "localhost:3333",
"debugServerPath": "D:/Program/IDE/ST/STM32Cube/STM32CubeIDE_1.12.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.win32_2.0.500.202301161003/tools/bin/ST-LINK_gdbserver.exe",
"debugServerArgs": "--stm32cubeprogrammer-path D:/Program/IDE/ST/STM32Cube/STM32CubeIDE_1.12.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.0.600.202301161003/tools/bin --swd --port-number 3333",
修改后保存。硬件连接ST-link通电后即可进行调试。
点击菜单Run->Start Debugging;或者点击左侧插件栏Run and Debug(Ctrl+Shift+D)上方Launch图标,进入Debugging。左侧窗口中可以查看寄存器、本地变更、调用栈,可在左侧栏WATCH中增加全局变量查看。窗口上方有调试按钮方便调试操作,按钮包含运行、单步、跳入、跳出、复位、停止。也可从菜单Run中点击相应菜单项或者用快捷键F5、F10、F11、shift+F11、ctrl+shift+F5、shift+F5。在源代码窗口左侧行号上点击可直接增加断点,也可在左侧栏BREAKPOINTS栏中修改。
unable to start debugging. no process is associated
初步猜测是因为launch.json与tasks.json文件导致的
lauch.json 用于设置调试、运行的参数;
tasks.json 用于设置编译时的参数。
原因令我非常无语:
debug有个参数是作为string输入的,中间各变量使用空格隔开,而我的文件夹中带有空格,所以识别成了两个参数,最终无法生成
终于可以愉快的开发了,一个空格引发的惨案!!!
不知道这是不是BUG,虽然这是ST官方出的插件,但是还是希望能够将字符串输入改成一个字符数组,将各参数分开!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。