1. ESP8266固件的编译(交叉编译工具链的建立)
2017-05-21 15:16
399 查看
【本文为ydogg原创,转载请注明】
注意,不要用root用户进行操作,需新建普通用户执行。
本文的环境是CentOS7.2 x64。
一、 交叉编译环境代码下载
ESP8266 内部有一个完整的 32bit MCU 核心,主频 80/160MHz,其体系结构为 Xtensa lx106。Xtensa 是专为嵌入式单芯片系统而设计的微处理器,由Tensilica 公司开发。Tensilica 也是发展极为迅猛的一家公司,主要是在专业性应用程序微处理器上为高容量嵌入式系统提供解决方案。
Esp8266使用Tensilica
git clone https://github.com/pfalcon/esp-open-sdk.git
根据Readme的说明,代码主要包含如下部分:
1) 交叉编译器自身
注意,不要用root用户进行操作,需新建普通用户执行。
本文的环境是CentOS7.2 x64。
一、 交叉编译环境代码下载
ESP8266 内部有一个完整的 32bit MCU 核心,主频 80/160MHz,其体系结构为 Xtensa lx106。Xtensa 是专为嵌入式单芯片系统而设计的微处理器,由Tensilica 公司开发。Tensilica 也是发展极为迅猛的一家公司,主要是在专业性应用程序微处理器上为高容量嵌入式系统提供解决方案。
Esp8266使用Tensilica
git clone https://github.com/pfalcon/esp-open-sdk.git
根据Readme的说明,代码主要包含如下部分:
1) 交叉编译器自身
https://github.com/jcmvbkbc/crosstool-NG https://github.com/jcmvbkbc/gcc-xtensa https://github.com/jcmvbkbc/newlib-xtensa https://github.com/tommie/lx106-hal[/code]
2) 乐鑫官方提供的IoT SDK http://bbs.espressif.com/viewforum.php?f=46[/code]
3) 其他第三方依赖代码 lwIP, http://savannah.nongnu.org/projects/lwip/ Contiki, http://www.contiki-os.org/ axTLS, http://axtls.sourceforge.net/ wpa_supplicant, http://w1.fi/wpa_supplicant/ (source withheld by Espressif) net80211/ieee80211 (FreeBSD WiFi stack)
如果是桌面安装,一般以下依赖包都需要安装:sudo yum -y install autoconf sudo yum -y install autoconf sudo yum -y install gcc sudo yum -y install gcc.g++ sudo yum -y install gperf sudo yum -y install bison sudo yum -y install flex sudo yum -y install makeinfo sudo yum -y install texinfo sudo yum -y install help2man sudo yum -y install gpatch patch sudo yum -y install libtool sudo yum -y install curses sudo yum -y install curses-lib sudo yum -y install ncurses-libs.x86_64 sudo yum -y install ncurses-devel.x86_64 sudo yum -y install gcc-c++ sudo yum -y install expat
另外,还要安装pip以及esptool(固件打包必须用)所依赖的seriral库。sudo yum -y install epel-release sudo pip install esptool sudo pip install serial
二、编译
有两种模式可供选择:
1) 分离模式
在此模式下,生成交叉编译工具链和乐鑫的IoT SDK没有依赖关系,
也就是说需要主动设置IoT SDK的头文件路径和库路径。
用官方的话来说,就是License更clear,也更容易配合乐鑫官方的SDK升级。
执行make STANDALONE=n
2) StandAlone模式
和某版的乐鑫SDK绑定,从而无需单独指定IoT SDK路径,方便一些。
执行make STANDALONE=y或者 make
执行make命令后,会自动git各种所需组件,会花费相当长的一段时间。
作为参考,在海外阿里云主机上花费了约40min。
编译成功后,需要将路径添加到PATH中,并添加别名xgcc。export PATH= 安装路径/esp-open-sdk/xtensa-lx106-elf/bin:$PATH alias xgcc="xtensa-lx106-elf-gcc"
编译后,在esp-open-sdk目录下,可以看到各依赖包和乐鑫SDK的目录已经被生成。Sdk目录其实是一个符号链接,指向被下载的ESP8266_NONOS_SDK_V2.0.0_16_08_10。
参考链接:
http://www.esp8266.com/wiki/doku.php?id=toolchain#how_to_setup_a_vm_to_host_your_toolchain
相关文章推荐
- Moto Linux应用开发(-): Ubuntu上建立Moto E6交叉编译工具链
- arm-linux-gcc(4.6.1)交叉编译工具链的建立
- AT91RM9200引导程序的建立(一)--------建立交叉编译工具链
- CROSSTOOL-NG建立交叉编译工具链
- ARM交叉编译工具链的建立
- 用crosstool-ng建立arm交叉编译工具链
- AT91RM9200引导程序的建立(一)--------建立交叉编译工具链
- 如何建立交叉编译工具链
- AT91RM9200引导程序的建立(一)--------建立交叉编译工具链
- ARM-Linux交叉编译工具链的建立
- 如何建立交叉编译工具链
- 用crosstool-ng建立自己的ARM交叉编译工具链
- 关于LINUX运行交叉编译工具链后编译时出现No such file or directory
- Ubuntu 9.10上建立ARM-Linux交叉编译环境
- 简单谈谈Makefile和交叉编译工具链
- 制作交叉编译工具链的方法总结(详细)
- 如何为嵌入式开发建立交叉编译环境
- 如何为嵌入式开发建立交叉编译环境
- Ubuntu12.04下arm交叉编译环境的建立
- 嵌入式Linux实战篇--交叉编译环境的建立(基于ubuntu 8.10)