基于MacOS的ESP8266 NodeMCU开发环境搭建(转载整理)


前言


前段时间一直使用Windows进行ESP8266的Nonos SDK开发,由于使用的安信可提供的一体化开发工具,安装起来十分的简单粗暴.只需要下载下来之后配置一下就可以使用了,但是在Mac 上确没有明确的开发环境搭建教程,大部分是基于 Ardiuno IDE 进行开发ESP8266的,而 Ardiuno IDE 没有代码提醒以及高亮状态让我感到十分的不爽.所以就在网上搜寻了一番,发现了一个基于 VS Code 的环境搭建流程.这里就直接分享整理一下了.


安装交叉编译包


  • 安装交叉编译包之前首先先确定是否已经安装了Mac的软件包管理工具 Homebrew,默认的话就是一行命令行指令即可完成.如下所示.如果发现下载太慢导致失败可以参考下HomeBrew 官方安装太慢而失败?这么搞就行.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 软件包管理工具安装完成之后,我们就要使用下面的命令开始下载我们所需的依赖.
brew install binutils coreutils automake autoconf wget gawk libtool help2man gperf gnu-sed grep
  • 安装完成所需依赖之后,我们就要下载交叉编译包了,这里推荐的是2.3.0版本(网上说这个版本较好,具体没有测试过.).下载过程可能有点慢,耐心等待就好.下载完成之后进行解压操作.然后所以指令如下所示.
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
  • 解压完成之后我们添加到环境参数PATH中,主要是vim指令,具体百度不解释了.指令如下所示.

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

vi ~/.bash_profile

#添加如下两行:
export PATH=/usr/local/opt/gnu-sed/libexec/gnubin:$PATH
export PATH=/opt/esp8266/xtensa-lx106-elf/bin:$PATH
  • 然后重新打开终端或者使用 source ~/.bash_profile 生效环境设置。
source ~/.bash_profile
  • 当然了,我们还是要最后检查一下交叉编译包是否已经安装成功了.使用下面的指令即可.
xtensa-lx106-elf-gcc -v
  • 当发现有如下的信息输出时,就代表着我们已经安装成功了.


VS Code 编译工程


  • 在编译工程之前我们首先要下载一个Demo工程用于编译. cd到合适的文件夹位置,然后执行下面的指令.
#下载项目
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

rm -rf third_party
  • 在上面的一顿操作之后,我们还需要连接两个库.分别是libc.alibhal.a,指令如下所示.
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
  • 上面的操作完成之后,我们就通过VSCode 打开 我们下载好的工程了.在终端窗口执行下面的命令即可编译我们的Demo工程了.(其实是make clean 是清除编译文件,make COMPILE=gcc是进行编译)
make clean;make COMPILE=gcc
  • 编译完成之后控制台打印信息如下所示.


烧录Flash


esp8266 NodeMCU 一共有两种形式的USB转串口芯片,一种是价格比较便宜的CH340,另外一种是CP2102,这时候我们直接用安卓数据线连接电脑,是读不出来的,所以我们需要安装着两种芯片的驱动,安装哪一个,大家看自己的板子上芯片型号即可.如下图所示就是一个CP2012的芯片的板子.

CH340 和 CP2012驱动下载传送门 提取码: rqa1

烧录之前我们需要看一个图表,这个图表就是用来说明我们需要烧录的地址.由于我们的NodeMCU是4Mb的内存,所以我们要按照图上的所示内存地址进行对应的烧录.这个图表可以在安信可官网的文档中找到.

具体可参照如何为 ESP 系列模组烧录固件



这里提供两种烧录方案,一种是使用Python,另外一种是使用图形化工具.

  • Python形式烧录

首先安装Python3 看清是Python3,安装过Python 3 的童鞋就可以跳过直接安装pip了.操作如下所示.由于已经安装过了,所以这里就不再截图说明了.

brew install python3

紧接着就是安装pip,pip是Python的包管理工具,类似于Java的Maven,iOS的CocoaPods等等.

#准备安装包
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

如果想要卸载 pip .使用下面的命令即可.

python -m pip uninstall pip

然后安装esptool,这个是烧录程序.

#安装esptool
pip3 install esptool

安装完成,使用安卓数据线连接NodeMCU开发板,然后使用下面命令查看对应的接口.

#查找usb serial 设备:
ls /dev/tty.wchusbserial*

可以查找到如下的串口信息.

这样我们整体的准备工作就完成了.我们接下来就开始进行烧录.前期怕其他文件损坏,所以是使用四个文件一起烧录,后期可以只烧录两个文件即可.注意需要根据上面来修改对应的串口信息.

# 只刷2个文件
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

# 刷完整文件
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 0x3FB000 bin/blank.bin 0x3FC000 bin/esp_init_data_default_v08.bin 0x3FE000 bin/blank.bin


  • 图形化工具烧录
  • 工程编译完成之后,我们就要去把编译好的文件烧录到Flash中去.这时候我们可以去App Store 下载 ESP8266 Flash 工具. ESP8266 Flash下载传送门
  • 下载安装完成之后 打开ESP8266 Flash,首先我们需要选择 ESP8266 SDK, 然后会发现需要esptool.py这个文件路径.这里可以从 esptool 这个github中获取到工程,然后选择的时候指向文件夹即可.如下图所示.
  • 这时候我们选择合适的烧录文件然后点击 Flash Firemware 按钮进行烧录,发现一个esptool.py导入操作.如下图所示.
  • 这是因为可能Python版本过低的问题导致的,所以我们需要下载3.0以上的Python版本.


总结


整体上来说弄了一遍之后还是挺简单的,如果有任何问题欢迎在评论区评论或者私信我,谢谢大家.最后要附上转载博客的地址啦.

MacOS 下搭建esp8266交叉编译环境

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354

推荐阅读更多精彩内容