2019-04-05 13:45:29 iamlvshijie 阅读数 266
  • 乐鑫esp8266接入阿里云物联网,个人接入实现天猫精灵...

    乐鑫esp8266成为物联网的一个黑马,芯片便宜实用!那么我将会带大家一览如何让智能AI音箱来控制它,本课程为2大章节! 第一章节讲解esp8266原生的rtos 3.0和 nonos 3.0 两种不同的SDK接入阿里云物联网平台。 第二章方方面面介绍阿里开源的嵌入式系统AliosThings,如何集成到esp8266,无须企业账户也可以实现天猫精灵控制esp8266!

    2462 人正在学习 去看看 徐宏

 

搭建linux 开发环境

https://blog.csdn.net/sanbanzui2008/article/details/82178565

搭建linux开发环境,编译ESP8266_RTOS_SDK

https://blog.csdn.net/areswhy/article/details/81144864

2017-09-12 17:56:12 dengjin20104042056 阅读数 2721
  • 乐鑫esp8266接入阿里云物联网,个人接入实现天猫精灵...

    乐鑫esp8266成为物联网的一个黑马,芯片便宜实用!那么我将会带大家一览如何让智能AI音箱来控制它,本课程为2大章节! 第一章节讲解esp8266原生的rtos 3.0和 nonos 3.0 两种不同的SDK接入阿里云物联网平台。 第二章方方面面介绍阿里开源的嵌入式系统AliosThings,如何集成到esp8266,无须企业账户也可以实现天猫精灵控制esp8266!

    2462 人正在学习 去看看 徐宏

我们知道在linux下进行嵌入式开发,都需要先搭建一套与芯片对应的交叉编译环境,ESP8266也一样。


ESP8266内置Tensilica L106,32位MCU,具有超低功耗的16位RSIC。CPU时钟速度为80MHZ,最高可达160MHZ,并支持实时RTOS操作系统。ESP8266交叉编译器为xtensa-lx106-elf,官方有提供编译完成的可执行版本,也可通过crosstool-ng自行编译。

官方版下载地址:百度云盘:https://pan.baidu.com/s/1dEOw8bZ 下载密码:v81b


同时官方提供的完整的Linux开发环境,是基于虚拟机VirtualBox的Lubuntu镜像,可通过如下途径获取:

VirtualBox:https://www.virtualbox.org/wiki/Downloads

Lubuntu镜像:百度云盘:https://pan.baidu.com/s/1dEOw8bZ 下载密码:v81b

不过如果你已经安装了Ubuntu或者其他版本的Linux系统,再搞一个Linux系统来开发ESP8266就显得浪费硬盘空间了。今天我们要说的就是是自己动手在ubuntu下搭建一套自己的交叉编译环境。


一、交叉编译器的下载

1.官方版下载:xtensa-lx106-elf.bz2(百度网盘)
在windows下载完成后再复制至Ubuntu下,使用sudo tar jxvf xtensa-lx106-elf.bz2 -C /opt 解压至/opt目录


2. 修改xtensa-lx106-elf目录权限:这一步非常重要,否则在后续编译中很容易出现没有权限问题

sudo chmod 777 /opt/xtensa-lx106-elf


二、环境变量的设置

1.我习惯编编辑etc/environment,输入:sudo vim /etc/environment,按照格式要求输入“:/opt/xtensa-lx106-elf/bin”,保存并退出。


2.要使当前编译的环境变量生效,执行source /etc/environment,这样在当前命令行终端下该编辑的环境变量有效,换个命令行终端就无效了!当然更测试的方式就是重启系统了!!!


3.执行echo $PATH,查看当前环境变量,是否已经存在/opt/xtensa-lx106-elf/bin。


4.在命令行终端执行xtensa-lx106-elf-gcc -v,如可看到版本号,表示当前交叉编译器安装成功。可以看到我们使用的gcc版本为 4.8.2

三、 问题解决

如果出现文件或者目录找不到

原因是没有32位的运行库;


解决办法:

sudo apt-get install libc6:i386 libgcc1:i386 libstdc++5:i386 libstdc++6:i386

2016-12-22 08:44:51 embsun 阅读数 1225
  • 乐鑫esp8266接入阿里云物联网,个人接入实现天猫精灵...

    乐鑫esp8266成为物联网的一个黑马,芯片便宜实用!那么我将会带大家一览如何让智能AI音箱来控制它,本课程为2大章节! 第一章节讲解esp8266原生的rtos 3.0和 nonos 3.0 两种不同的SDK接入阿里云物联网平台。 第二章方方面面介绍阿里开源的嵌入式系统AliosThings,如何集成到esp8266,无须企业账户也可以实现天猫精灵控制esp8266!

    2462 人正在学习 去看看 徐宏

0. 前言

最近在研究WIFI模块,发现一块由上海乐鑫公司开发的ESP8266芯片, 非常便宜, 但功能并不弱,支持二次开发。针对ESP8266模块,乐鑫官方提供的是Linux环境的开发工具,正好能借此熟悉一下Linux平台上的软件开发。

1. 安装Ubuntu

乐鑫官网已经有virtualbox下搭建好的虚拟机,打开就可以直接使用。我为了熟悉linux平台安装配置过程,采用vmware虚拟机再重新安装一个ubuntu系统,走一遍流程。

1.1. 下载Ubuntu镜像

打开ubuntu官方网站https://www.ubuntu.com/download,下载一个Desktop桌面版ISO镜像。
我下载的是16.04 LTS版本。

1.2. 下载并安装VMware Workstation

去VMware官网下载并安装,VMware是收费软件。也可以选择VirtualBox,它是免费的。

1.3. 安装Ubuntu系统

  1. 打开VMware Workstation,新建一个虚拟机
  2. 选择安装镜像,选择刚才下载的Ubuntu安装文件。
  3. 输入用户名,密码,next
  4. 等待安装过程结束(安装结束后虚拟机会自动重启,可能会碰到虚拟机不能重启,则手动重启一下)

1.4. 安装VMware Tools

安装完成后进入系统,发现VMware Tools已经安装好了,如果没有自动安装,点击菜单栏虚拟机->安装VMware Tools。方便以后主机与ubuntu之间传文件。

2. 系统配置及常用软件安装

系统安装好以后我们再安装一些基本工具,做一些简单配置,可以使ubuntu系统更好用。

2.1 系统更新

执行以下命令更新系统安装源及软件更新。这两条命令比较耗时,可以先跳过,等以后有空再处理。

sudo apt-get update
sudo apt-get upgrade

2.2 安装git

有了git可以很方便的克隆网上的开源代码,也可以管理自己编写的代码。有了git,整个github就是你的了(还有git.oschina.net)。

sudo apt-get install git

测试一下

git --version

这里写图片描述

2.3 安装zsh

一句话,zsh是sh中的极品。很好用,特别是补全功能,很强大。此处就不详细安装过程了,请自行度娘。

2.1 更新VI编辑器配置文件

配置一下VIM,可以是他用起来更顺手。找到一个github上星星比较多的vim配置文件,
https://github.com/amix/vimrc
你也可以搜索尝试其他的vim配置文件,网上有很多。

sudo apt-get install vim
git clone git://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_basic_vimrc.sh

这里写图片描述

ubuntu自带的vi比较简陋,安装一个完全版的vim,再结合上述配置文件,vi编辑起来就顺手多了。

3. 下载安装ESP8266编译工具

写了这么多还没到正题:),下面开始下载配置esp8266工具链,其实很简单。

3.1 下载工具链压缩包

打开乐鑫官方给出的下载地址
https://pan.baidu.com/s/1dEOw8bZ
密码:v81b
下载其中的xtensa-lx106-elf.tar.bz2文件。
这里写图片描述

3.2 解压安装工具链

将下载的xtensa-lx106-elf.tar.bz2文件拖到ubuntu虚拟机中。

cd ~/Desktop
sudo tar jxvf xtensa-lx106-elf.tar.bz2 -C /opt

将工具链解压安装到/opt文件夹下,查看一下

ls /opt

这里写图片描述

3.3 配置环境变量

gedit ~/.profile

在.profile文件中增加如下代码,保存退出
这里写图片描述

记得log out->log in重新登录一下ubuntu,使PATH配置生效。

3.4 测试工具链

运行测试下

xtensa-lx106-elf-gcc -v

这里写图片描述

嗯? 出错!

直接绝对地址运行下

/opt/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -v

依然提示命令不存在?
这里写图片描述

模式也是正确的,有执行权限

ll /opt/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc

这里写图片描述

明明文件存在,怎么提示找不到?

度娘告诉我原来我的ubuntu是64位的,运行不了32位程序,需要安装一下依赖包:

sudo apt-get install lib32ncurses5 lib32z1

OK,再来测试一下

xtensa-lx106-elf-gcc -v

这里写图片描述

OK! 至此,esp8266的工具链就安装OK了。

参考

1. 乐鑫官网http://www.espressif.com

2018-08-29 09:58:08 sanbanzui2008 阅读数 1140
  • 乐鑫esp8266接入阿里云物联网,个人接入实现天猫精灵...

    乐鑫esp8266成为物联网的一个黑马,芯片便宜实用!那么我将会带大家一览如何让智能AI音箱来控制它,本课程为2大章节! 第一章节讲解esp8266原生的rtos 3.0和 nonos 3.0 两种不同的SDK接入阿里云物联网平台。 第二章方方面面介绍阿里开源的嵌入式系统AliosThings,如何集成到esp8266,无须企业账户也可以实现天猫精灵控制esp8266!

    2462 人正在学习 去看看 徐宏

【物联网】 ESP8266 Ubuntu开发环境的搭建

2017年09月12日 17:56:12 阅读数:1419 标签: esp8266esp8266开发环境esp8266 Linux开发环境更多

个人分类: 物联网世界

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dengjin20104042056/article/details/77941073

我们知道在linux下进行嵌入式开发,都需要先搭建一套与芯片对应的交叉编译环境,ESP8266也一样。

 

ESP8266内置Tensilica L106,32位MCU,具有超低功耗的16位RSIC。CPU时钟速度为80MHZ,最高可达160MHZ,并支持实时RTOS操作系统。ESP8266交叉编译器为xtensa-lx106-elf,官方有提供编译完成的可执行版本,也可通过crosstool-ng自行编译。

官方版下载地址:百度云盘:https://pan.baidu.com/s/1dEOw8bZ 下载密码:v81b

 

同时官方提供的完整的Linux开发环境,是基于虚拟机VirtualBox的Lubuntu镜像,可通过如下途径获取:

VirtualBox:https://www.virtualbox.org/wiki/Downloads

Lubuntu镜像:百度云盘:https://pan.baidu.com/s/1dEOw8bZ 下载密码:v81b

不过如果你已经安装了Ubuntu或者其他版本的Linux系统,再搞一个Linux系统来开发ESP8266就显得浪费硬盘空间了。今天我们要说的就是是自己动手在ubuntu下搭建一套自己的交叉编译环境。

 

一、交叉编译器的下载

1.官方版下载:xtensa-lx106-elf.bz2(百度网盘)
在windows下载完成后再复制至Ubuntu下,使用sudo tar jxvf xtensa-lx106-elf.bz2 -C /opt 解压至/opt目录

 

 

2. 修改xtensa-lx106-elf目录权限:这一步非常重要,否则在后续编译中很容易出现没有权限问题

sudo chmod 777 /opt/xtensa-lx106-elf

 

二、环境变量的设置

1.我习惯编编辑etc/environment,输入:sudo vim /etc/environment,按照格式要求输入“:/opt/xtensa-lx106-elf/bin”,保存并退出。

 

2.要使当前编译的环境变量生效,执行source /etc/environment,这样在当前命令行终端下该编辑的环境变量有效,换个命令行终端就无效了!当然更测试的方式就是重启系统了!!!

 

3.执行echo $PATH,查看当前环境变量,是否已经存在/opt/xtensa-lx106-elf/bin。

 

4.在命令行终端执行xtensa-lx106-elf-gcc -v,如可看到版本号,表示当前交叉编译器安装成功。可以看到我们使用的gcc版本为 4.8.2

三、 问题解决

如果出现文件或者目录找不到

原因是没有32位的运行库;

解决办法:

sudo apt-get install libc6:i386 libgcc1:i386 libstdc++5:i386 libstdc++6:i386

2017-04-14 15:40:33 ayst_shen 阅读数 1669
  • 乐鑫esp8266接入阿里云物联网,个人接入实现天猫精灵...

    乐鑫esp8266成为物联网的一个黑马,芯片便宜实用!那么我将会带大家一览如何让智能AI音箱来控制它,本课程为2大章节! 第一章节讲解esp8266原生的rtos 3.0和 nonos 3.0 两种不同的SDK接入阿里云物联网平台。 第二章方方面面介绍阿里开源的嵌入式系统AliosThings,如何集成到esp8266,无须企业账户也可以实现天猫精灵控制esp8266!

    2462 人正在学习 去看看 徐宏

ESP8266 MAC(OSX)开发环境搭建

资料

ESP8266官网
NodeMcu官网
ESP8266 linux环境编译工具链
ESP8266开源编译工具链源码
OSX搭建ESP8266开发环境
OSX搭建ESP8266开发环境2

安装MAC编译工具链

  1. 安装brew
  2. 安装命令行工具前安装最新版本Xcode(>=8.3)
  3. 安装相关工具
$ brew tap homebrew/dupes
$ brew install binutils coreutils automake wget gawk libtool help2man gperf gnu-sed --with-default-names grep
$ export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
  1. 安装MacPort下载地址与gsed
export PATH=/opt/local/bin:$PATH
export PATH=/opt/local/sbin:$PATH
sudo port -v selfupdate
port install gsed
  1. 创建大小写敏感的文件系统,MAC默认文件名不区分大小写
$ sudo hdiutil create ~/Development/esp-open-sdk.dmg -volname "esp-open-sdk" -size 5g -fs "Case-sensitive HFS+"
$ sudo hdiutil mount ~/Development/esp-open-sdk.dmg
$ cd /Volumes/esp-open-sdk
  1. 下载esp-open-sdk编译工具源码
git clone https://github.com/pfalcon/esp-open-sdk.git --recursive
  1. Linux切Mac的一些修改
    (==注意这里用的sed命令是Mac下的,不是gsed,如果执行失败把sed替换成/usr/bin/sed==)
cd esp-open-sdk
sed -i.bak '1s/^/gettext=\'$'\n/' crosstool-NG/kconfig/Makefile
sed -i.bak -e 's/[[:<:]]sed[[:>:]]/gsed/' Makefile
sed -i.bak -e 's/[[:<:]]awk[[:>:]]/\$(AWK)/' lx106-hal/src/Makefile.am
sed -i.bak 's/AM_PROG_AS/AM_PROG_AS\'$'\nAM_PROG_AR/' lx106-hal/configure.ac
  1. 开始编译
make STANDALONE=n

==编译出错1:==

./ct-ng build
[INFO ]  Performing some trivial sanity checks
[INFO ]  Build started 20170408.174558
[INFO ]  Building environment variables
[INFO ]  =================================================================
[INFO ]  Retrieving needed toolchain components' tarballs
[ERROR]   
[ERROR]  >>
[ERROR]  >>  Build failed in step 'Retrieving needed toolchain components' tarballs'
[ERROR]  >>        called in step '(top-level)'
[ERROR]  >>
[ERROR]  >>  Error happened in: do_libc_get[scripts/build/libc/newlib.sh@12]
[ERROR]  >>        called from: main[scripts/crosstool-NG.sh@594]
[ERROR]  >>
[ERROR]  >>  For more info on this error, look at the file: 'build.log'
[ERROR]  >>  There is a list of known issues, some with workarounds, in:
[ERROR]  >>      'share/doc/crosstool-ng/crosstool-ng-1.22.0-60-g37b07f6f-dirty/B - Known issues.txt'
[ERROR]   
[ERROR]  (elapsed: 5:08.00)
[05:10] / make[2]: *** [build] Error 1
make[1]: *** [_toolchain] Error 2
make: *** [/Volumes/esp-open-sdk/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc] Error 2

分析/Volumes/esp-open-sdk/esp-open-sdk/crosstool-NG/build.log定位源码newlib.sh 12行,原因为下载失败

do_libc_get() {
    local libc_src="{http://mirrors.kernel.org/sourceware/newlib,
                     ftp://sourceware.org/pub/newlib}"

    if [ "${CT_LIBC_NEWLIB_CUSTOM}" = "y" ]; then
        CT_GetCustom "newlib" "${CT_LIBC_VERSION}"      \
                     "${CT_LIBC_NEWLIB_CUSTOM_LOCATION}"
    else # ! custom location
        if echo ${CT_LIBC_VERSION} |${grep} -q linaro; then
            YYMM=`echo ${CT_LIBC_VERSION} |cut -d- -f3 |${sed} -e 's,^..,,'`
            CT_GetFile "newlib-${CT_LIBC_VERSION}" ${libc_src} \
                       https://releases.linaro.org/${YYMM}/components/toolchain/newlib-linaro \
                       http://cbuild.validation.linaro.org/snapshots
        else
            CT_GetFile "newlib-${CT_LIBC_VERSION}" ${libc_src} \
                       http://mirrors.kernel.org/sources.redhat.com/newlib
        fi
    fi # ! custom location
}

解决方法:去http://mirrors.kernel.org/sourceware/newlib手动下载newlib-2.0.0.tar.gz,放至 /Volumes/esp-open-sdk/esp-open-sdk/crosstool-NG/.build/tarballs目录,再重新执行编译

  1. 将生成的交叉编译工具xtensa-lx106-elf加到环境变量
vim $HOME/.bash_profile
export PATH=$PATH:/esptools/esp-open-sdk/xtensa-lx106-elf/bin
source $HOME/.bash_profile

编译

  1. 进入esp8266代码目录,执行下面命令开始编译
make COMPILE=gcc

烧录

安装usb转串口驱动(比如PL2303)

  1. 下载驱动
  2. 安装
  3. 安装完成,重启电脑之后我们在“网络偏好设置”中,发现多了一项USB-SerialController
  4. 终端执行下面命令查看,tty.usbserial就是我们的设备
192:dev shenhaibo$ cd /dev
192:dev shenhaibo$ ll tty.*
crw-rw-rw-  1 root  wheel   20,   0  4  9 11:02 tty.Bluetooth-Incoming-Port
crw-rw-rw-  1 root  wheel   20,   2  4  9 11:04 tty.usbserial

固件下载工具配置

  1. 下载源码
git clone https://github.com/themadinventor/esptool.git
  1. 配置环境变量
vim $HOME/.bash_profile
export PATH=$PATH:/Users/shenhaibo/Development/ESP6288/esptool
source $HOME/.bash_profile
  1. 安装PySerial下载地址
tar xfvz pyserial-2.7.tar.gz
cd pyserial-2.7
sudo python setup.py install

固件下载工具使用

  1. 擦除芯片
sudo esptool.py --port /dev/tty.usbserial erase_flash
  1. 下载固件
sudo esptool.py --port /dev/tty.usbserial write_flash -fm dio -fs 32m -ff 40m 0x00000 ~/Desktop/nodemcu_float_0.9.6-dev_20150704.bin

烧录说明

==Gokit3.0 ESP8266是:Flash size 32Mbit-C1: 1024KB+1024KB==

***********************BOOT MODE***********************
download:
Flash size 8Mbit: 512KB+512KB
boot_v1.2+.bin          0x00000
user1.1024.new.2.bin    0x01000
esp_init_data_default.bin   0xfc000 (optional)
blank.bin               0x7e000 & 0xfe000

Flash size 16Mbit: 512KB+512KB
boot_v1.2+.bin          0x00000
user1.1024.new.2.bin    0x01000
esp_init_data_default.bin   0x1fc000 (optional)
blank.bin               0x7e000 & 0x1fe000

Flash size 16Mbit-C1: 1024KB+1024KB
boot_v1.2+.bin          0x00000
user1.2048.new.5.bin    0x01000
esp_init_data_default.bin   0x1fc000 (optional)
blank.bin               0xfe000 & 0x1fe000

Flash size 32Mbit: 512KB+512KB
boot_v1.2+.bin          0x00000
user1.1024.new.2.bin    0x01000
esp_init_data_default.bin   0x3fc000 (optional)
blank.bin               0x7e000 & 0x3fe000

Flash size 32Mbit-C1: 1024KB+1024KB
boot_v1.2+.bin          0x00000
user1.2048.new.5.bin    0x01000
esp_init_data_default.bin   0x3fc000 (optional)
blank.bin               0xfe000 & 0x3fe000

***********************NON-BOOT MODE***********************
download
eagle.flash.bin     0x00000
eagle.irom0text.bin 0x40000
blank.bin
    Flash size 4Mbit:       not supported
    Flash size 8Mbit:   0x7e000 & 0xfe000
    Flash size 16Mbit:      0x7e000 & 0x1fe000
    Flash size 16Mbit-C1:   0xfe000 & 0x1fe000
    Flash size 32Mbit:      0x7e000 & 0x3fe000
    Flash size 32Mbit-C1:   0xfe000 & 0x3fe000
esp_init_data_default.bin    (optional) 
        Flash size 8Mbit:   0xfc000
    Flash size 16Mbit:      0x1fc000
    Flash size 16Mbit-C1:   0x1fc000
    Flash size 32Mbit:      0x3fc000
    Flash size 32Mbit-C1:   0x3fc000

*NOTICE*:
UPDATE is not supported in non-boot mode

***********************************************************

Update steps
1.Make sure TE(terminal equipment) is in sta or sta+ap mode
ex. AT+CWMODE=3
    OK

2.Make sure TE got ip address
ex. AT+CWJAP="ssid","12345678"
    OK

    AT+CIFSR
    192.168.1.134

3.Let's update
ex. AT+CIUPDATE
    +CIPUPDATE:1    found server
    +CIPUPDATE:2    connect server
    +CIPUPDATE:3    got edition
    +CIPUPDATE:4    start start

    OK

note. If there are mistakes in the updating, then break update and print ERROR.

烧录示例

==如:gokit3_SoC_ESP8266_03000003_2016120711项目==

sudo esptool.py --port /dev/tty.usbserial write_flash -fm dio -fs 32m -ff 40m 0x00000 boot_v1.6.bin 
sudo esptool.py --port /dev/tty.usbserial write_flash -fm dio -fs 32m -ff 40m 0x01000 gokit3_SoC_ESP8266_03000003_2016120711
.bin 
sudo esptool.py --port /dev/tty.usbserial write_flash -fm dio -fs 32m -ff 40m 0x3fc000 esp_init_data_default.bin 
sudo esptool.py --port /dev/tty.usbserial write_flash -fm dio -fs 32m -ff 40m 0x3fe000 blank.bin 
没有更多推荐了,返回首页