2019年在实验室的主机上安装了黑苹果,迫于体验极佳,在19年的最后一个月入了MacBookPro替代原来的游戏本提高生产力,这一篇文章也因此而来。
不得不说,Mac剪辑视频、写Web都是极佳的利器,但我作为一名电子专业的学生,平时需要使用的一些EDA软件。他们有很多仅支持Windows,或者仅在Windows上能够破解,这成为了令很多电子类专业用MacBook的同学一个脑阔疼的问题,最简单直接的办法是安装双系统,大部分人都是如此。但我在买笔记本之前就已经想好退路了,要我在Mac上装双系统是不可能的,接下来要介绍的是 How to Develop Stm32 with MacOS?
在MacOS上实现STM32烧写的方案网络上有多种:
ST官方推出的STM32CubeIDE
基于Eclipse改过来的IDE,集成了STM32CubeMX、STM32CubeProgrammer和烧写程序的功能。
But,用Vivado的SDK时带来的不好的体验,使我对Eclipse魔改过来的IDE一直没有好感,这个方案PASS
VsCode插件PlatformIO IDE
也是可以通过Jtag等方式直接烧写stm32,但用的库文件不够官方,结构有点诡异。
适合写Arduino或小规模的工程。而且新建工程的速度慢,这个方案PASS。
stm32Cube加上openocd
我的好朋友用的是这种方案,我没有尝试,似乎效果还不错?感兴趣的朋友可以百度研究一下。
而我们使用的工具链是:VSCode、ArmGCC、STM32CubeMX、STM32CubeProgrammer。
类似第三种方案与第一种方案的结合。
Keil这些年来一直停滞不前,而这些工具一直在进步。
注:本文下载的软件较多,且下载速度较慢,可以去我的个人博客下载镜像立即前往
前往官网下载
安装完成之后,在左侧的扩展栏目里,先搜索插件:Chinese,安装,汉化。
然后按住command+shift+p,选择“Install ‘code’ command in PATH。接下来我们就能够使用code file这个命令来打开文件了。
安装C/C++插件
安装Cortex-Debug插件
ArmGCC是Arm官方用于编译 ARM 架构的裸机系统的编译器,就和他的名字一下,用于Arm的GCC编译器。我们需要使用ArmGCC将我们编写的C语言程序、Arm的汇编指令,编译成烧写用的hex、bin文件、调试用的elf文件。
点击前往下载
下载MacOS版本,解压后得到如下的文件夹。
之后,我将这个文件夹拷贝到了home下的opt目录中,毕竟不能把他随便丢在下载文件夹里面,太难看了。
然后,我们需要把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的命令了。
打开命令行,输入以下命令查看是否配置成功:
STM32CubeMX是意法半导体官方,在前几年推出的图形化底层代码生成工具,简单的说,它能够芯片/开发版,进行一些底层代码的配置,例如要用哪些资源,控制这些资源的库代码,这样你就可以不用依赖正点给你写的那些功能库了。
而对于STM32CubeProgrammer,我们需要了解将程序下载到单片机的两种方法:
普通串口下载
只要开发板上有CH340这个芯片,我们就能通过USB直接往芯片里烧写Hex文件。但Mac上没找到烧写的软件,所以这个方案对我们不适用。
下载器下载
用SWD等方式烧写Bin文件,STM32CubeProgrammer是帮助我们实现该功能的工具。
但是,这个软件居然要依靠JAVA来运行,我们还得先去官网下载一个JDK安装一下
点击前往下载JDK
推荐安装JDK8,我先前安装的是JDK13,烧写正常,但是Programmer 的图形界面打不开
然后分别下载Mac版本的STM32CubeMX和STM32CubeProgrammer
点击前往下载STM32CubeMX
点击前往下载STM32CubeProgrammer
MAC安装这俩软件的方式有些不同,下载完成,解压之后。需要右击,显示包内容。然后前往Content->MacOS里执行安装(如果权限不够,需要给一下执行权限)安装过程还是很无脑的,一路Next就好了。
安装成功。
接着一样安装完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
来烧写单片机了。
看到这里,我相信你还有很多疑惑,似乎环境已经安装完成了,但如何使用?
流程大概是这样:
用语言描述有些复杂,录制了一段视频放在bilibili。
点击前往