项目简介
本项目提供用于构建完整独立SDK(包含工具链)的集成脚本,适用于基于Espressif ESP8266和ESP8266EX芯片的软件开发。SDK由Xtensa lx106架构工具链(完全开源)和部分开源的ESP8266 IoT SDK组成,覆盖从硬件准备到程序烧录的整个开发流程。
项目的主要特性和功能
- 工具链构建:基于多个开源项目构建Xtensa lx106架构的开源工具链。
- SDK集成:集成Espressif Systems的ESP8266 IoT SDK,部分库以二进制形式提供,可用于开发。
- 两种构建模式:支持工具链与供应商IoT SDK分开构建,许可更清晰;也支持合并构建完全独立的ESP8266 SDK,方便软件构建。
- 示例应用:提供示例应用程序,便于快速了解开发流程。
- 完整开发流程:涵盖硬件准备、开发环境搭建、程序编写、编译和烧录等环节。
安装使用步骤
前提条件
需GNU/POSIX系统(Linux、BSD、MacOSX、带Cygwin的Windows),安装标准GNU开发工具,如bash、gcc、binutils、flex、bison等。构建工具链的机器至少有1G可用RAM + 交换空间。
依赖安装
Debian/Ubuntu
Ubuntu 14.04:
bash
$ sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf \
flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial \
sed git unzip bash help2man wget bzip2
较新的Debian/Ubuntu版本可能需要:
bash
$ sudo apt-get install libtool-bin
MacOS
bash
$ 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"
此外,MacOS需要区分大小写的文件系统,可能需创建虚拟磁盘并在其上构建esp-open-sdk:
bash
$ sudo hdiutil create ~/Documents/case-sensitive.dmg -volname "case-sensitive" -size 10g -fs "Case-sensitive HFS+"
$ sudo hdiutil mount ~/Documents/case-sensitive.dmg
$ cd /Volumes/case-sensitive
构建项目
构建自包含的独立工具链 + SDK
bash
$ make STANDALONE=y
或直接使用默认选择:
bash
$ make
构建独立的Xtensa工具链并将ESP8266 SDK分开
bash
$ make STANDALONE=n
使用工具链
构建完成后,工具链(包含Xtensa HAL库)位于xtensa-lx106-elf/
子目录。将xtensa-lx106-elf/bin/
子目录添加到PATH
环境变量,以便执行xtensa-lx106-elf-gcc
等工具。构建结束会输出正确设置PATH
的命令。
若选择非独立SDK,运行编译器时需添加相应的包含和库目录标志:
bash
$ xtensa-lx106-elf-gcc -I$(THISDIR)/sdk/include -L$(THISDIR)/sdk/lib
使用独立SDK则无需额外的-I
和-L
标志。
示例应用
examples/
子目录包含示例应用程序,可使用esp-open-sdk构建。
更新项目
bash
$ make clean
$ git pull
$ git submodule sync
$ git submodule update --init
额外配置
可取消注释crosstool-config-overrides
文件中的CT_STATIC_TOOLCHAIN=y
来构建静态链接的工具链。该文件和/或Makefile中可能还有更多可微调的选项。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】