现在物联网如火如荼,很多老产业都在转型,投入到物联网平台的热潮中。目前高端市场可能会用RT5350或则MT7620路由芯片走网络,低端市场乐鑫的ESP8266就比较火了,价格10块左右。开发也很简单,官方直接有现成的AT指令。本文主要讲解NONRTOS固件开发,为原创博客,希望转载的小伙伴注明出处哦~
概述:
一、初步了解ESP8266
8266为32位的SOC芯片,采用的是MIPS构架。芯片不带ROM,所以一般都通过SPI外挂FLASH作为程序储存器。内部留有50KRAM给用户开发使用(官方是这么说的)。官方提供了两款SDK给用户开发,NONRTOS和FREERTOS。
乐鑫其实是国外的一家公司。最新的资料包我就打包上传了,小伙伴们可以去下载
ESP8266 最新固件包
二、AT指令的开发
这个适用于开发时间比较短的使用,相当于把8266当作外挂的透传模块使用,收发数据都通过串口执行。开发者需要外挂一个至少有一路串口的MCU,根据AT指令文档就能走网络了。8266出厂官方都会预先烧录AT固件的,这个没太多的东西,我就不细讲了。
二、NONRTOS固件开发
NONRTOS其实就是类似裸跑程序了,单线程没有任务的调度。乐鑫把网络层的代码都封装成库了,对我们不透明的。实际开发中只需要调用API的接口就可以了,我们可以不需要关心底层的网络。ESP8266片子预留了6个左右的IO供二次开发使用,这个足够我们对于一些小型的设备只需用一颗片子就可以跑了,极大的降低了成本与开发进度。
2.1.文件夹的名称介绍
先下载8266的SDK,我把最新的SDK上次了,小伙伴就到这里下载把。
打开SDK文件夹,我先讲下文件目录与代码结构吧,先上图。
app:用于存放用户应用代码,包括程序的主入口user_main.c
bin: 默认存放编译成功后的bin文件
driver_lib:存放外围的.c驱动与.h文件,包括uart、I2C、SPI等等
examples:提供IOT_Demo、AT、smart_config等应用示例
include:
该目录下存放的是应用程序的相关头文件
ld:编译时使用的连接文件,一般无需修改。(脚本会自动配置)
lib:存放ESP8266SDK的库文件
tools:工具目录
还有比较重要的文件就是Makefile,这个是规定编译与连接规则的。这个我们不需要修改,但是需要知道有这个东西。需要深入的自己百度makefile吧。
由于官方并没有这块的IDE,目前编译可以采用cygwin或者官方的虚拟机跑得一个交叉编译器。我推荐采用cygwin,直接通过输入命令行就可以编译了。
目前网上已经有比较多的视屏教程了,推荐边看视屏边学习,可以比较快上手。