esp8266 esp32 docker 开发环境搭建

esp-build

中文介绍

乐鑫WiFi(蓝牙)芯片程序构建环境

  • 支持芯片:
    • ESP8266 (tested)
    • ESP8285
    • ESP31B
    • ESP32 (tested)
  • 环境中包含的工具
    • xtensa-lx106-elf toolchain
    • xtensa-esp108-elf toolchain
    • xtensa-esp32-elf toolchain
    • esptool-ck
    • python and pyserial

用法:

(一) 安装docker

按照这个步骤进行安装--> https://docs.docker.com/engine/installation/

举个例子,使用apt工具安装

sudo apt install docker.io

(二) 将集成了开发环境的docker镜像拉取到本地

docker pull neucrack/esp-build

或者

docker pull daocloud.io/neucrack/esp-build
  • 第一个国内拉去的过程可能比较慢或者出错,请耐心尝试,可以使用国内的daocloud镜像加速服务或者直接使用第二个命令

(三) 运行容器

基本操作

  • 使用docker run命令运行,配合合适的参数即可开始使用咯,可以使用man docker-run进行查看,最常用的几个参数如下:
  • -v : 挂载宿主机文件目录到容器文件目录
  • -i : 交互模式
  • -t : 使用终端进行交互
  • --rm : 容器结束后删除容器及其产生的相关文件
  • --name : 为容器取名,如果没有这个参数,docker会自动生成一个名字
  • --device : 挂载宿主机设备到容器中 参数格式:宿主机设备名:容器设备名

eg:/dev/ttyUSB1:/dev/ttyUSB0 即将宿主机的串口1映射到容器的串口0

  • -e : 运行容器时添加环境变量到容器中

  • 退出容器:

exit
  • 如果没有使用--rm参数,在退出容器后想继续进入容器
docker start 容器名(或者ID号)
docker attach 容器名(或者ID号)

若不知道旧的容器名,使用docker ps -a 查看

针对模块具体举例:

1. 运行开发esp8266的容器

使用SDK:

docker run -ti --name esp8266-builder -e SDK_BASE=/build/esp8266/ESP_RTOS_SDK/ --device /dev/ttyUSB0:/dev/ttyUSB0 -v /data/esp:/build neucrack/esp-build /bin/bash
  • -name指定运行容器的名字
  • -e添加环境变量(具体的环境变量由SDK决定,阅读SDK的使用说明即可,将SDK下载或者克隆到相应文件夹下,比如这里/build/esp8266/ESP_RTOS_SDK/),如果是使用nonos版本的SDK,可以不设置环境变量
  • --device将宿主机的/dev/ttyUSB0设备挂载到容器/dev/ttyUSB0(这里是USB转串口设备,具体的设备名可以使用 ls /dev/*|grep ttyUSBdmesg|grep ttyUSBdmesg|grep ttyS 查看
    )
  • -v 将/data/esp文件夹挂载到容器的/build文件夹中,即宿主机这个文件夹和容器的build文件夹实现了同步和共享
2. 运行开发esp32的容器

使用esp-idf:

将官方的库克隆到本地

cd /data/esp/esp32
git clone --recursive https://github.com/espressif/esp-idf.git
  • 注意文件夹路径不能有空格
  • 注意使用--recursive将子模块一同引进来
    如果没有使用,可以使用如下命令进行更新
cd /data/esp/esp32/esp-idf
git submodule update --init
docker run -ti --name esp32-builder -e IDF_PATH=/build/esp32/esp-idf --device /dev/ttyUSB0:/dev/ttyUSB0 -v /data/esp:/build neucrack/esp-build /bin/bash
  • -name指定运行容器的名字
  • -e添加环境变量(设置IDF_PATH的地址为/data/esp/esp32/esp-idf,所以将)
  • --device将宿主机的/dev/ttyUSB0设备挂载到容器/dev/ttyUSB0(这里是USB转串口设备,具体的设备名可以使用 ls /dev/*|grep ttyUSBdmesg|grep ttyUSBdmesg|grep ttyS 查看
    )
  • -v 将/data/esp文件夹挂载到容器的/build文件夹中,即宿主机这个文件夹和容器的build文件夹实现了同步和共享
3. 运行同时可以开发多个芯片的容器

在前两者的基础上改改环境变量和文件夹映射就可以

(四) 编写 下载 应用程序

在已经运行了并进入容器之后(所以下面的命令都在容器中执行,不是在宿主机中哦),根据SDK的使用说明使用

比如:

esp8266 RTOS SDK

开始可以使用example/下的例子直接测试,使用方法见具体例子下的readme,注意环境变量的要求,执行gen_misc.sh脚本编译程序,生成二进制文件*.bin.
然后使用下载工具下载到模块,
eg:

esptool -cc esp8266 -cp /dev/ttyUSB0 -cd nodemcu -ca 0x00000 -cf 00000.bin -ca 0x40000 -cf 40000.bin
  • 参数使用man esptool进行查看。二进制文件文件名及地址参考SDK说明
  • 注意在下载的时候串口不能被占用哦~(比如串口助手正在使用串口)否则会下载失败滴
  • 注意如果使用nodemcu,下载模式要使用DIO哦
esp32 SDK

根据example/文件夹下的readme内容进行操作

  • 进入具体的example目录,比如hello-world/目录下,然后make menuconfig设置参数
  • 然后使用make flash进行编译丶链接丶烧写

注意在下载的时候串口不能被占用哦~(比如串口助手正在使用串口)否则会下载失败滴

  • 下载完成之后按复位键(EN脚失能后使能)即可运行

  • 在宿主机或者容器内打开串口助手查看(容器内默认没有安装串口助手哦),有输出信息。串口助手可以使用minicom,也可以在宿主机上使用带GUI的软件

    minicom安装使用

    安装

sudo apt-get install minicom

设置(*设置好了记得保存设置*)
```bash

sudo minicom -s

运行
```bash

sudo minicom

参考

来自vowstar/esp8266,

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

推荐阅读更多精彩内容