最近开始接触物联网的开发,WIFI模块的选择就是目前最火的乐鑫的ESP8266。
了解了下芯片的开发环境和编程语言。使用C语言的话,可以选择在linux下基于gcc工具链的开发环境。
还可以使用安信可的eclipse一体环境。为了方便在windows上开发,就选择了安信可的eclipse开发环境。
截止到目前为止乐鑫已经出了RTOS_SDK3.0的版本,不过对这个版本不大了解,等把2.0的熟悉了再去看3.0的。
下载地址为:https://www.espressif.com/zh-hans/support/download/sdks-demos
选择的版本为:ESP8266 RTOS SDK V2.0.0
我下载的后的就是这个东西
找一个合适的位置解压即可,以后我们就在这个合适的位置做开发了。
比如E:\mywork\ESP8266_Project\ESP8266_RTOS_SDK-2.0.0
看过半颗心脏的博客说RTOS_SDK2.0 版本的MQTT的库有bug,关于bug的修复可以参考他的博客。
博客地址为:
Esp8266 进阶之路26【高级篇】RTOS移植分析 MQTT 实现过程,实现移植 MQTT协议在 esp8266 rtos实时系 统,可断线重连。(附带Demo)
网盘地址为:https://pan.baidu.com/s/1skRvR1j#list/path=%2F
选择最新版本即可: ESP32 GCC V5.2 OpenOCD 支持XP V0.5
至于版本的区别我了解的不多,不过我开始就选了最新功能最多的版本,虽然有些功能我还用不上。
运行 最新版本ESP32 GCC v5.2 OpenOCD 支持XP V0.5\AiThinkerIDE_V0.5_Setup.exe 安装到非系统盘。
解压完成以后,进入到安装目录 运行configTool.exe。
选择 Dafault并Save,然后AiThinker_IDE.exe就可以打开了。 打开之后是这样的。
IDE 自带了RTOS 和NONOS的SDK和例程。并且NONOS_SDK的例程还把SDK和APP进行了分离,APP和SDK分为两个project,这样多个APP就共享一个SDK了。由于对Makefile了解不多,再说只想使用RTOS 的SDK,就不去分析这个方法是怎么实现了。先用自己的笨方法来做吧。
删除所有的project,建议不要删除磁盘上的文件,以后出问题了可以去参考。
选择File->Import 打开如下对话框。
双击Existing Code as Makefile Project 并入下图进行配置
Existing code Location就选择SDK的解压路径即可,Project Name是自动填充的。
Languages就选择C,取消C++。 Toolchain for Indexer Settings 就选择 Cygwin GCC
最后点击Finish。导入完成以后就是这个样子。
3.1 在SDK的目录内将driver_lib复制一份,并重新命名为:APP_HelloWork
并且把driver_lib中的makefile文件重新命名为makefile.bak,这一步是不能忽略的,否者后面会出现编译错误。
此外还需要把third_party目录下的makefile重命名为makefile.bak
3.2 将ESP8266_RTOS_SDK-2.0.0\examples\project_template 目录下的文件全部拷贝到APP_HelloWork目录下,
并全部覆盖。sample_lib可以删除掉。
3.2 修改APP_HelloWork目录下的Makefile文件,文件对比如下。左边是原始的,右边是修改后的。
SDK路径内容,其他的自行修改。
parent_dir:=$(abspath $(shell pwd)/$(lastword $(MAKEFILE_LIST)))
parent_dir:=$(shell dirname $(parent_dir))
parent_dir:=$(shell dirname $(parent_dir))
SDK_PATH= $(parent_dir)
BIN_PATH=$(SDK_PATH)/bin
3.3 修改ESP8266_RTOS_SDK-2.0.0目录下的Makefile文件。修改对比: 右边是修改后的,左边是未修改的。
参考代码:
#BOOT?=none
#APP?=0
#SPI_SPEED?=40
#SPI_MODE?=QIO
#SPI_SIZE_MAP?=0
BOOT?=new
APP?=1
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=2
到此APP project就已经配置完成了。再IDE里面右键刷新下就可以看到了。 首先右键clean project然后再build project就可以编译了。如果如下图所示就表明编译成功了。
将APP_HelloWork拷贝一份,并重新命令为APP_LedTest, 然后把APP_HelloWork中的Makefile重名为makefile.bak
忽略对这个目录进行编译。回到IDE,刷新 clean build 就可以了。
随着项目的增多,我们需要注意下当前编译的项目是不是我们想要的,在编译过程中要观察下编译信息,看看最终生成的文件
是由那个项目编译的,比如APP_LedTest。
从最后的log可以看出,最后离开的目录是APP_LedTest,是我们想要的项目。
搭建好的项目文件:https://download.csdn.net/download/qianxilin/10644489
搭建完整个开发环境后,在使用的过程中发现还是需要对Makefile有一定了解,才能用的很娴熟。
Makefile的学习就看看大神的文章: 跟我一起写 Makefile
整理的PDF文件:http://download.csdn.net/download/xiaoshuai537/10262089
当我们做个几个实现,写了一代码以后,就需要回过头来看看为什么需要修改两个makefile文件。
APP里面的makefile修改是为了项目编译,SDK里面的修改是为了啥?