ESP8266_03 SDK与Makefile的基本用法

有人问用什么板子合适,还有的直接问我买。这个,建议大家买个二三十的模块就行,可以是NodeMcu,也可以是安信可的模块加一个底板,没必要买太贵的。

还有的人手里拿着某某物联网平台的板子,问能不能用,只要是基于ESP8266的,都可以,但是你要找到板子配套的原理图。

好了,下面是正文。

先说一下什么是SDK?

定义(转自网络):一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

再看一下乐鑫内部对SDK的描述:ESP8266 Software Development Kit (SDK) 是乐鑫为开发者提供的物联网 (IoT) 应用开发平台,包括基础平台以及上层应⽤开发示例,如智能灯、智能开关等。 SDK 的基础平台按照是否基于操作系统可分为:non-OS 和 RTOS 两种版本。

简单来说,这是一个已经搭建好的工程框架,包含完整的源文件和头文件。同时,提供了一些例程供用户参考。

那么,SDK在哪里下载?

找厂家!芯片厂家是乐鑫,所以去乐鑫官网找。这里为了节省时间,我直接放上链接:

https://www.espressif.com/en/support/download/sdks-demos

注:本文写于2019年7月12日星期五,当前的ESP8266 NONOS SDK已经更新到了3.0.0 后续的教程也主要基于NONOS的版本。

下载解压后,可以看到下面几个文件:

接下来,需要进行一些操作,然后才能导入到AiThinker_IDE里。其实下面的操作主要参考安信可的网址:https://wiki.ai-thinker.com/ai_ide_use

但由于安信可的教程比较旧,所以这里做了一些调整。

1. 将 sdk 目录下的 driver_lib 重命名为 app

2. 拷贝 \examples\IoT_Demo 下的所有文件到刚才的 app 目录(提示覆盖则确认),完成后目录结构如下:

3. 将ESP8266_NONOS_SDK/third_party 这个文件夹删掉。

接下来,我们启动AiThinker_IDE,将项目导入

导入项目

1. 选择 File→Import

ai_esp_eclipse_import0

2. 点开C/C++分支,并选中Existing Code as Makefile Project

ai_esp_eclipse_import1

3. 去除C++支持,选中 Cygwin GCC

点击Browser,选中ESP8266_NONOS_SDK-3.0.0所在的目录

4. 点击 Finish 完成ESP8266_NONOS_SDK-release-v3.0.0_01的导入

如下图:

编译项目

鼠标选中项目名称,点击右键出现菜单:

ai_esp_eclipse_import10

Build Project :编译项目

Clean Project:清理项目

选中编译项目,控制台输出如下图即编译成功

7

真的能编译成功? 那是不可能的。

安信可官网说的是能编译成功,但针对的可能是比较老的SDK版本,如果你使用3.0版本的SDK,肯定是会报错的。报错如下:

打开根目录下的makefile文件,找到第29行,把等号后面的值改掉。

SDK3.0里面写的是0,改成多少?根据你模块的FLASH大小来修改:如果是8MBIT,改为2;如果是16MBIT,改为3;如果是32MBIT,改为4.

这个关系不用背下来,makefile文件向下翻到第82行,你会看到它有一个说明:

它这里写的值的单位是BYTE。改完之后,再次编译,你会发现编译成功了:

接下来,思考另一个问题:为什么有人生成的bin文件是这样的?

其实,安信可官网曾经说过。可生成两种形式的bin文件,一种是不支持在线升级的,一种是支持在线升级的。刚才这个图,就是支持在线升级的。那么,如何生成这种bin文件?

打开根目录下的makefile文件,找到第25、26行。当第25行为new的时候,如果第26行是1,那么生成的是支持在线升级的,如果是0,那就不支持在线升级。

除此之处,当我们使用一些特殊功能的源文件的时候,也需要在Makefile里添加相应的库文件。所以,这里建议大家,多看几遍Makefile文件,不需要完全看懂,但要知道基本用法。

至此,关于ESP8266的环境搭建、程序下载、固件配置,基本用法都说了一下。后面,逐步开始敲代码的过程。

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据