MacOS 烧写STM32

2019年在实验室的主机上安装了黑苹果,迫于体验极佳,在19年的最后一个月入了MacBookPro替代原来的游戏本提高生产力,这一篇文章也因此而来。

不得不说,Mac剪辑视频、写Web都是极佳的利器,但我作为一名电子专业的学生,平时需要使用的一些EDA软件。他们有很多仅支持Windows,或者仅在Windows上能够破解,这成为了令很多电子类专业用MacBook的同学一个脑阔疼的问题,最简单直接的办法是安装双系统,大部分人都是如此。但我在买笔记本之前就已经想好退路了,要我在Mac上装双系统是不可能的,接下来要介绍的是 How to Develop Stm32 with MacOS?

在MacOS上实现STM32烧写的方案网络上有多种:

  1. ST官方推出的STM32CubeIDE

    基于Eclipse改过来的IDE,集成了STM32CubeMX、STM32CubeProgrammer和烧写程序的功能。

    But,用Vivado的SDK时带来的不好的体验,使我对Eclipse魔改过来的IDE一直没有好感,这个方案PASS

  2. VsCode插件PlatformIO IDE

    也是可以通过Jtag等方式直接烧写stm32,但用的库文件不够官方,结构有点诡异。

    适合写Arduino或小规模的工程。而且新建工程的速度慢,这个方案PASS。

  3. stm32Cube加上openocd

    我的好朋友用的是这种方案,我没有尝试,似乎效果还不错?感兴趣的朋友可以百度研究一下。

而我们使用的工具链是:VSCode、ArmGCC、STM32CubeMX、STM32CubeProgrammer。

类似第三种方案与第一种方案的结合。

Keil这些年来一直停滞不前,而这些工具一直在进步。

注:本文下载的软件较多,且下载速度较慢,可以去我的个人博客下载镜像立即前往

一、安装VsCode

前往官网下载

安装完成之后,在左侧的扩展栏目里,先搜索插件:Chinese,安装,汉化。
MacOS 烧写STM32_第1张图片
然后按住command+shift+p,选择“Install ‘code’ command in PATH。接下来我们就能够使用code file这个命令来打开文件了。
MacOS 烧写STM32_第2张图片
安装C/C++插件
MacOS 烧写STM32_第3张图片
安装Cortex-Debug插件
MacOS 烧写STM32_第4张图片

二、安装ArmGCC

ArmGCC是Arm官方用于编译 ARM 架构的裸机系统的编译器,就和他的名字一下,用于Arm的GCC编译器。我们需要使用ArmGCC将我们编写的C语言程序、Arm的汇编指令,编译成烧写用的hex、bin文件、调试用的elf文件。

点击前往下载

下载MacOS版本,解压后得到如下的文件夹。

MacOS 烧写STM32_第5张图片

之后,我将这个文件夹拷贝到了home下的opt目录中,毕竟不能把他随便丢在下载文件夹里面,太难看了。

MacOS 烧写STM32_第6张图片
然后,我们需要把gcc-arm的bin文件夹放到环境变量PATH里去。

为什么需要放到环境变量PATH中去?怎么放到环境变了里去?

我相信有实力折腾本文操作的读者,应该不会被这种问题困扰,但还是为了以防万一,这里对我的环境做简单的介绍。

如果不清楚,可以参考相关文章。

打开命令行,输入 code ~/.zshrc 由于我用的是zsh,所以是zshrc,如果没有经过配置,那么你输入的应该是:code ~/.bash_profile

在文件的末尾加入:

export PATH="/Users/wanglei/opt/gcc-arm-none-eabi/bin:$PATH"

把中间的 “/Users/wanglei/opt/gcc-arm-none-eabi/bin”替换成你的目录,然后重启命令行,就可以使用ArmGCC的命令了。

打开命令行,输入以下命令查看是否配置成功:

MacOS 烧写STM32_第7张图片

三、安装STM32CubeMX和STM32CubeProgrammer

STM32CubeMX是意法半导体官方,在前几年推出的图形化底层代码生成工具,简单的说,它能够芯片/开发版,进行一些底层代码的配置,例如要用哪些资源,控制这些资源的库代码,这样你就可以不用依赖正点给你写的那些功能库了。

而对于STM32CubeProgrammer,我们需要了解将程序下载到单片机的两种方法:

  • 普通串口下载

    只要开发板上有CH340这个芯片,我们就能通过USB直接往芯片里烧写Hex文件。但Mac上没找到烧写的软件,所以这个方案对我们不适用。

  • 下载器下载

    用SWD等方式烧写Bin文件,STM32CubeProgrammer是帮助我们实现该功能的工具。

但是,这个软件居然要依靠JAVA来运行,我们还得先去官网下载一个JDK安装一下

点击前往下载JDK

推荐安装JDK8,我先前安装的是JDK13,烧写正常,但是Programmer 的图形界面打不开

然后分别下载Mac版本的STM32CubeMX和STM32CubeProgrammer

点击前往下载STM32CubeMX

点击前往下载STM32CubeProgrammer

MAC安装这俩软件的方式有些不同,下载完成,解压之后。需要右击,显示包内容。然后前往Content->MacOS里执行安装(如果权限不够,需要给一下执行权限)安装过程还是很无脑的,一路Next就好了。

MacOS 烧写STM32_第8张图片
安装完成STM32CubeMX之后,打开软件。

MacOS 烧写STM32_第9张图片

安装成功。

接着一样安装完STM32CubeProgrammer,为了能够方便的烧写单片机,我们还需要将STM32_Programmer_CLI这个文件所在目录放在系统的环境变量里。

export PATH="/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin:$PATH"

然后我们就能用

STM32_Programmer_CLI -c port=SWD -d build/ProgramDemo.bin 0x8000000 -s

来烧写单片机了。

四、实战演示

看到这里,我相信你还有很多疑惑,似乎环境已经安装完成了,但如何使用?

流程大概是这样:

  1. 使用STM32CubeMX生成工程模板
  2. 配置VsCode工程环境
  3. 编写代码
  4. make编译出hex、bin、elf文件
  5. 用STM32_Programmer_CLI命令烧写/或者用Cortex-Debugger插件调试

用语言描述有些复杂,录制了一段视频放在bilibili。
点击前往

五、一些问题的解答

  1. 报错信息:Error: Old ST-LINK firmware version. Upgrade ST-LINK firmware

    下载ST-Link升级固件:点击下载

    也可以去我的个人博客下载哦:点击前往

    给自己的ST-Link升级一下.

  2. SVD文件在哪儿下载
    百度搜索 stm32xxxxx svd
    在这里插入图片描述
    MacOS 烧写STM32_第10张图片
    进入官网的,全英文的这个网站,然后点击
    MacOS 烧写STM32_第11张图片
    下载下图的压缩包即可。
    MacOS 烧写STM32_第12张图片

你可能感兴趣的:(Macos)