修改ESP8266_NONOS_SDK-2.2.0固件支持AI-Thinker IDE

http://wiki.ai-thinker.com/ai_ide_use

关于 Problems 报错

注意:Eclipse 只是一个代码编写工具,它并不能读取 makefile 里面的一些配置,甚至它会读取到 cygwin 下同名称的头文件。

针对该现象引起的报错,我们建议用户在使用该 IDE 时,直接将 Problems 栏目关掉,因为该提示并不准确,我们主要关注的信息应该为 Console 栏目下的输出。(第一条 Console 报错最重要!)

示例1:ESP8266 NONOS 使用

准备

我们以esp8266_nonos_sdk-2.2.0.zip为例 (使用乐鑫原厂固件,需要将 driver_lib 和 examples/IoT_Demo 下的文件拷贝到 app目录下 ,后续步骤与下面一致。)

下载后解压到合适的目录下,我们以ESP8266_NONOS_SDK-2.0.0为例:

ESP8266的ESP8266_NONOS_SDK,采用了SDK和工程文件夹分离的方式,所以我们需要手动创建一个 app 目录。

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

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

3. 将ESP8266_NONOS_SDK/third_party/makefile 重命名为 makefile.bak ,以防止编译时报错,虽然不影响编译但是强迫症患者不能忍啊。。。

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

导入项目

1. 选择 File→Import

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

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

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

4. 点击 Finish 完成ESP8266_NONOS_SDK-2.2.0的导入

如下图:

编译项目

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

Build Project :编译项目

Clean Project:清理项目

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

注意:Build Project 前最好先 Clean Project,以防止出错

结束

至此已经完成了ESP8266的编译

接下来的烧写下载部分请跳至如何为 ESP 系列模组烧录固件

若您需要更多示例,请跳转至ESP8266开发SDK示例

示例2:ESP8266_RTOS_SDK 使用

以下内容适用于乐鑫默认方式,您可以直接下载esp8266_rtos_sdk-2.0.0.zip ,该示例工程合并了用户工程和SDK工程,可以直接按照 NONOS 版本步骤导入。8-)

准备

下载后解压到合适的目录下,我们以ESP8266_RTOS_SDK-2.0.0为例:

ESP8266的FreeRTOS SDK,采用了SDK和工程文件夹分离的方式,所以我们需要手动创建一个 app 目录。

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

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

3. 将 ESP8266_RTOS_SDK-2.0.0/third_party/makefile 重命名为 makefile.bak ,以防止编译时报错,虽然不影响编译但是强迫症患者不能忍啊。。。

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

导入项目

1. 选择 File→Import

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

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

点击Browser,选中ESP8266_RTOS_SDK-2.0.0

4. 点击 Finish 完成ESP8266_RTOS_SDK-2.0.0的导入

完成后如下图:

配置项目

因为分离了sdk和project目录

所以编译之前必须先指定一个 SDK_PATH 和 BIN_PATH

修改 ESP8266_RTOS_SDK/app 目录下的 makefile,添加以下内容

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

编译默认项目

鼠标选中 ESP8266_RTOS_SDK-2.0.0,点击右键出现菜单:

Build Project :编译项目

Clean Project:清理项目

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

注意:Build Project 前最好先 Clean Project,以防止出错

编译 Hello World

1. 删除 sample_lib 文件夹

2. 修改 ESP8266_RTOS_SDK-2.0.0/app/makefile,将 makefile 中的 sample_lib 替换为 driver ,将 libsample_lib.a 替换为 libdriver.a

3. 因为 driver/i2c_master.c 编译时会报错,因此需要在该文件内添加一些头文件支持

4. ESP8266 默认打印端口为串口 1,需要进行一些初始化方可使用,我们在 user_main.c 的 user_init() 函数中调用 uart_init_new() 函数

5. 修改 ESP8266_RTOS_SDK-2.0.0/Makefile,使其支持boot模式

6. 再次编译项目,至此可以参考 如何为 ESP 系列模组烧录固件 进行固件的下载

7. 运行结果如下:

示例3:ESP31B_RTOS_SDK 使用

参见 示例2_esp8266_rtos_sdk_使用

示例4:ESP32_IDF 使用

准备

首先,打开 cygwin.bat

cygwin.bat

执行下列指令以使用 git 下载esp-idf 和 esp-idf-template

cd /cygdrive/d/ESP32 (进入你的工程目录)
git clone --recursive https://github.com/espressif/esp-idf.git (必须添加--recursive 属性,否则无法全部拉取所有模块)
cd esp-idf
git clone https://github.com/espressif/esp-idf-template app (将 esp-idf-template clone到 esp-idf/app 下)
git submodule update --init (强制拉取所有子模块,防止上一步骤遗漏)

若 git 下载较慢或失败,可下载http://pan.baidu.com/s/1jIRotBg(已打包 esp-idf 和 esp-idf-template,下载后请执行 git pull 以进行更新),可省略上面 git 步骤。

打开 ESP_IDE.exe,配置正确的 esp-idf 路径,并点击【OK】打开 eclipse

导入项目

1. 选择 File→Import

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

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

点击Browser,选中 esp-idf 所在的目录

4. 点击 Finish 完成 esp-idf 的导入

如下图:

配置项目

因为 make 只能从 app 目录启动,故我们需要修改整个项目 build 的位置

右键项目→Properties ,单击 C/C++ Build,修改如下图

此时,已经具备了编译的基础,下面我们配置 make menuconfig 和 make flash 两条指令

首先新建target,右键项目名称→Make targets ,选择 Creat

给该 Target 新建一个名称

在弹出的页面中取消勾选 Use builder setting

取消勾选 Same as the target name 并清空 Make target 的内容

在下面command 中输入 mintty.exe -e make menuconfig

点击 OK 保存

重复上一步骤,新建一个 DownLoad 的 Target ,

在弹出的页面中取消勾选 Use builder setting

取消勾选 Same as the target name 并清空 Make target 的内容

在下面command 中输入 make flash

点击 OK 保存

选中项目,按下快捷键 Shift + F9,弹出刚才新建的两个 Target

鼠标选中需要编译的 Target, 点击 Build 即可实现在 Eclipse 中下载和配置 idf

编译项目

首次使用请先执行 make menuconfig

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

Build Project :编译项目

Clean Project:清理项目

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

注意:Build Project 前最好先 Clean Project,以防止出错

结束

至此已经完成了ESP32的编译

接下来的烧写下载部分请跳至如何为 ESP 系列模组烧录固件

若您需要更多示例,请跳转至ESP32 示例

你可能感兴趣的:(ESP8266)