当前位置:首页 > 电子 > 正文内容

ESP8266 RTOS SDK环境搭建 (安信可 ECLIPSE 一体化环境)

admin5年前 (2019-12-20)电子9095

0.参考网址:

如何安装安信可一体化开发环境http://wiki.ai-thinker.com/ai_ide_install

1 下载需要的安装包

1 下载 一体化 开发环境

http://pan.baidu.com/s/1skRvR1j
这里写图片描述
安装过程参考:安装到D盘了
https://blog.csdn.net/wowocpp/article/details/81023015

2 下载SDK

https://www.espressif.com/zh-hans/support/download/sdks-demos
https://github.com/espressif/ESP8266_RTOS_SDK/releases/tag/v2.0.0
名称为:ESP8266_RTOS_SDK-2.0.0.zip 大小为 6.29M

3 下载烧写工具

安信可开发工具清单: http://wiki.ai-thinker.com/tools

这里写图片描述
文件名字是:flash_download_tools_v3.6.2.2_1.zip

2 ESP8266_RTOS_SDK 使用

将ESP8266_RTOS_SDK-2.0.0.zip 解压到E盘:
这里写图片描述
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 ,以防止编译时报错

4.看一下SDK中bin目录下厂家提供的bin文件:
这里写图片描述

3 启动 ESP_IDE,将项目导入 ECLIPSE

1 进入目录 D:\AiThinkerIDE_V0.5
这里写图片描述

以管理员权限打开:ConfigTool.exe
这里写图片描述

这个时候再点击鼠标右键 ,会有如下效果:
这里写图片描述

2.双击 打开AiThinker_IDE.exe

  1. 选择 File→Import
  2. 点开C/C++分支,并选中Existing Code as Makefile Project 然后 Next
  3. 去除C++支持,选中 Cygwin GCC
    点击Browser,选中ESP8266_RTOS_SDK-2.0.0
    这里写图片描述
    点击 Finish 完成ESP8266_RTOS_SDK-2.0.0的导入

4 配置项目

因为分离了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

这里写图片描述

5 编译默认项目

鼠标选中 ESP8266_RTOS_SDK-2.0.0,点击右键出现菜单:
Build Project :编译项目

Clean Project:清理项目

选中编译项目,
这里写图片描述

控制台输出如下图即编译成功

!!! SDK_PATH: /cygdrive/e/ESP8266_RTOS_SDK-2.0.0
BIN_PATH: /cygdrive/e/ESP8266_RTOS_SDK-2.0.0/bin

No boot needed.
Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATH
eagle.flash.bin-------->0x00000
eagle.irom0text.bin---->0x20000 !!! make[1]: Leaving directory '/cygdrive/e/ESP8266_RTOS_SDK-2.0.0/app'

10:08:52 Build Finished (took 13s.565ms)

现在生成的固件是不支持OTA,通过无线连接自我更新固件。

6 将生成的固件烧写到NODEMCU中去:

由于是使用的NodeMCU 4M字节的Flash
修改一下文件 E:\ESP8266_RTOS_SDK-2.0.0\Makefile
这里写图片描述

这里写图片描述

启动ESPFlashDownloadTool_v3.6.2.2.exe
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

7 查看效果:波特率 74880

这里写图片描述

代码:E:\ESP8266_RTOS_SDK-2.0.0\app\user\user_main.c

void user_init(void) { printf("SDK 123 version:%s\n", system_get_sdk_version());
}

8 编译FOTA 固件

由于是使用的NodeMCU 4M字节的Flash
修改一下文件 E:\ESP8266_RTOS_SDK-2.0.0\Makefile
这里写图片描述

然后clean project ,然后build project

编译的log 如下:

!!! SDK_PATH: /cygdrive/e/ESP8266_RTOS_SDK-2.0.0
BIN_PATH: /cygdrive/e/ESP8266_RTOS_SDK-2.0.0/bin/upgrade

bin crc: 29c69a33
Support boot_v1.2 and +
Generate user1.4096.new.4.bin successully in BIN_PATH
boot.bin------------>0x00000
user1.4096.new.4.bin--->0x01000 !!! make[1]: Leaving directory '/cygdrive/e/ESP8266_RTOS_SDK-2.0.0/app'

16:46:15 Build Finished (took 10s.812ms)

这里写图片描述

这里写图片描述

这里写图片描述

程序运行的log:

ets Jan 8 2013,rst cause:2, boot mode:(3,7) load 0x40100000, len 2592, room 16 tail 0 chksum 0xf3 load 0x3ffe8000, len 764, room 8 tail 4 chksum 0x92 load 0x3ffe82fc, len 676, room 4 tail 0 chksum 0x22 csum 0x22 2nd boot version : 1.7(5d6f877)
SPI Speed : 40MHz
SPI Mode : DOUT
SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user1 @ 1000 OS SDK ver: 2.0.0(e271380) compiled @ Mar 30 2018 18:54:06 phy ver: 1055_1, pp ver: 10.7 rf cal sector: 1019 tcpip_task_hdl : 40107a00, prio:10,stack:512 idle_task_hdl : 40107ab0,prio:0, stack:384 tim_task_hdl : 40107bf8, prio:2,stack:512 SDK 666 version:2.0.0(e271380)
mode : softAP(86:f3:eb:53:49:bb)
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1) add if1
bcn 100 

这里写图片描述

代码修改:

void user_init(void) { printf("SDK 666 version:%s\n", system_get_sdk_version());
}

9 开始编程开发

参考文档:
ESP8266 RTOS SDK编程手册 版本1.5
https://www.espressif.com/sites/default/files/documentation/20a-esp8266_rtos_sdk_programming_guide_cn.pdf

这里写图片描述

这里写图片描述

这里写图片描述

10 得到芯片ID例程

void user_init(void) { printf("SDK 777 version:%s\n", system_get_sdk_version()); printf("ESP8266 chip ID:0x%x\n", system_get_chip_id());
}

11 如何学习SDK中的EXAMPLE

只要需要将目录E:\ESP8266_RTOS_SDK-2.0.0\examples\中的工程拷贝到 和app一个层级,在build project 的时候,就会自动的编译该example,
比如,将目录E:\ESP8266_RTOS_SDK-2.0.0\examples\wifi_station_machine_demo
复制到:
E:\ESP8266_RTOS_SDK-2.0.0\下面:
进入目录:
E:\ESP8266_RTOS_SDK-2.0.0\wifi_station_machine_demo
在eclipse 里面 刷新一下:

修改文件:
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

编译的log:

!!! SDK_PATH: /cygdrive/e/ESP8266_RTOS_SDK-2.0.0
BIN_PATH: /cygdrive/e/ESP8266_RTOS_SDK-2.0.0/bin/upgrade

bin crc: 7a2dda16
Support boot_v1.2 and +
Generate user1.4096.new.4.bin successully in BIN_PATH
boot.bin------------>0x00000
user1.4096.new.4.bin--->0x01000 !!! make[1]: Leaving directory '/cygdrive/e/ESP8266_RTOS_SDK-2.0.0/wifi_station_machine_demo'

18:23:18 Build Finished (took 13s.580ms)

注意
如果在E:\ESP8266_RTOS_SDK-2.0.0\目录下面 如果同时存在app 目录和wifi_station_machine_demo目录,
那么两者都会编译,然后生成的bin文件都会存放在E:\ESP8266_RTOS_SDK-2.0.0\bin目录下,这样会互相覆盖。
可以修改为:
BIN_PATH=$(shell pwd)/bin

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=$(shell pwd)/bin

这样log如下:
注意:BIN_PATH

!!! SDK_PATH: /cygdrive/e/ESP8266_RTOS_SDK-2.0.0
BIN_PATH: /cygdrive/e/ESP8266_RTOS_SDK-2.0.0/wifi_station_machine_demo/bin/upgrade

bin crc: 7a2dda16
Support boot_v1.2 and +
Generate user1.4096.new.4.bin successully in BIN_PATH
boot.bin------------>0x00000
user1.4096.new.4.bin--->0x01000 !!! make[1]: Leaving directory '/cygdrive/e/ESP8266_RTOS_SDK-2.0.0/wifi_station_machine_demo'

12 如何设置一个独立的工程,和SDK不在一个工程中

主要是设置SDK_PATH 和BIN_PATH ,然后通过eclipse 导入:
怎么设置include文件 和库文件呢,需要研究一下。

用到的 Makefile 修改方法:

parent_dir:=$(abspath $(shell pwd)/$(lastword $(MAKEFILE_LIST)))
parent_dir:=$(shell dirname $(parent_dir))
parent_dir:=$(shell dirname $(parent_dir))

SDK_PATH=/cygdrive/e/ESP8266_RTOS_SDK-2.0.0 BIN_PATH=$(shell pwd)/bin

13 需要补充一下 使用CYGWIN 控制台的 快速编译方法

参考网页:
http://wiki.ai-thinker.com/ai_ide_install
https://blog.csdn.net/wowocpp/article/details/81384090

export BIN_PATH=/cygdrive/e/esp8266/sdk/ESP8266_RTOS_SDK-2.0.0/bin export SDK_PATH=/cygdrive/e/esp8266/sdk/ESP8266_RTOS_SDK-2.0.0 在弹出的窗口直接敲命令。

ls cd app

ls

./gen_misc.sh

扫描二维码推送至手机访问。

版权声明:本文由视觉博客发布,如需转载请注明出处。

本文链接:http://www.cqroom.cn/post/107.html

“ ESP8266 RTOS SDK环境搭建 (安信可 ECLIPSE 一体化环境)” 的相关文章

labVIEW调用C# dll 步骤

labVIEW调用C# dll 步骤

labVIEW选用的版本是2010,C#选用的是VS20101.打开VS 2010,选择 文件》新建》项目 如下图所示:图12.输入名称并点击确认,如下图所示图23.编辑类,简单的编辑一个加法,如下图所示:图34.点击 项目》ClassLibrary 属性,如下图所示:图4图65.点击解决方案管理器...

STM32 中断向量表的位置 、重定向

STM32 中断向量表的位置 、重定向

这篇文章已经说了STM32的启动过程: http://www.cqroom.cn/post/39.html 我们也知道怎么跳到main函数了,那么,中断发生后,又是怎么跑到中断入口地址的呢? 从stm32f10x.s可以看到,已经定义好了一大堆...

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004 自从物联网问世以来,如何使得物 能够联网有了很多的方式,目前运用非常广的WIFI,今天就总结下自这个方面,也对于有需要的盆友也希望有抛砖引玉之效果。 来看个知乎...

SmartLink原理

SmartLink原理

智能家居/家电现阶段还处于普及阶段,由于家庭wifi网络的普及,目前普遍采用wifi与路由器完成连接,与手机/云端进行数据交互. 智能硬件,如智能插座,智能空调,智能空气净化器由于不具备人机交互界面,不能像电脑一样的搜索/选择指定路由器,输入连接密码的界面,所以必须先解决正确连接路...

开关电源拓扑结构概述(降压,升压,反激、正激)

开关电源拓扑结构概述(降压,升压,反激、正激)

主回路—开关电源中,功率电流流经的通路。主回路一般包含了开关电源中的开关器件、储能器件、脉冲变压器、滤波器、输出整流器、等所有功率器件,以及供电输入端和负载端。   开关电源(直流变换器)的类型很多,在研究开发或者维修电源系统时,全面了解开关电源主回路的...

FAT32文件格式详解

FAT32文件格式详解

说明: MBR :Master Boot Record ( 主引导记录)  DBR :DOS Boot Record ( 引导扇区) ...

评论列表

admin
admin IP:
5年前 (2020-02-16)

这个好

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。