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

使用安信可一体化开发环境最方便,教程在如何安装安信可一体化开发环境

  1. Import 项目文件夹。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 修改 Build 路径和选项。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这里的值为COMPLIE=gcc BOOT=new APP=1 SPI_SPEED=40 SPI_MODE=DIO SPI_SIZE_MAP=4
  3. 编译项目。
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值