#|ESP8266 编译固件下载到NodeMCU开发板需要注意的问题

机智云上生成的固件下载进NodeMCU开发板一直不能正确运行,后来发现是编译选项的问题。
编译选项 ESP8266的SDK里的编译脚本ESP8266_RTOS_SDK\examples\project_template\gen_misc.sh中,提供了如下编译选项。

STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none) STEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin) STEP 3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz) STEP 4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT) STEP 5: choose spi size and map: 0= 512KB( 256KB+ 256KB) 2=1024KB( 512KB+ 512KB) 3=2048KB( 512KB+ 512KB) 4=4096KB( 512KB+ 512KB) 5=2048KB(1024KB+1024KB) 6=4096KB(1024KB+1024KB) 7=4096KB(2048KB+2048KB) not support ,just for compatible with nodeMCU board 8=8192KB(1024KB+1024KB) 9=16384KB(1024KB+1024KB)

SDK里的Default值分别为1=boot_v1.2+(即boot=new)0=eagle.flash.bin+eagle.irom0text.bin2=40MHz0=QIO0=512KB(256KB+256KB)
而在机智云上生成的固件里的编译脚本SoC_ESP8266_8M_source\app\gen_misc_1.sh中,注释了类似以上的编译选项,直接赋值默认值,Default值分别为boot=newapp=1spi_speed=40spi_mode=QIOspi_size_map=2
NodeMCU开发板固件编译时需要修改spi_mode=DIOspi_size_map=4
编译方法 重新编译固件可以使用以下三种方法。
VirtualBox
根据Espressif官网的文档ESP8266 SDK 入门指南(2a-esp8266-sdk_getting_started_guide_cn.pdf)3.3. ESP8266 ?具集,下载VirtualBox和虚拟机镜像,设置共享文件夹,在Lubuntu中运行编译脚本gen_misc.sh,选择正确的编译选项。
  • 编译前需要在控制台设置路径变量,指向 SDK 和 BIN 文件。
# 例如 export SDK_PATH=~/Share/ESP8266_RTOS_SDK export BIN_PATH=~/Share/ESP8266_RTOS_SDK/bin

  • 如果脚本运行出错,很大可能是没有将脚本从DOS格式转为UNIX格式,在VIM中键入:set ff=unix,保存后重新运行脚本。
Cygwin
可以在Windows下安装Cygwin,然后在Cygwin中运行编译脚本,同Lubuntu中相同。
  • Cygwin中也需要设置 SDK 和 BIN 的路径变量。
# 例如 export SDK_PATH=/cygdrive/e/ESP8266_RTOS_SDK/ export BIN_PATH=/cygdrive/e/ESP8266_RTOS_SDK/bin/

Eclipse
【#|ESP8266 编译固件下载到NodeMCU开发板需要注意的问题】使用安信可一体化开发环境最方便,教程在如何安装安信可一体化开发环境。
  1. Import 项目文件夹。
    #|ESP8266 编译固件下载到NodeMCU开发板需要注意的问题
    文章图片

    #|ESP8266 编译固件下载到NodeMCU开发板需要注意的问题
    文章图片

    #|ESP8266 编译固件下载到NodeMCU开发板需要注意的问题
    文章图片
  2. 修改 Build 路径和选项。
    #|ESP8266 编译固件下载到NodeMCU开发板需要注意的问题
    文章图片

    #|ESP8266 编译固件下载到NodeMCU开发板需要注意的问题
    文章图片

    #|ESP8266 编译固件下载到NodeMCU开发板需要注意的问题
    文章图片

    这里的值为COMPLIE=gcc BOOT=new APP=1 SPI_SPEED=40 SPI_MODE=DIO SPI_SIZE_MAP=4
  3. 编译项目。
    #|ESP8266 编译固件下载到NodeMCU开发板需要注意的问题
    文章图片

    #|ESP8266 编译固件下载到NodeMCU开发板需要注意的问题
    文章图片

    推荐阅读