1. ESP8266固件的编译(交叉编译工具链的建立)

【本文为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) 交叉编译器自身

   https://github.com/jcmvbkbc/crosstool-NG
   https://github.com/jcmvbkbc/gcc-xtensa
   https://github.com/jcmvbkbc/newlib-xtensa
   https://github.com/tommie/lx106-hal

2) 乐鑫官方提供的IoT SDK

   http://bbs.espressif.com/viewforum.php?f=46

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章