ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK以及软件环境搭建

授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。

共同学习成长QQ群 622368884,不喜勿加,里面有一大群志同道合的探路人

快速导航
单片机菜鸟的博客快速索引(快速找到你要的)

如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。

1.前言

ESP8266EX芯片由espressif乐鑫公司开发,提供了一套高度集成的Wi-Fi SOC解决方案,其低功耗、紧凑设计和高稳定性可以满足用户的需求。

ai-thinker 安信可公司基于 ESP8266EX芯片去设计了一系列ESP8266 模组(基本上我们现在说的ESP8266多是指 ESP8266模组)。这些模组包括:
ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK以及软件环境搭建
具体可以参考 安信可ESP8266系列模组

而很多其他厂家又会基于 ESP8266系列模组 去设计 ESP8266开发板,其中使用广泛的就是基于 ESP-12F 模组的NodeMcu开发板
ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK以及软件环境搭建
这下子,初学者应该可以了解芯片-模组-开发板的关系了。

  • 乐鑫开发芯片
  • 安信可开发模组
  • 其他厂家开发开发板

为了学习ESP8266编程,我们首选的开发板就是 NodeMcu Esp8266开发板。

而软件开发方式则分为几种:

  • AT指令
    需要烧录AT固件,借助另外一款MCU进行控制,有点浪费ESP8266的天赋,后面博主专门写一个帖子专门介绍一下

  • Lua开发
    据我了解不是很多人会去考虑的开发方式,有点杀马特的感觉,除非你之前已经懂Lua语言,不然不建议。

  • Arduino 开发
    非常简单愉快的一种开发方式,非常适合具有Arduino基础的同学,博主也推出了一个专栏专门讲解 ESP8266 Arduino教程,极度推荐。

  • SDK开发
    这也是官方极度推荐的开发方式,也是博主本系列重点关注的内容。

  • MicroPython开发
    适合有Python开发基础的同学,不过更建议在ESP32上使用此种开发方式。

总体来说,我更推荐用Arduino开发或者SDK开发。接下来,就开始初步认识一下SDK开发流程。

2. SDK概述

2.1 SDK使用流程

ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK以及软件环境搭建
包括:

  • ESP8266 HDK —— 硬件开发工具
  • ESP8266 SDK —— 软件开发工具包
  • ESP8266 FW —— 固件
  • ESP8266 工具集 —— 软件开发工具、固件下载工具和串口调试工具等

2.2 ESP8266 HDK —— 硬件开发工具

ESP8266 Hardware Development Kit(HDK)包括芯片 ESP8266EX、ESP8266模组以及 ESP8266开发板(比如NodeMcu)等硬件设备。用户使用烧录工具下载编译好的固件到硬件设备上。

2.3 ESP8266 SDK —— 软件开发工具包

ESP8266 Software Development Kit(SDK)是乐鑫为开发者提供的物联网(IOT)应用开发平台,包括基础平台以及上层应用开发示例等。

SDK的基础平台按照是否基于操作系统可分为:Non-OSRTOS 两个版本。

2.3.1 Non-OS SDK

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

2.3.2 RTOS SDK

  • RTOS SDK基于FreeRTOS,引入OS多任务处理机制。
  • 请读者自行去学习,不是我们目前的重点。

2.4 ESP8266 FW

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

文件名字 说明 Non-FOTA是否需要 FOTA是否需要 备注
esp_init_data_default.bin 初始化射频参数,在 SDK 根⽬录中提供。
blank.bin 初始化系统参数,在 SDK 根⽬录中提供。
eagle.flash.bin 主程序,存放运行系统必要的固件。
eagle.irom0.text.bin 主程序,存放用户编写程序的固件。
boot.bin Bootloader,在 SDK 根目录中提供。
user1.bin 主程序,编译代码生成。 初次使用
user2.bin 主程序,编译代码生成。 升级使用

==读者需要注意区分 Non-FOTA 和 FOTA 分别需要烧录哪些文件。==我们这里重点关注 Non-FOTA。

2.5 ESP8266 工具集

绝大部分的工具都在 开发工具清单 下载。

我们主要用到的工具包括:

  • 开发环境
    一种方式是通过Linux操作系统,这种我们不讲;
    一种方式是通过安装 安信可一体化开发环境,可以在Window操作系统上使用,也是我们极度推荐;

  • 固件下载工具
    ESP8266 DOWNLOAD TOOL 工具是由乐鑫官方开发的固件下载工具,用户可根据实际的编译方式和 Flash 的容量,将多个 BIN 文件一键下载到 ESP8266 母板(开发板或者模
    组)的 SPI Flash 中。

  • 串口调试工具
    串口调试工具可以通过标准 RS-232 端口直接与 ESP8266 建立通信。对于不带有物理理串口的 PC,可以使用 USB 转串口模块来虚拟出一个串口设备。用户可以直接在串口终端输入命令和实时查看相关打印信息。

以上开发工具我都上传了一份到我个人QQ群的群文件里。
ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK以及软件环境搭建
请读者自行下载以上所有工具。

3. Non-OS SDK

4. 软件环境搭建