前提条件

1. linux操作系统或者windows下的linux虚拟机或者OS X操作系统

2. 联网

下载

* [Mac](https://dl.espressif.com/dl/xtensa-lx106-elf-osx-1.22.0-92-g8facf4c-5.2.0.tar.gz)
* [Linux(64)](https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-92-g8facf4c-5.2.0.tar.gz)
* [Linux(32)](https://dl.espressif.com/dl/xtensa-lx106-elf-linux32-1.22.0-92-g8facf4c-5.2.0.tar.gz)
 
根据系统类型,在上述乐鑫官方下载对应的编译器。
 
https://github.com/espressif/ESP8266_RTOS_SDK/releases/tag/v2.0.0
在上述地址下载ESP8266_RTOS_SDK 2.0.0
 
https://github.com/esp8266/esp8266-wiki/blob/master/libs/libhal.a
ESP8266_RTOS_SDK 2.0.0缺少一个函数库(不知道是不是官方打包漏了,或许以后会有改进)下载缺少的函数库libhal
 
环境设置
下面以32位Ubuntu16.04为例。
首先将编译器压缩包、SDK压缩包和libhal.a放到桌面,然后将编译器和SDK解压。
 
然后打开终端(terminal)
 
接下来我们需要将编译器的路径导入环境变量。
首先进入到编译器所在目录,由于我们的编译器被解压到桌面了,所以执行:
cd Desktop/xtensa-lx106-elf/bin/

然后使用命令pwd获取到编译器的绝对路径

pwd

此处的绝对路路径是/home/beecom/Desktop/xtensa-lx106-elf/bin,我们将其导入到环境变量中

echo "export PATH=/home/beecom/Desktop/xtensa-lx106-elf/bin:$PATH" >> ~/.bashrc

重新打开一个终端,首先将libhal.a复制到SDK的libs目录下

cp Desktop/libhal.a Desktop/ESP8266_RTOS_SDK-2.0.0/lib/

然后进入到SDK的示例工程project_template中

cd Desktop/ESP8266_RTOS_SDK-2.0.0/examples/project_template/

修改编译脚本的环境变量SDK_PATH(SDK路径)和BIN_PATH(编译输出bin路径)

gedit gen_misc.sh

运行编译脚本,根据自身需要按步骤选择编译选项

./gen_misc.sh

编译完成,编译生成的bin文件都在/home/beecom/Desktop/ESP8266_RTOS_SDK-2.0.0/bin目录中

预留编译环境镜像文件下载:

virtualbox ubuntu16.04 ova镜像文件

回首页

ESP8266 RTOS SDK编译环境搭建的更多相关文章

  1. windows下cocos2dx3.0开发环境及Android编译环境搭建

    cocos2dx更新到了3.x版本号,自己一直没有换,如今开发组要求统一换版本号,我就把搭建好开发环境的过程记录下来. 一.Windowns下开发环境搭建 1.  所需工具         1)coc ...

  2. Emscripten编译环境搭建--将C和C++编译成JS

    Emscripten编译环境搭建--将C和C++编译成JS 需求:linux环境下用js执行c.c++文件,使用emscirpten编译器 目标:搭建好Emscripten环境 环境:Ubuntu16 ...

  3. ESP8266 RTOS SDK开发

    ESP8266 RTOS SDK开发 目录 ESP8266 RTOS SDK开发 一.源码RTOS SDK包的下载和编译 二.固件烧录 1.管脚定义 三.程序例程 ## 1.PWM设置 连接MQTT ...

  4. ubuntu12.04下安卓编译环境搭建总结

    前言:      因为工作需要,经常要编译安卓下的动态库,公司有已经搭建好环境的服务器,但是第一自己想自己搭建一下了解一个整个过程,另外,公司的服务器也经常出现问 题,导致编译不了,所以就想自己搭建环 ...

  5. openwrt(一):openwrt源码下载及编译环境搭建

    声明:从网上各位大神的博客学习,整理后记录,非原创. 注:请用非root用户来下载源码 导航: 1. openwrt编译环境搭建 2. openwrt源码下载 3. feeds更新 1. openwr ...

  6. IoT设备程序开发及编译环境搭建初体验

    引言 Mirai事件一经曝出,立即引领了一轮研究IoT设备的热潮.目前,对Mirai的报告大多只是在对其功能实现上的介绍,却很少提及如何实现IoT设备程序开发的测试环境.本文在对Mirai的源码研究的 ...

  7. Tiny4412 开发板 编译环境搭建【转】

    本文转载自:http://blog.csdn.net/beijiwei/article/details/51055369 版权声明:本文为博主原创文章,未经博主允许不得转载. /*********** ...

  8. C语言编程入门之--第二章编译环境搭建

    第二章 编译环境搭建 导读:C语言程序如何工作,首先需要编译链接成可执行文件,然后就可以运行在不同的环境中,这个“环境”的意思就是比如说,电脑,手机,路由器,蓝牙音箱等等智能设备中,其中编译器启到了关 ...

  9. u-boot 移植(一)编译环境搭建

    u-boot 移植(一)编译环境搭建 soc:s3c2440 board:jz2440 uboot:u-boot-2016.11 toolchain:gcc-linaro-7.4.1-2019.02- ...

随机推荐

  1. 使用kettle来根据时间戳或者批次号来批量导入数据,达到增量的效果。

    1.Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,数据抽取高效稳定.下载图形化界面的zip包格式的,直接解压缩使用即可.安装部署模式这里不说了 ...

  2. Redis数据类型String

    set和get Set带空格的字符串值,这时候就需要使用双引号了,否则会出错 getset getset设置某个key-value,然后把设置之前的值返回来 incr,incrby 和 decr,de ...

  3. [转] 扩展微信小程序框架功能

    通过第三方 JavaScript 库,扩展微信小程序框架功能. 扩展微信小程序框架功能(1)——Promise ES6 对 Promise 有了原生的支持,但微信开发者工具更新版本(0.11.1122 ...

  4. 【原创】C# war3 巨魔精灵 minimap

    弃坑LOL后,无聊的时候玩玩 war3的RPG地图,巨魔与精灵.  玩了一段时间精灵....然后玩魔结果总是找不到人.所以就有了这个想法. 代码纯粹靠搬运. 说下原理,网上有份代码,可以查看当前选中目 ...

  5. Python运算符——复合运算符

    就相当于算数运算符的后面加一个“=” 例:+= num = num+5   可以写成  num += 5 就是说,等式右边含有左边的变量名,就可以直接去掉,然后右边的符号移到左边去 同样的“-=  / ...

  6. Service,测试

    这里介绍一些symfony的一些其他内容 1.创建并使用自定义service 首先创建service目录,在下面自定义一个类,并设置测试方法,之后在resources目录下面的services.xml ...

  7. There is no getter for property named 'XXX' in 'class java.lang.String'解决方法

    <select id="ProjectHomePage" parameterType="string" resultType="java.uti ...

  8. js 对时间进行判断 现在的时间是否在后台给的开始时间 和 结束时间 内 (时间格式为:2018-09-03 09:20:30)

    function status(item){ let now = Date.parse(new Date()); let startString = Date.parse(new Date(Date. ...

  9. hadoop2-hive

    hadoop2-hive 1.What,Why,How? 1.Hive是数据仓库,在MySQL或其他关系型数据库中存放元数据信息,而把真正的Data存放在HDFS上面. 2.主要使用Hive来对历史数 ...

  10. php 获取 两个时间戳之间 相隔 【多少年】 【 多少个月】 【多少天】 【 多少个小时】 【多少分】【 多少秒 】

    /** * 返回两个时间的相距时间,*年*月*日*时*分*秒 * @param int $one_time 时间戳一 大的时间戳 * @param int $two_time 时间戳二 小的时间戳 * ...