在 Apple Silicon 使用 Clion 开发 STM32 的相关问题
尝试在 mbp 搭建一个用 Clion 做硬件开发的环境,硬件是 STM32F103C8T6 + ST-link。
基本流程是按照稚晖君的文章进行安装,再配上这篇做适应 Mac 的改动,可以参考这两篇文章的流程,所以Clion、Xcode、STM32Cubemx 的安装就不赘述了。
下面补充一些我在安装过程中遇到的问题和解决办法:
- OpenOCD:版本最新只能更新到
v0.11.0-5
,再往上的版本号其内部目录结构有较大的变动,会导致 Clion 配置 OpenOCD 位置的时候无法识别 gdb:到现在(2024.03.21)也没有官方支持 m 系列的芯片,只能用 Rosetta 来强行安装,
根据这里的答案来安装 gdb。要注意下面的答案执行~~sudo rm -rf /opt/homebrew~~
卸载 homebrew 然后重新安装到/~~usr/local/bin~~
,会导致之前默认安装到~~/opt~~
下的 homebrew 程序失效。现在推荐使用 arm 和 amd64 版本共存的方案:
#安装 arm 版的 homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" #如果要默认使用此版本需要将 /opt/homebrew/bin/brew 添加到 $PATH 中 echo 'export PATH="/opt/homebrew/bin:$PATH"' >> .zshrc #添加不同版本的简称 echo 'alias abrew="arch -arm64 /opt/homebrew/bin/brew"' >> .zshrc echo 'alias ibrew="arch -x86_64 /usr/local/bin/brew"' >> .zshrc source ~/.zshrc #然后安装 gdb ibrew install gdb
- ARM-GCC工具链:根据stackoverflow上的答案,需要使用此命令来安装
brew install --cask gcc-arm-embedded
- 安装 stlink:
brew install stlink
,github 上说 v1.8 不再支持 macos,但使用 homebrew 还可以安装,而且也支持苹果芯片。安装完成后执行st-info —probe
可以看到接入的芯片信息 - 安装 STM32CubeProgrammer,也可以不装,但是我第一次写入程序的时候没有设置 PA13、PA14 的 SWD 功能,然后烧录了这个错误的程序,导致烧录和连接失败,当使用
st-info —probe
的时候提示Failed to enter SWD mode
。按照这个文章的方法可以消除上面的错误提示,但是还是无法写入数据。本来应该从 Win 系统使用 STM32 Utility 软件来擦除芯片数据,但是官方提示可以使用 STM32CubeProgrammer 代替,此程序也可以在 mac 上使用(虽然会有一些兼容性的问题,比如有时会未响应),使用方式跟 STM32 Utility 一样,擦除芯片中的全部数据 - 然后就可以直接在 MX 或者 CubeIDE 中调整每个 GPIO 的输出模式和高低电平,然后点击 Generate Code,再跳到 Clion 中打开
Core/Src/main.c
就能看到修改 GPIO 的相关代码,可以愉快的开始嵌入式点灯之旅啦