最近在弄这个WiFi模块,发现网上SDK开发方面的资料很少,发现了一套视频教程,不过主讲人的讲课方式实在受不了。对基于SDK开发感兴趣的同学可以通过本帖在Ubuntu系统上通过Eclipes搭建开发环境。

过程可以分为两步:
1、下载、编译SDK
2、配置Eclipes

一、下载、编译SDK

esp8266的sdk有两种,分别是ESP8266_RTOS_SDK和ESP8266_NONOS_SDK,这两者的区别在于RTOS_SDK有一个叫做RTOS的操作系统,采用了NONOS_SDK部分接口,不支持AT指令。
详见:Q: What is the difference between RTOS and the non-OS SDK?

这里我们使用NONOS_SDK,下载地址:esp-open-sdk

里边集成了NONOS_SDK的编译器和烧录工具等,也可用此编译器编译ESP_RTOS_SDK中的项目。

我们直接在命令行进行操作:

    #安装一些依赖工具
$ sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf \
flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial \
sed git unzip bash help2man wget bzip2
#如果ubuntu版本高于14.04可能还需要此工具
$ sudo apt-get install libtool-bin
#使用git克隆项目到本地,这里假设项目克隆到了/home/mmmmar/esp-open-sdk
$ git clone --recursive https://github.com/pfalcon/esp-open-sdk.git
#进入项目文件夹
$ cd /home/mmmmar/esp-open-sdk
#编译
$ make STANDALONE=y

注意:在SDK的编译过程中需要联网下载一些依赖库并编译,而且下载过程很容易失败,我在下载时挂代理才成功的。
如果编译失败可以查看esp-open-sdk/crosstool-NG/build.log 查看崩溃信息,一般都是下载失败。

编译成功后会在esp-open-sdk文件夹出现xtensa-lx106-elf  esptool  ESP8266_NONOS_SDK三个文件夹,分别是编译器,烧录工具,NONOS_SDK最新版。
这时需要把编译器路径加入到系统路径中,执行:

    #此命令只作用于当前控制台
export PATH=/home/mmmmar/esp-open-sdk/xtensa-lx106-elf/bin:$PATH

这时就可以编译esp-open-sdk/ESP8266_NONOS_SDK/examples中的示例工程了。
需要注意,要把ESP8266_NONOS_SDK文件夹复制到esp-open-sdk文件夹的外部,假如我们要编译examples文件夹中的at项目,我们需要把at文件夹复制到ESP8266_NONOS_SDK目录下,不然编译会失败。
复制完之后路径如下:

    /home/mmmmar
├── ESP8266_NONOS_SDK
│ ├── at
│ ├── examples
└── esp-open-sdk

复制完之后就可以编译at(我们最初用的AT指令就是这个项目,不过我们只能添加新的AT命令)项目了。
执行at文件夹下的gen_misc.sh,这里需要输入一些参数。
对于那些参数我也不是特别清楚,我的esp-01(黑色)选择的是:
boot version      = none
spi size and map =   1024KB( 512KB+ 512KB)

其余默认。黑色的版的esp-01有1MB的存储空间,而蓝色版只有512KB,不能使用最新版的AT固件。

编译完成后有如下输出:

    !!!
No boot needed.
Generate eagle.flash.bin and eagle.irom0text.bin successully in folder bin.
eagle.flash.bin-------->0x00000
eagle.irom0text.bin---->0x10000
!!!

现在可以把ESP8266_NONOS_SDK/bin目录中生成的固件烧录到开发板中去了,可以使用esp-open-sdk/esptool/esptool.py
不过我用的是windows上的一键烧录工具,大家百度一下就能搜到。

在配置一栏里需要填写各个二进制文件的烧录地址,这里附上官方文档里说明:

详见:2a-esp8266-sdk_getting_started_guide_en.pdf
至此,整套编译工具烧录工具就可以使用了,接下来介绍如何配置Eclipes

二、配置Eclipes
其实直接用vim+YCM也行,不过集成开发环境还是用的舒服一点。这里用的Eclipes是eclipse-cpp-neon-2-linux-gtk

1、File-New-Makefile Project From Existing Code
2、输入项目名称,路径,语言类型为C,编译器选none

3、添加头文件搜索路径,Project-Properties-C/C++ General-Preprocessor Include Paths,Macros etc

添加图中两处include文件夹路径
注意在添加esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/include时勾选[Treat as build-in]  [ Contains system headers]

4、添加环境变量,Project-Properties-C/C++ Build-Environment,点击Add

5、创建编译目标,Project-Build Targets-Create

其中,Build command中填入的命令就等于我们执行gen_misc.sh并输入参数,详见示例工程中的!!!readme!!!.txt文件

6、编译目标,Project-Build Targets-Build

以上,完成了Eclipes所有的配置,附图一张

附加:

   /****************************************
ESP8266_NONOS_SDK/include/c_types.h
#define TRUE true
#define FALSE flase
这两个宏定义在Eclipes的代码提示中会报错,可以修改一下
****************************************/
#define TRUE 1
#define FALSE 0

ubuntu上烧录方法:

使用esp-open-sdk/esptool/esptool.py,执行如下命令

#这里的参数需要根据自己的需求改变,详见esp-open-sdk/esptool/README.md
sudo ./esptool.py --port /dev/ttyUSB1 write_flash 0x00000 eagle.flash.bin 0x10000 eagle.irom0text.bin

烧录时要确保接线牢固,不然可能传输过程中会出现数据丢失或更改导致固件验证失败

参考:
官网文档
Free and open (as much as possible) integrated SDK for ESP8266/ESP8285 chips
Latest ESP8266 SDK based on FreeRTOS

esp8266 SDK开发之环境搭建的更多相关文章

  1. golang开发android环境搭建_window

    golang开发android环境搭建介绍 一 安装依赖软件: git:版本管理 go:  go开发环境(版本>=1.5),可直接下载window版的go安装包. android studio: ...

  2. ArcGIS API for Silverlight/ 开发入门 环境搭建

    Silverlight/ 开发入门 环境搭建1 Silverlight SDK下载ArcGIS API for Microsoft Silverlight/WPF ,需要注册一个ESRI Gloab ...

  3. Python开发:环境搭建(python3、PyCharm)

    Python开发:环境搭建(python3.PyCharm) python3版本安装 PyCharm使用(完全图解(最新经典))

  4. IOS开发基础环境搭建

    一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包:       ...

  5. 【nginx,apache】thinkphp ,laravel,yii2开发运行环境搭建

    缘由 经常会有人问xx框架怎么配置运行环境,这里我就给贴出吉祥三宝(Yii2,Laravel5,Thinkphp5 )的Nginx和Apache的配置,供大家参考 Nginx Yii2 server  ...

  6. 【1】windows下IOS开发基础环境搭建

    一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包:       ...

  7. 基于Axis1.4的webservice接口开发(环境搭建)

    基于Axis1.4的webservice接口开发(环境搭建) 一.环境搭建: 1.搜索关键字“Axis1.4”下载Axis1.4相关的jar包. 下载地址:http://download.csdn.n ...

  8. JM-1 手机网站开发测试环境搭建

    JM-1 手机网站开发测试环境搭建 一.总结 一句话总结:WEB服务器环境可实现局域网内轻松访问.360wifi可以实现局域网. 二.微网站开发环境: 1.把微网站放到本机wamp环境下,用pc浏览器 ...

  9. Android开发开始--环境搭建

    一.搭建Android开发环境 1.JDK (Java Development Kit) 2.Eclipse 3.Android SDK (Software Development Kit) 4.AD ...

随机推荐

  1. PHP进程锁

    <?php /** * CacheLock 进程锁,主要用来进行cache失效时的单进程cache获取,防止过多的SQL请求穿透到数据库 * 用于解决PHP在并发时候的锁控制,通过文件/eacc ...

  2. 如何打包静态库.framework文件 iOS

    代码调试好了开始打包成sdk,下面是将要打包的FRSDK代码(FRSDK.h暴露在外面有别人调用) 1.创建新工程(Xcode File-New-Project) 2.把下面的红色框的东西移除 3.将 ...

  3. Flask-admin 笔记一 (快速启用)

    1,快速启用   1) 安装flask-admin pip install flask-admin 2) 配置使用 from flask import Flask from flask_admin i ...

  4. spring,springmvc,mybatis基本整合(一)--xml文件配置方式(1)

    **这个整合.仅仅是最主要的整合,而且是xml配置文件的方式之中的一个,即当中的mybatis是採用非mapper接口的方式.(第二遍採用mapper接口方式.第三遍採用注解的方式:第四篇採用注解基于 ...

  5. Mybatis 入门之resultMap与resultType解说实例

    resultMap:适合使用返回值是自己定义实体类的情况 resultType:适合使用返回值得数据类型是非自己定义的,即jdk的提供的类型 resultMap : type:映射实体类的数据类型 i ...

  6. C#基础知识 yield与foreach

    什么时候可以使用yield的关键字来定义迭代器? 迭代器的返回类型必须是IEnumerable.IEnumerable<T>.IEnumerator 或 IEnumerator<T& ...

  7. Spring依赖注入原理

    接触过spring 的同学应该都知道依赖注入,依赖注入又称控制反转,其内涵就是,将创建某个bean的控制权力,由原来需要引用这个bean的bean转移(反转)到外部的spring IOC容器,由IOC ...

  8. Java方法的概念及使用

    方法 将一段逻辑或者功能提取出来,这种提取的形式就是函数 格式 修饰符 返回值类型 函数名(参数列表){ 方法体: return 返回值; } //明确返回值类型---求两个整数的和,确定结果一定是整 ...

  9. webpack+vue-cil 中proxyTable配置接口地址代理

    webpack+vue-cil 中proxyTable配置接口地址代理 在项目开发的时候,接口联调的时候一般都是同域名下,且不存在跨域的情况下进行接口联调,但是当我们现在使用vue-cli进行项目打包 ...

  10. Asp.Net Web API(四)

    HttpResponseException-----HTTP响应异常 如果Web API控制器抛出一个未捕捉的异常,会发生什么呢?在默认情况下,大多数异常都会转换为一个带有状态码500的内部服务器错误 ...