引言
本人自从2015年3月使用ESP8266以来,发现自己在使用ESP8266的过程中学习到了好多有关嵌入式开发的知识,特此写此系列进行整理。
ESP8266虽然同STM32属于微控制器级别,但其从编译到下载,和keil那种「傻瓜式」环境有天壤之别(芯片不同)——其工程构建所使用的环境是Linux交叉编译环境。同时,ESP8266作为一款Wi-FI芯片,必然提供了基本的Socket接口,所以除了可以学习嵌入式Linux交叉编译环境以外,还可以学习一点网络知识。
总而言之,深入了解ESP8266,可以学习到以下知识:
- 单片机开发:熟悉I/O引脚,IIC、SPI等;
- 网络通信:了解TCP/IP协议栈基础知识,还有一点点HTTP、JSON等知识;
- Linux交叉编译环境:gcc、Makefile、静态链接库的基本知识;
- Wi-Fi协议栈:ESP8266抓取Wi-Fi MAC的方法。
- Python应用:由于构建bin文件用到了Python,甚至还可以学习一些Python的具体应用实例。
下面以ESP8266_NONOS_SDK_v2.0
为例进行资料整理。
github链接:https://github.com/espressif/ESP8266_NONOS_SDK/tree/v2.0.0
本文主要内容
SDK(Software Development Kit,软件开发工具包),广义上是指辅助开发某一类东西的相关文档、范例和工具的集合。
本文先来看看ESP8266 SDK的工作目录结构,以及各个文件夹到底存放了什么东西。
主目录结构
首先我们来看看ESP8266 SDK的目录结构:
│ License
│ Makefile
├─app
├─bin
├─documents
├─driver_lib
├─examples
├─lib
├─include
├─ld
└─tools
-
Makefile
:Makefile文件。 -
app
:应用程序文件夹,ESP8266开发者主要是在这里编写自己的应用代码。 -
bin
:存放编译生成的bin文件,之后可以烧写到芯片。 -
documents
:存放开发文档。 -
driver_lib
:存放外设驱动的库⽂件。官网写好的ESP8266驱动源码库。 -
examples
:存放开发者参考的示例工程。包括AT工程、MQTT工程、smart_config(快速连接)工程等等。 -
lib
:存放有关ESP8266的静态链接库。 -
include
:SDK自带头⽂件,包含了用户户可使用的相关API函数及其他宏定义。 -
ld
:ld文件夹。存放链接时所需的脚本文件。 -
tools
:工具文件夹。存放编译bin⽂件所需的⼯具,Python语言实现。
参考资料
- ESP8266 SDK入门指南:2a-esp8266-sdk_getting_started_guide_cn-v2.8
- ESP8266官方文档下载地址:http://espressif.com/zh-hans/support/download/documents?keys=&field_type_tid%5B%5D=14
打广告时间~下面是本人做ESP8266项目收集的各种示例工程,已经放在Github:https://github.com/AngelLiang/ESP8266-Demos