http://wiki.ai-thinker.com/ai_ide_use
注意:Eclipse 只是一个代码编写工具,它并不能读取 makefile 里面的一些配置,甚至它会读取到 cygwin 下同名称的头文件。
针对该现象引起的报错,我们建议用户在使用该 IDE 时,直接将 Problems 栏目关掉,因为该提示并不准确,我们主要关注的信息应该为 Console 栏目下的输出。(第一条 Console 报错最重要!)
我们以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示例
以下内容适用于乐鑫默认方式,您可以直接下载esp8266_rtos_sdk-2.0.0.zip ,该示例工程合并了用户工程和SDK工程,可以直接按照 NONOS 版本步骤导入。
下载后解压到合适的目录下,我们以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,以防止出错
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. 运行结果如下:
参见 示例2_esp8266_rtos_sdk_使用
首先,打开 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 示例