基于ESP8266 SDK开发基础
admin 于 2018年11月10日 发表在 嵌入式开发笔记

本文编译环境采用ubuntu16.04,一般来说,适用于所有版本Linux,可选择在虚拟机/实体主机中编译安装;更新固件是在win7系统下使用官方工具完成。

一.  编译环境

1. ESP8266编译工具

笔者已将工具链分享到百度网盘,可直接下载。

2. 解压工具链到/opt目录

tar -jxvf xtensa-lx106-elf.tar.bz2 -C /opt

3. 配置编译环境

(1)添加环境变量

sudo chmod -R 777 /opt/xtensa-*
sudo vim /etc/bash.bashrc

(2)最后一行添加:

export PATH=$PATH:/opt/xtensa-lx106-elf/bin

(3)重启系统或使用如下命令使配置生效

source /etc/bash.bashrc

4. 打开终端,查看编译链是否安装成功

xtensa-lx106-elf-gcc -v

二. SDK编译演示

1.  ESP8266 SDK包分RTOS和Non-OS版本,具体介绍请查看官方文档

2.  不同版本SDK下载,本文以ESP8266 NONOS SDK V2.2.1为例,解压文件如下:

bin:编译生成的 BIN文件,可直接下载到Flash中。
documents: SDK 相关的文档或链接。
driver_lib:外设驱动的库文件,如: UART、I2C 和 GPIO 等。
examples:可供用户二次开发的示例代码,如 IoT Demo 等。
include: SDK 自带头文件,包含了用户可使用的相关 API 函数及其他宏定义,用户需修改。
ld:链接时所需的脚本文件,若无特殊需求,用户无需修改。
lib:SDK 提供的库文件。
third_party:乐鑫开放源代码的第三方库,当前包含 lwIP、mbedTLS等。
tools:编译 BIN 文件所需的工具,用户无需修改。

3.  进入 ./ESP8266_NONOS_SDK-2.2.1/examples 目录下,可以看到官方提供的众多例程,如下:

4.  以at例程作为编译演示

(1)复制 ./ESP8266_NONOS_SDK-2.2.1/examples 下的 at例程到和examples同一级目录下

(2)打开linux终端,切换到at文件夹目录下,输入" xtensa-lx106-elf-gcc -v "确保有信息输出,否则请参考步骤一来安装/生效编译工具。

(3)执行gen_misc.sh脚本,生成和自己硬件配置匹配的bin镜像。

bash ./gen_misc.sh

(4)关于此处的编译选型,可参考目录下的 !!!readme!!!.txt 文件。

<1> BOOT
Possible value: none/old/new
  none: no need boot
  old: use boot_v1.1
  new: use boot_v1.2+
Default value: none

**选择1**

<2> SPI_SPEED
Possible value: 20/26.7/40/80
Default value: 40

**保持默认**

<3> SPI_MODE
Possible value: QIO/QOUT/DIO/DOUT
Default value: QIO

**选择2**

<4> SPI_SIZE
Possible value: 0/2/3/4/5/6
Default value: 0

**选择2**

注意:
<3><4>选项和SPI Flash连接方式及容量一定要匹配,本例程使用8Mbit Flash,连接方式为DIO。

5. 编译成功后,输出信息如下:

根据打印信息,可以知道生成的新的bin,位于../bin/upgrade/目录,将编译成功的bin文件copy出来,直接下载即可。

三. 镜像烧写更新

1. 烧写工具下载

2. 从下载的ESP8266_NONOS_SDK-2.2.1包中,提取 boot_v1.7.binesp_init_data_default_v08.binblank.bin,再添加上编译所得的 user1.1024.new.2.bin,共4个文件。

3. 尽管下载工具有不同版本,但无论选择哪个版本,都必须确保配置正确,如下:

(1)镜像烧写地址:

(2)SPI选项配置:

4. 配置完成后,使用串口直接下载镜像即可。

注意:

下载时,需要先将GPIO0接GND使其进入UART Download模式;下载完成后,将此管脚拉到VCC,才能正常启动。类似STM32的BOOT0。

到此,ESP8266编译环境搭建、SDK编译方法以及更新固件方法介绍完。

注意:本站所有文章除特别说明外,均为原创,转载请务必以超链接方式并注明作者出处。 标签:ESP8266,MCU探讨