赞
踩
在整了一台intel处理器的MacBook后(为了处理照片与视频),就想着配一下32的开发环境,不能扔下嵌入式开发;遂在网上找macOS的32环境配置,方案基本是 Clion/VS Code + Openocd 的形式,奈何尝试后我遇到了以下问题:
总之最后放弃了openocd的方案;最新的MDK6插件方案也由于keil等不支持macos(MDK6的转化问题)而不可行。
于是本人在参考以下在win环境下配置的文章后
【电赛-软件】基于ST官方插件 配置VScode开发STM32
操作中发现cubemx生成的工程不再有.cproject
的 STproject
类型,仅依靠CubeCLT与CubeMX两软件也没能在我的MAC上实现调试,因此本人结合macos的实际问题做了调整,给出一个基于官方插件与调试应用的macOS下vscode开发STM32环境搭建方案总结,希望能给上述等方法都无效的朋友们一个选择。
扩展中搜索 STM32 VS Code Extension
、C/C++
、CMake(Tools)
进行安装
C/C++等扩展同方法安装
vscode将利用cmake构建程序 ,因此需要下载cmake程序并添加进系统变量;
方法一:在官网下载DMG
,安装完毕GUI版本之后,再手动添加变量;
方法二:利用homebrew
安装(如果因为可能的网络问题安装失败,尝试方法一)
具体步骤参照:macOS 如何安装 cmake
homebrew
安装,终端输入: brew install ninja
安装完毕后,终端输入以下指令如果能返回版本号则安装成功:
ninja --version
下载安装即可,都是安装器一路next的
至此,需要安装的部分完成,接下来到vscode中配置工程
如上文,cubemx中生成的工程不再有.cproject 的 STproject 类型,因此在生成的工程中选择 .ioc 文件进行导入,插件仍能够识别工程,且能创建出对应的 CMakelist
文件
在通过STM32 VS Code Extension
导入工程后,会默认生成 cmake -> gcc-arm-none-eabi.cmake
的cmake配置文件:
该文件中以下内容,包含了工具链的默认安装路径;其中标识中包含MAC
的,即为macos下的默认安装路径,对照无误即可
set(WINDOWS_ST_CLT_PATH "C:/ST/STM32CubeCLT/STM32CubeCLT/GNU-tools-for-STM32/bin/")
set(MAC_ST_CLT_PATH "/opt/ST/STM32CubeCLT/GNU-tools-for-STM32/bin/")
if(EXISTS "${WINDOWS_ST_CLT_PATH}")
set(TOOLCHAIN_DIRECTORIES ${WINDOWS_ST_CLT_PATH})
elseif(EXISTS "${MAC_ST_CLT_PATH}")
set(TOOLCHAIN_DIRECTORIES ${MAC_ST_CLT_PATH})
else()
# Try to find an STM32CubeIDE installation to use for the toolchain.
file(GLOB TOOLCHAIN_DIRECTORIES
"C:/ST/STM32CubeIDE_*/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.*/tools/bin/"
"/opt/st/stm32cubeide_*/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.*/tools/bin/"
"/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.*/tools/bin/"
)
endif()
配置完毕以上文件后,点击左侧栏中的CMake
插件,生成中选择debug
配置(如果没有debug配置,点击小铅笔的编辑标志,会),点击右上角生成标志,等待工程构建,控制台中显示构建出.elf
文件即为成功
左侧栏中点击运行与调试
,进入调试配置;通常一个新的工程中默认没有launch.json
,此时能够点击创建launch.json文件
来创建一个调试配置
在json
文件中,重点关注以下四个变量的路径并进行如下配置:
"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 ${command:vscode-embedded.st.cubeprogrammer} --swd --port-number 3333",
其中,
miDebuggerPath
为解释器的路径;
miDebuggerServerAddress
为调试端口
debugServerPath
STlink-server的路径
debugServerArgs
为CubeProgrammer的路径
以下为完整的launch.json
内容,可供参考
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "cppdbg",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${command:cmake.launchTargetPath}",
"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 ${command:vscode-embedded.st.cubeprogrammer} --swd --port-number 3333",
"serverStarted": "Waiting for connection on port .*\\.\\.\\.",
"stopAtConnect": true,
"postRemoteConnectCommands": [
{
"text": "load build/debug/build/untitled.elf"
}
],
"logging": {
"engineLogging": true
},
"preLaunchTask": "Build"
}
]
}
配置完成后,如已构建完毕elf文件,点击
即可实现调试
以上为我配置环境的步骤,虽然安装软件多,但是对于openocd不好使的朋友们也是一种可以尝试的“远路”;感谢文中提及的文章的帮助,如果有任何问题,也欢迎在评论区留言,我知道的一定会解答【我解答不了的也可能会有别的大佬来解答:)】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。