我们知道在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