前言

Windows系统中使用Keil集成开发环境进行STM32的开发是主流方式,但也有人使用mac或者linux工作,本篇就以uFun学习板为例,介绍如何在macOS下的开发和烧写,
本文提到的所有软件均为跨平台软件,所以同样适用于linux系统。
相比Windows,Mac下没有Keil,所以我需要做的就是寻找能替代keil的工具,那么KEIL这样的IDE集成了什么功能呢?
- 文本编辑器:编辑源代码文件,提供基础的文本编辑功能与语法加亮等功能。
- 编译器;编译与链接文件,使源代码文档可以转化为在单片机上执行的机器码格式文件。
- 调试器;连接单片机调试器硬件(如:jlink、ST-link等)实现单步执行、寄存器提取、资源监测等调试功能。

正文

0 包管理工具 brew
安装Mac下的包管理工具brew(类似于ubuntu下的apt-get)后面安装工具链时要用,
https://brew.sh
在终端中输入;
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1. 安装Visual Studio Code
微软推出的一款轻量级代码编辑器,可以在官网免费获取。
https://code.visualstudio.com

2. 安装CH340驱动
下载并安装串口芯片CH340驱动程序,使得电脑可以和uFun建立通讯。
http://www.wch.cn/download/CH341SER_MAC_ZIP.html
安装时可能会弹出安全警告,在设置--安全与隐私中允许运行即可。
确认驱动安装成功之后,插入CH340硬件,然后可以按照如下步骤查看硬件是否已经驱动成功。
进入终端,输入 “ls /dev/tty.wchusbserial*” 命令,如果看到查找到了相关设备名,代表成功;
以上步骤成功执行后,我们便可以使用串口工具minicom /dev/tty.wchusbserial* 操作了。

3 编译器和调试器
编译器和调试器则选择GNU项目下的软件arm-none-eabi-gcc,这是一个面向arm的编译器。在嵌入式开发中我们一般将它叫做工具链。(工具链:一般由编译器、连接器、解释器和调试器组成)
打开gcc-arm-none-eabi项目的官网:
https://launchpad.net/gcc-arm-embedded/+download
或者
https://developer.arm.com/tools- ... in/gnu-rm/downloads
下载完成后将bin目录添加到环境变量中。
具体编译过程参考Foresights的系列文章


4. 串口烧写工具
这个软件相当于windows下的flymcu,可以通过串口把程序烧写到芯片中。
在终端中输入以下命令开始安装:
brew install stm32flash
使用stm32flash工具我们就可以把编译生成的hex文件烧写到stm32的内存,命令为:
stm32flash -w filename -v -g 0x0 /dev/ttyS0
详细用法见github主页:
https://github.com/ARMinARM/stm32flash

5 串口调试工具 minicom
在终端中输入:
sudo brew install minicom
等安装完成后,在终端输入
sudo minicom -s

我们选择第三项Serial port setup,回车,进入详细设置。
第一项Serial Device手动改为:/dev/tty.usbserial,Hardware Flow Control改为:No,
更改时,如需更改第一项,则先输入a,光标会移动到第一项末尾;编辑结束后,按回车。
最后如下:
minicom2.png
选择save setup as dfl。
最后选择Exit 即可成功连接看到输出。
Snip20190609_1.png

参考资料:
CH340 MAC驱动使用教程:https://blog.csdn.net/jazzsoldier/article/details/70171771
STM32高级开发(5)-gcc-arm-none-eabi : https://blog.csdn.net/zhengyangliu123/article/details/54783443
STM32高级开发(8)-链接器与启动文件 : https://blog.csdn.net/zhengyangliu123/article/details/54864944