环境配置
- 安装gcc-arm-none-eabi
- 安装pyocd
- 安装cmake (clion内置捆绑了一个非最新版本的,如果cubeMX限制版本号限制需要修改CmakeLists.txt第一行的版本号)
- clion会询问选择面板配置文件,这是openocd的配置,点击跳过就行,如果每次都弹出可以随便选一个创建运行配置,不使用就行
- 如果使用vscode需要创建vscode的启动json,vscode的json没有可视化,可以把命令行给GPT生成
pyocd需要安装对应开发板的pack包,也可以手动下载,安装命令为
pyocd pack install STM32F103C8
# 开发板型号参考这个示例的写法,最后2位可以随便写,但必须真实存在,安装之后可以使用STM32F103开头的任意板子
# 理论上其他国产开发板也支持
1.创建项目
项目其他按照正常方式创建,此处选择CUBE IDE,cmake需要工具链,CUBE IDE会自动配置
2.clion工具链配置
(高版本可以忽略这一步,cubemx会自动配置arm编译器,arm gcc需要环境变量)
工具链配置,一般只需要填写c编译器和调试器,如果是自己的cmake需要手动写完整目录,如果需要c++支持需要填写c++编译器
3.clion构建配置
- 如果需要调试选择RelWithDebInfo或者Debug
- 工具链选择刚才创建的
- 生成器选择Unix Makefiles,cmake选项会自动填写
4.运行及调试配置
文章末尾有常用pyocd命令,更多命令请自行翻阅pyocd文档
图片显示了默认的运行和调试配置
调试器捆绑的gdb或者clion默认都行(默认的好像更快)
参考命令
#clion 运行配置可执行文件填写pyocd路径,实参填写
flash -t stm32f103rc $CMakeCurrentProductFile$
#clion gdb,target remote为localhost:65533,服务器为pyocd路径,调试实参为
gdbserver -p 65533 -t stm32f103rc --elf $CMakeCurrentProductFile$ -r -f 4M
# 4M可以根据开发板性能进行调整
#寄存器加载svd位置 path\STMicroelectronics\STM32Cube\STM32CubeProgrammer\SVD\STM32F103.svd
# 禁用gdb内存限制 在gdb内部执行
set mem inaccessible-by-default off
#ptocd 擦除命令
#erase options:
# -c, --chip Perform a chip erase.
# -s, --sector Erase the sectors listed as positional arguments. This is the default.
# --mass Perform a mass erase. On some devices this is different than a chip erase.
pyocd erase --chip -t stm32f103rc
#pyocd elf下载命令
pyocd flash --target stm32f103rc xxx.elf
# pyocd 全部擦除后下载
flash --erase chip --target stm32f103rc xxx.elf
# 调试命令帮助
pyocd gdbserver -h
链接:
- arm gcc https://developer.arm.com/downloads/-/gnu-rm
- clion https://www.jetbrains.com/clion/
- python https://www.python.org/downloads/
备注
- 部分软件如果支持可以通过命令行安装 scoop(apt) install gcc-arm-none-eabi
- pyocd部分芯片支持探针,自动获取芯片型号 pip install pyocd[pemicro]