在 Mac OS 上配置 ESP8266 RTOS 开发环境

本文简单演示如何在 Mac OS系统中搭建 ESP8266 RTOS 开发环境。

准备环境

要在 Mac OS 中搭建 ESP8266 的开发环境,首先需要在 Mac OS 中安装 XCode 及其命令行工具。ESP8266 RTOS SDK 也需要用到 Python, 因为 Python 在 MacOS 系统中已经默认安装了,因此不需要再安装。但需要安装 pyserial, 在终端中执行命令:

1
pip3 install pyserial

系统提示:

1
2
3
4
5
Collecting pyserial
Downloading https://files.pythonhosted.org/packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl (193kB)
|████████████████████████████████| 194kB 49kB/s
Installing collected packages: pyserial
Successfully installed pyserial-3.4

安装交叉编译工具

直接从官网下载交叉编译工具,下载链接

下载完成后,将其解压,在本次演示中,使用 $HOME/devel/esp 作为目标目录,解压以后会在 $HOME/devel/esp/xtensa-lx106-elf 中找到交叉编译工具。

然后将路径加入到系统 PATH 中,编辑 .bash_profile 文件,

1
vi ~/.bash_profile

在文件中加入以下行:

1
2
PATH=$PATH:$HOME/devel/esp/xtensa-lx106-elf/bin
export PATH

保存以后执行:

1
source ~/.bash_profile

以便改动立即生效。

安装 ESP8266 RTOS SDK

该 SDK 是以源码形式开源在 github 上,因此我们可以通过 git 命令来获取,在 $HOME/devel/esp 目录中执行:

1
git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git

克隆完成后,将 IDF_HOME 变量指定到该目录。

编辑 $HOME/.bash_profile 文件,加入

1
2
IDF_PATH=$HOME/devel/esp/ESP8266_RTOS_SDK
export IDF_PATH

保存以后执行 source $HOME/.bash_profile 使改动立即生效。

接下来安装 SDK 所需要的第三方 python 库,执行:

1
python2.7 -m pip install --user -r $IDF_PATH/requirements.txt

验证安装

经过上面的步骤,安装已经完成,下面我们编译并运行一个例子来验证环境是否能正常工作。

将设备接入电脑

拷贝 SDK 中的案例到用户目录

1
cp -r $IDF_PATH/examples/get-started/hello_world .

拷贝完成后,配置该项目,进入 hello_world 目录,执行

1
make menuconfig

会启动一个字符界面方便对项目进行配置。 对于案例,其它的配置不用改,只需要关注 “Serial flasher config” -> “Default serial port” 这一项,SDK 中的默认配置为: /dev/ttyUSB0, 但在 Mac OS 系统中,USB设备通常为 /dev/cu开头, 通过 ls /dev/cu* 命令可以找到。

修改以后保存。

执行 make flash, 将启动编译,构建,烧录到目标板的过程。

1
make flash

系统显示类似信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
....
Generating esp8266.project.ld
LD build/hello-world.elf
esptool.py v2.4.0
Flashing binaries to serial port /dev/cu.usbserial-1420 (app at offset 0x10000)...
esptool.py v2.4.0
Connecting....
Chip is ESP8266EX
Features: WiFi
MAC: bc:dd:c2:ba:f4:39
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Compressed 10768 bytes to 7129...
Wrote 10768 bytes (7129 compressed) at 0x00000000 in 0.7 seconds (effective 124.0 kbit/s)...
Hash of data verified.
Compressed 195504 bytes to 132722...
Wrote 195504 bytes (132722 compressed) at 0x00010000 in 12.9 seconds (effective 121.5 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 83...
Wrote 3072 bytes (83 compressed) at 0x00008000 in 0.0 seconds (effective 1697.1 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

说明以成功。

如果希望看到程序(hello_world)运行的结果,可以执行:

1
make monitor

1
make flash monitor

如果以上步骤没问题,则可以看到以下类似信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
...
I (44) boot: ESP-IDF v3.2-427-gffa9749d 2nd stage bootloader
I (44) boot: compile time 10:44:23
I (44) qio_mode: Enabling default flash chip QIO
I (52) boot: SPI Speed : 40MHz
I (59) boot: SPI Mode : QIO
I (65) boot: SPI Flash Size : 2MB
I (71) boot: Partition Table:
I (76) boot: ## Label Usage Type ST Offset Length
I (88) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (99) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (111) boot: 2 factory factory app 00 00 00010000 000f0000
I (122) boot: End of partition table
I (129) esp_image: segment 0: paddr=0x00010010 vaddr=0x40210010 size=0x2481c (149532) map
0x40210010: _flash_cache_start at ??:?

I (192) esp_image: segment 1: paddr=0x00034834 vaddr=0x4023482c size=0x04ec4 ( 20164) map
I (199) esp_image: segment 2: paddr=0x00039700 vaddr=0x3ffe8000 size=0x00624 ( 1572) load
I (203) esp_image: segment 3: paddr=0x00039d2c vaddr=0x40100000 size=0x00a50 ( 2640) load
I (217) esp_image: segment 4: paddr=0x0003a784 vaddr=0x40100a50 size=0x05400 ( 21504) load
I (237) boot: Loaded app from partition at offset 0x10000
I (258) system_api: Base MAC address is not set, read default base MAC address from EFUSE
I (262) system_api: Base MAC address is not set, read default base MAC address from EFUSE
phy_version: 1156.0, 635e6fc, Feb 20 2020, 16:20:08, RTOS new
I (324) phy_init: phy ver: 1156_0
I (326) reset_reason: RTC reset 2 wakeup 0 store 3, reason is 2
Hello world!
This is ESP8266 chip with 1 CPU cores, WiFi, silicon revision 1, 2MB external flash
Restarting in 10 seconds...

本文标题:在 Mac OS 上配置 ESP8266 RTOS 开发环境

文章作者:Morning Star

发布时间:2020年04月17日 - 11:04

最后更新:2021年04月16日 - 15:04

原始链接:https://www.mls-tech.info/iot/esp8266-setup-on-macos/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。