尝试在 mbp 搭建一个用 Clion 做硬件开发的环境,硬件是 STM32F103C8T6 + ST-link。

基本流程是按照稚晖君的文章进行安装,再配上这篇做适应 Mac 的改动,可以参考这两篇文章的流程,所以Clion、Xcode、STM32Cubemx 的安装就不赘述了。

下面补充一些我在安装过程中遇到的问题和解决办法:

  1. OpenOCD:版本最新只能更新到 v0.11.0-5,再往上的版本号其内部目录结构有较大的变动,会导致 Clion 配置 OpenOCD 位置的时候无法识别
  2. gdb:到现在(2024.03.21)也没有官方支持 m 系列的芯片,只能用 Rosetta 来强行安装,根据这里的答案来安装 gdb。要注意下面的答案执行~~sudo rm -rf /opt/homebrew~~卸载 homebrew 然后重新安装到/~~usr/local/bin~~,会导致之前默认安装到~~/opt~~下的 homebrew 程序失效。

    1. 现在推荐使用 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
  3. ARM-GCC工具链:根据stackoverflow上的答案,需要使用此命令来安装brew install --cask gcc-arm-embedded
  4. 安装 stlink:brew install stlink,github 上说 v1.8 不再支持 macos,但使用 homebrew 还可以安装,而且也支持苹果芯片。安装完成后执行st-info —probe可以看到接入的芯片信息
  5. 安装 STM32CubeProgrammer,也可以不装,但是我第一次写入程序的时候没有设置 PA13、PA14 的 SWD 功能,然后烧录了这个错误的程序,导致烧录和连接失败,当使用st-info —probe的时候提示Failed to enter SWD mode。按照这个文章的方法可以消除上面的错误提示,但是还是无法写入数据。本来应该从 Win 系统使用 STM32 Utility 软件来擦除芯片数据,但是官方提示可以使用 STM32CubeProgrammer 代替,此程序也可以在 mac 上使用(虽然会有一些兼容性的问题,比如有时会未响应),使用方式跟 STM32 Utility 一样,擦除芯片中的全部数据
  6. 然后就可以直接在 MX 或者 CubeIDE 中调整每个 GPIO 的输出模式和高低电平,然后点击 Generate Code,再跳到 Clion 中打开 Core/Src/main.c就能看到修改 GPIO 的相关代码,可以愉快的开始嵌入式点灯之旅啦