一、搭建环境

1.1 资料准备

《ESP8266 SDK 入门指南》

链接:https://www.espressif.com/zh-hans/support/download/overview
<https://www.espressif.com/zh-hans/support/download/overview>



 

1.2 安装安信可ESP8266_IDE(可选)

链接:http://wiki.ai-thinker.com/ai_ide_install
<http://wiki.ai-thinker.com/ai_ide_install>

 

1.3 安装VirtualBox

链接:https://www.virtualbox.org/wiki/Downloads
<https://www.virtualbox.org/wiki/Downloads>

 

1.4 安装ESP8266_lubuntu镜像文件

链接:http://downloads.espressif.com/FB/ESP8266_GCC.zip
<http://downloads.espressif.com/FB/ESP8266_GCC.zip>

1.在 VirtualBox 主菜单中选择 File > Import Appliance…

2.选择需要导入的镜像文件,如: C: \ESP8266_lubuntu_20141021.ova ,单击 Next。

3.单击 Import 确认导入。

Lubuntu用户:ESP8266 密码:espressif

 

 

1.5 设置共享文件夹

1.新建 D:\VM\share 文件夹

2.在主菜单中选择 Machine > Settings > Shared Folders…

3.在 Machine Folders 中选择虚拟机的共享文件夹。如: D:\VM\share。

4.执行挂载 shell 脚本 ./mount.sh。

 

 

二、编译

2.1 下载ESP8266 SDK

ESP8266 Software Development Kit (SDK) 是乐鑫为开发者提供的物联网 (IoT) 应用开发平
台,包括基础平台以及上层应用开发示例,如智能灯、智能开关等。SDK 的基础平台按照是否基于操作系统可分为:Non-OS 和 RTOS 两种版本。

 

链接:https://www.espressif.com/zh-hans/support/download/sdks-demos
<https://www.espressif.com/zh-hans/support/download/sdks-demos>

 

2.1.1 Non-OS SDK

Non-OS SDK 是不基于操作系统的 SDK,提供 IOT_Demo 和 AT 的编译。 Non-OS SDK 主要使用 定时器 和 回调函数
的方式实现各个功能事件的嵌套,达到特定条件下触发特定功能函数的目的。 Non-OS SDK 使用espconn 接口实现网络操作,用户需要按照 espconn
接口的使用规则进行软件开发。

 



• bin:编译生成的 BIN 文件,可直接下载到 Flash 中。

• documents: SDK 相关的文档或链接。

• driver_lib:外设驱动的库文件,如: UART、 I2C 和 GPIO 等。

• examples:可供用户二次开发的示例代码,如 IoT Demo 等。

• include: SDK 自带头文件,包含了用户可使用的相关 API 函数及其他宏定义,用户无需修改。

• ld:链接时所需的脚本文件,若无特殊需求,用户无需修改。

• lib: SDK 提供的库文件。

• tools:编译 BIN 文件所需的工具,用户无需修改。

 

 

2.1.2 RTOS SDK

RTOS SDK 基于 FreeRTOS,在 Github 上开源。

• RTOS 版本 SDK 使用 FreeRTOS 系统,引入 OS 多任务处理 的机制,用户可以使用 FreeRTOS
的标准接口实现资源管理、循环操作、任务内延时、任务间信息传递和 同步等面向任务流程的设计方式。具体接口使用方法参考 FreeRTOS 官方网站的使用说明或者
USING THE FreeRTOS REAL TIME KERNEL—A Practical Guide 介绍。

 

• RTOS 版本 SDK 的网络操作接口是标准 lwIP API,同时提供了 BSD Socket API 接口的封装实现,用户可以直接按照 Socket
API 的使用方式来开发软件应用,也可以直接编译运行其他平台的标准 Socket 应用,有效降低平台切换的学习成本。

 

• RTOS 版本 SDK 引入了 cJSON 库,使用该库函数可以更加方便的实现对 JSON 数据包的解析。

 

• RTOS 版本兼容 non-OS SDK 中的 Wi-Fi 接口、 SmartConfig 接口、 Sniffer 相关接口、系统接口、定时器接口、
FOTA 接口和外围驱动接口,不支持 AT 实现。

 



• bin:编译生成的 BIN文件,可直接下载到 Flash 中。

• documents: SDK 相关的文档或链接。

• driver_lib:乐鑫官方提供的驱动示例代码。

• examples:可供用户二次开发的示例代码。

    - openssl_demo:乐鑫官方提供的 OpenSSL 接口功能示例代码。

    - project_template:乐鑫官方提供的工程模板示例代码。

    - smart_config:乐鑫官方提供的 SmartConfig 功能示例代码。

    - spiffs_test:乐鑫官方提供的 SPIFFS 文件系统功能示例代码。

    - websocket_demo:乐鑫官方提供的 WebSocket 功能示例代码。

• include: SDK 自带头文件,包含了用户可使用的相关 API 函数及其他宏定义,用户无需修改。

• ld:链接时所需的脚本文件,如无特殊需求,用户无需修改。

• lib: SDK 提供的库文件。

• third_party:乐鑫开放源代码的第三方库,当前包含 freeRTOS、 JSON、 lwIP, mbedTLS、 noPoll、
OpenSSL、 SPIFFS 和 SSL。

• tools:编译 BIN 文件所需的工具,用户无需修改。

 

 

2.2 编译SDK

1. 在终端切换到 /Share/ESP8266_NONOS_SDK/IoT_Demo 目录。
cd /home/esp8266/Share/ESP8266_NONOS_SDK/IoT_Demo ./gen_misc.sh
系统显示如下提示信息。
gen_misc.sh version 20150511 Please follow below steps(1-5) to generate
specific bin(s):
 

2. 如图所示,按系统提示根据实际情况选择相应选项。



    1) 第一个是选择boot版本,一般选择“1”,boot_v1.2+就是1.2版本以上

    2) 第二个是选择生成的bin文件,一般选择“1”,user1.bin

    3) 第三个是选择SPI的读写速度,一般选择“2”,40MHz

    4) 第四个是选择SPI的模式,一般选择“0”,QIO



    5) 第五个是选择SPI的内存大小,根据芯片选择。

 

3. 编译成功后系统显示生成的 BIN 文件及其下载到 Flash 中的地址,如下图所示。

 



说明: 用户可以进入 /home/esp8266/Share/ESP8266_NONOS_SDK/bin 目录检查生成的 BIN 文件。

 

 

2.3 使用安信可ESP_IDE编译SDK

 

三、烧写

3.1 下载烧写工具

ESPFlashDownloadTool_v3.6.4.exe

链接:https://www.espressif.com/zh-hans/support/download/other-tools
<https://www.espressif.com/zh-hans/support/download/other-tools>

 

3.2 烧写步骤



3.2.1 根据需求选择固件

ESP8266 Firmware (FW) 是一些可直接下载到 ESP8266 HDK 中的 BIN 文件,用户可以选择下载 Firmware
Over-The-Air(FOTA,支持云端升级)和 non-FOTA(不支持云端升级) 的 BIN 文件。

 





Flash 布局:



 

3.2.2 为固件填写下载地址

Non-FOTA 固件的下载地址,如下图所示



FOTA 固件的下载地址,如下图所示



注意:建议按照烧录地址从低到高按顺序排列烧录。

           如需烧录 8 MB 或者 16 MB 的大容量 Flash,请使用工具 esptool。

           链接:https://github.com/espressif/esptool
<https://github.com/espressif/esptool>

           支持 FOTA 的固件无需下载 user2.bin,用户可以从云端服务器升级固件。

 

 

3.2.3 选择FLASH SIZE



烧写时,右边的 DETECTED INFO 会显示芯片实际的信息。



根据芯片实际的内存大小来选择上面的 FLASH SIZE。

说明:32Mbit 等于 4M。

 

3.2.4 开发板(或模组)切换烧写模式

ESP-LAUNCHER:



 

ESP-WROOM-02:



 

• 由 Leung <https://blog.csdn.net/qq_36347513> 写于 2018 年 9 月 14 日

• 参考:《ESP8266 SDK 入门指南》

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信