Mac 下搭建esp8266交叉编译环境

版权声明:本文多数内容来自互联网,只经过本人修改组合,无版权,故可随意转载。( ¯▽¯;) https://blog.csdn.net/kxwinxp/article/details/86542557

Mac 下搭建esp8266交叉编译环境

自己是搞ARM嵌入式开发的,但手头又是一台Mac,对于Mac里面跑window虚拟机已是家常便饭。但如果可以直接用Mac开发,我是一定要尝试的,毕竟体验好这么多。这次,一个偶然机会,在参考网上教程后,顺利搭建成功,故记录一下。
总体步骤和网上众多Linux安装步骤类似。
不知道esp8266是什么?请看这里

1.安装Homebrew

Homebrew是Mac下的软件包管理工具。如果安装了的就跳过这步。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.安装所需依赖

brew install binutils coreutils automake autoconf wget gawk libtool help2man gperf gnu-sed --with-default-names grep

3.准备交叉编译包

toolchain来源(找到的最新编译好的Mac版是2.3.0):https://github.com/esp8266/Arduino/releases

sudo mkdir -p /opt/esp8266
sudo chmod 777 /opt/esp8266
cd /opt/esp8266
wget https://github.com/esp8266/Arduino/releases/download/2.3.0/osx-xtensa-lx106-elf-gb404fb9-2.tar.gz
tar zxvf osx-xtensa-lx106-elf-gb404fb9-2.tar.gz

4.添加到环境参数PATH

添加到当前用户环境变量,如果要添加到全局,则修改/etc/bashrc文件!

vi ~/.bash_profile
#添加如下两行:
export PATH=/usr/local/opt/gnu-sed/libexec/gnubin:$PATH
export PATH=/opt/esp8266/xtensa-lx106-elf/bin:$PATH

然后重新打开terminal或者使用source ~/.bash_profile生效环境设置。

5.查看安装状态

#查看版本号
xtensa-lx106-elf-gcc -v
#可以看到如下内容,便是安装成功:
Using built-in specs.
COLLECT_GCC=xtensa-lx106-elf-gcc
COLLECT_LTO_WRAPPER=/opt/esp8266/xtensa-lx106-elf/bin/../libexec/gcc/xtensa-lx106-elf/4.8.2/lto-wrapper
Target: xtensa-lx106-elf
省略...
gcc version 4.8.2 (crosstool-NG 1.20.0) 

6.Visual Studio Code下测试

Visual Studio Code下载:https://code.visualstudio.com
测试项目来着安信可官方教程:http://wiki.ai-thinker.com/ai_ide_use
项目文件:esp8266_nonos_sdk-2.2.0.zip

#下载项目
wget http://wiki.ai-thinker.com/_media/esp8266/sdk/esp8266_nonos_sdk-2.2.0.zip
unzip esp8266_nonos_sdk-2.2.0.zip
cd ESP8266_NONOS_SDK-2.2.0
#将 driver_lib 和 examples/IoT_Demo 下的文件拷贝到 app目录下
mv driver_lib app
cp -rf examples/IoT_Demo/* app/
rm -rf examples
#补充两个链接库
wget -O lib/libc.a https://github.com/esp8266/esp8266-wiki/raw/master/libs/libc.a
wget -O lib/libhal.a https://github.com/esp8266/esp8266-wiki/raw/master/libs/libhal.a

好了,将项目导入Visual Studio Code。
然后执行make clean;make COMPILE=gcc即可看到编译结果。

在这里插入图片描述

7.烧录flash

这里使用的是esptool。可参考:
https://github.com/nodemcu/nodemcu-devkit/wiki/Getting-Started-on-OSX
https://github.com/espressif/esptool
esp8266主要使用CH34X和CP210X两种uart转usb模块,驱动下载:https://download.csdn.net/download/kxwinxp/10926261

首先安装python3 看清是python3,不是python,安装过的请往下看。

brew install python3

接着安装pip,pip是python的包管理工具,如果已经安装请跳过。

想卸掉pip?python -m pip uninstall pip

#准备安装包
wget wget https://bootstrap.pypa.io/get-pip.py
#安装
sudo python3 get-pip.py
#安装成功,提示如下:
Installing collected packages: pip, wheel
Successfully installed pip-18.1 wheel-0.32.3

如果你python2安装过,那么python3的pip则为pip3.

然后使用pip安装esptool。

#安装esptool
pip3 install esptool
#查找usb serial 设备:
ls /dev/tty.wchusbserial*

自己找到一下tty.wchusbserial*的列表,我的是tty.wchusbserial1420

根据ESP8266 SDK官方文档,对应我的是4MB的flash。
在这里插入图片描述
我们需要刷入2个(必须)和2个(可选)文件,。

/bin目录下:
eagle.flash.bin-------->bootloader
eagle.irom0text.bin-------->code

esp_init_data_default_v8.bin------->基带参数
blank.bin------->空白填充

烧入时,先摁住flash键,再摁一下reset键,即重启进入烧入状态。

esptool.py --port /dev/tty.wchusbserial1420 write_flash --flash_freq 40m --flash_mode dout --flash_size 4MB 0x0 bin/eagle.flash.bin 0x10000 bin/eagle.irom0text.bin

烧入结果:
在这里插入图片描述

当然,其实并不需要同时烧入这么多文件,一般只烧入eagle.flash.bineagle.irom0text.bin,但由于硬件参数可能会被破坏过,所以才烧入其他参数文件。

8.附录

给大家提供一个串口工具吧,自己感觉还不错。
RS232 Tool 来源:GitHub
下载地址(版本效果如下图所示):CSDN下载

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/kxwinxp/article/details/86542557
今日推荐