此篇指南用来描述如何在 Ubuntu 下成功搭建 ESP8266_NONOS_SDK 编译环境。具体说明可参见 《ESP8266-NONOS-SDK 入门指南》。
此指南分为三部分:
- 环境配置步骤
- 补充说明
- 注意事项
1 环境配置步骤
请注意,此次环境配置需要使用 python v2.7 的环境。
1.1 克隆 SDK
git clone https://github.com/espressif/ESP8266_NONOS_SDK.git
git submodule update -f --init --recursive
1.2 设置 SDK 环境变量
export SDK_PATH=~/esp/esp8266-nonos-sdk/ESP8266_NONOS_SDK
1.3 获取工具链
使用旧版本的SDK(< 3.0),请使用工具链v4.8.5,如下所示:
1.4 设置 ESP8266-NONOS-SDK 工具链路径
export PATH="$HOME/esp/esp8266-nonos-sdk/opt-8266-nonos/xtensa-lx106-elf/bin:$PATH"
1.5 编译工程
~/esp/esp8266-nonos-sdk/ESP8266_NONOS_SDK
此路径下才可以编译对应的工程
例如要编译
ESP8266_NONOS_SDK/examples/IoT_Demo
例程,则将 IoT_Demo 文件拷贝到ESP8266_NONOS_SDK
目录下
然后进入到 ESP8266_NONOS_SDK/IoT_Demo 目录下
cd /home/esp8266/Share/ESP8266_NONOS_SDK/IoT_Demo
执行如下 命令即可编译:
./gen_misc.sh
若需要编译 ESP8266_NONOS_SDK/third_party
下的例程,则进入 ESP8266_NONOS_SDK/third_party
目录下,执行如下命令进行编译:**
例如要编译 ESP8266_NONOS_SDK/third_party/lwip
cd ESP8266_NONOS_SDK/third_party
./make_lib.sh lwip
2 补充说明
- 下面介绍切换 python 版本的指令:
- 查看 Python 环境
sudo update-alternatives --config python
- 设置 python 优先级
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 21
- 切换 Python 版本:
alias python=python2.7
- 查询 Python 版本
python --version
- 若出现权限问题,请执行如下命令:
sudo chmod 777 gen_misc.sh
- 若在配置编译选项时出现如下报错:
STEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin)
enter (0/1/2, default 0):
0
ignore boot
generate bin: eagle.flash.bin+eagle.irom0text.bin
spi speed: 40 MHz
spi mode: QIO
spi size: 2048KB
spi ota map: 1024KB + 1024KB
start...
make[1]: 进入目录“/home/caiguanhong/esp/esp8266-nonos-sdk/ESP8266_NONOS_SDK/IoT_Demo/user”
make[1]: *** 没有规则可制作目标“/opt/xtensa-lx106-elf-64/xtensa-lx106-elf/include/stdlib.h”,由“.output/eagle/debug/obj/user_httpserver.o” 需求。 停止。
make[1]: 离开目录“/home/caiguanhong/esp/esp8266-nonos-sdk/ESP8266_NONOS_SDK/IoT_Demo/user”
../Makefile:333: recipe for target '.subdirs' failed
make: *** [.subdirs] Error 2
可执行,
make clean
然后根据提示:
make -C user clean; make -C driver clean;
make[1]: 进入目录“/home/caiguanhong/esp/esp8266-nonos-sdk/ESP8266_NONOS_SDK/IoT_Demo/user”
rm -f -r .output/eagle/debug
make[1]: 离开目录“/home/caiguanhong/esp/esp8266-nonos-sdk/ESP8266_NONOS_SDK/IoT_Demo/user”
make[1]: 进入目录“/home/caiguanhong/esp/esp8266-nonos-sdk/ESP8266_NONOS_SDK/IoT_Demo/driver”
rm -f -r .output/eagle/debug
make[1]: 离开目录“/home/caiguanhong/esp/esp8266-nonos-sdk/ESP8266_NONOS_SDK/IoT_Demo/driver”
rm -f -r .output/eagle/debug
执行
make -C user clean
make -C driver clean
再进入到
IoT_Demo/driver
目录下,
执行
rm -f -r .output/eagle/debug
3 注意事项
- 在编译选项中选择的配置选项,应与您下载的 bin 保持一致。
- 请参考如下的配置来下载对应的 bin ,请根据实际的 Flash 大小选择。
① Flash size 8Mbit: 512KB+512KB
boot_v1.2+.bin 0x00000
user1.1024.new.2.bin 0x01000
esp_init_data_default.bin 0xfc000
blank.bin 0x7e000 & 0xfe000 (两个地址都需要下载 blank.bin)
② Flash size 16Mbit-C1: 1024KB+1024KB
boot_v1.2+.bin 0x00000
user1.2048.new.5.bin 0x01000
esp_init_data_default.bin 0x1fc000
blank.bin 0xfe000 & 0x1fe000 (两个地址都需要下载 blank.bin)