ESP8266SDK开发⼊门
背景
很早就听⼈说ESP8266提供SDK可以⾃⼰去折腾,⼀直想搞着来玩,奈何最近才有时间,我对RTOS了解⼀点,ESP8266⾥⾯集成的是Freertos,想搞很久了,之后会写个系列博客。
正⽂
下载源码安装IDE环境
我是怕折腾,纯粹⾃⼰玩,就想着⽅便在windows下参考安信可官⽅的教程来搭建的开发环境、下载的源码。
sdk包含了IDE的安装,IDE使⽤、源码编译和固件下载这⼀系列流程,跟着⾛就对了。
其中在下载⾃⼰编译的SDK产⽣的BIN之后,不要跟下载官⽅给的固件⼀样通过串⼝⽤AT指令去测试程序是不是正确。。
提供的SDK⾥⾯没有⽀持AT,可能是因为加了AT版本的SDK本来就很⼤了,怕出问题,然后提供给我们
的SDK就没有⽀持AT。其实也有另⼀种可能,如果SDK仍然⽀持AT,⽐如你在SDK中设置了AP模式,然后你通过串⼝AT设置为STA模式了,这样SDK程序就出错了。。如果代码都是⾃⼰搞可能没事,多⼈协作的时候可能就会出问题。
SDK⽬录结构
其实这个ESP8266的SDK将很多代码都是以库的形式提供的,就⽐如下⾯讲的user_init,是根本追不到调⽤的地⽅的,只能基于他开放的接⼝来。
app      ##主要是提供给开发者的⼀个接⼝user_init,开发者修改SDK都是基于这个接⼝
documents        ##主要是SDK开发相关的⼀些⽂档
extra_include      ##额外包含的⼀些头⽂件
ld          ##链接脚本
LICENSE      ##⼀些证书
README.md      ##说明⽂档
tools      ##编译的⼯具
bin        ##编译后产⽣的BIN⽂件就存放在这⾥
examples      ##例⼦⼯程,这个⾥⾯包含了很多例⼦代码,值得好好分析
include            ##包含的各种头⽂件
Makefile        ##Makefile
third_party        ##第三⽅开源代码
我没有看过这个SDK的很多源码,凭借对rtos的⼀点了解,我⾃⼰理解这个ESP8266 RTOS SDK开发⽆外乎
SDK开发思路
由于SDK开放的接⼝⾮常之少,通过user_init这个⽤户接⼝能做的事情其实也⾮常有限。下⾯介绍⼏种ESP8266 RTOS SDK系统开发思路,ESP8266硬件接⼝还没来得及看,后续补充。
通过user_init接⼝,利⽤freertos的定时器接⼝,注册⼀个定时回调函数,将⾃⼰想做的⼯作放到定时
器的回调函数中去执⾏。
通过user_init接⼝,利⽤任务创建接⼝去创建⼀个新的任务,将⾃⼰想做的⼯作放到⾃⼰创建的任务中。
这两种⽅式各有优缺点,⾸先利⽤定时器优点就是占⽤空间少相对于创建⼀个任务(不需要任务栈 任务TCB等),缺点是会影响整个系统的实时性,因为定时器的回调函数执⾏是关了部分中断的,如果这个任务过⼤,将会严重影响系统性能。新建⼀个任务的优缺点其实跟定时器正好相反。
下⾯挂两个例⼦代码:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。