Mac下的固件烧录¶
概要¶
本编教程中,1Z实验室主要为大家详细讲解在Mac下对ESP32刷入MicroPython固件的具体流程。
开始之前¶
在开始之前,你应该仔细阅读本系列教程中之前的章节:
阅读完成之后,你需要做到:
-
下载MicroPython的固件到本地
-
了解到烧录MicroPython固件需要使用到的工具
-
把你的ESP32设备用一根正确的的数据线连接到你的电脑
获取工具¶
在MicroPython固件烧录指南一文中笔者有提到:
为ESP32烧录MicroPython固件需要使用的工具:
Python3
pip
python的包管理器,用来下载esptool
模块
esptool
一个用于给ESP32刷入固件的Python工具模块
接下来我们重点讲解如何在Mac上获取这些工具。
Mac自带Python¶
Mac OS通常都自带python2和python3,但是不自带pip。
获取pip¶
使用curl
来下载get-pip.py
的脚本,在mac中打开命令行终端,输入以下的命令:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
执行该脚本:
sudo python3 get-pip.py
等待执行完毕,pip便成功安装。
获取esptool¶
使用pip来安装esptool.
pip install esptool
至此,所有的工具都已安置妥当。
刷入固件¶
万事俱备,开始刷入MicroPython固件吧。
查看Mac下的端口号¶
在开始之前,你需要知道你插入到电脑上的ESP32设备,在Mac中的端口号是多少。虽然和Windows大相径庭,但是MacOS 和 Linux十分相似,usb串口设备,在Linux的文件系统中的/dev/
目录下可以找到,而在Mac下,端口号也在该目录下。不同的是,Mac对端口号名称的定义和Linux存在一些差异。(由于笔者实在是穷的买不起Mac,再加之该问题在网上的信息也较少,不能给出很普适的端口号命名规则...只能以我借来的mac为例,展示一下烧录过程...)
经过我对/dev/
目录下的文件的查找,我发现了我借来的这台Mac上存在一个很可疑的名称:
cu.SLAB_USBtoUART
, 经过实践检测,确认就是它了, 你的Mac上的端口号应该与之类似。
擦除flash¶
同样的,为了保证固件刷入的成功率,我们先要对ESP32的flash进行清除.
sudo esptool.py --port <你的端口号> erase_falsh
笔者借来的Mac上,端口号是
/dev/cu.SLAB_USBtoUART
,所以我应该输入的指令是sudo esptool.py --port /dev/cu.SLAB_USBtoUART erase_falsh
注意: 务必替换其中的 <你的端口号> 为你自己的端口号
使用esptool刷入固件¶
找到之前你所下载的固件所在的完整路径,通常浏览器下载的固件存放在~/Downloads
目录下
按照如下命令模板,开始刷入:
sudo esptool.py --chip esp32 --port <你的端口号> write_flash -z 0x1000 <你的固件的完整路径>
注意: 务必替换其中的 <你的端口号> 和<你的固件的完整路径> ,确保二者的正确性
笔者的端口号为 /dev/cu.SLAB_USBtoUART
, 固件路径为 ~/Dowloads/esp32-20180411-v1.9.3-534-g59dda710.bin
所以笔者的输入应为
sudo esptool.py --chip esp32 --port /dev/cu.SLAB_USBtoUART write_flash -z 0x1000 ~/Dowloads/esp32-20180411-v1.9.3-534-g59dda710.bin
如下是指令执行的完整输出, 用时53.5s:
➜ ~ sudo esptool.py --chip esp32 --port /dev/cu.SLAB_USBtoUART write_flash -z 0x1000 ~/Dowloads/esp32-20180411-v1.9.3-534-g59dda710.bin esptool.py v2.3.1 Connecting........_ Chip is ESP32D0WDQ6 (revision 1) Features: WiFi, BT, Dual Core Uploading stub... Running stub... Stub running... Configuring flash size... Auto-detected Flash size: 4MB Compressed 973584 bytes to 604211... Wrote 973584 bytes (604211 compressed) at 0x00001000 in 53.5 seconds (effective 145.5 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin...
至此, Mac OS上的固件烧录过程结束.