我刚刚下载了最新的 SDK (esp_iot_sdk_v1.4.0_15_09_18.zip)。我无法让我的软件运行,所以我尝试编译并运行IoT_Demo代码。我正在使用带有 512K 字节 SPI 闪存的 ESP-01 模块。
下面展示了如何使用 gen_misc.sh 脚本编译和加载代码(esptool.py 用于在编译完成后加载代码)。
pja@vm-lubuntu:/opt/Espressif/esp_iot_sdk_v1.4.0/IoT_Demo.compile_ok$ ./gen_misc.sh
gen_misc.sh 版本 20150511
请按照以下步骤(1-5)生成特定的垃圾桶:
步骤1:选择启动版本(0=boot_v1.1, 1=boot_v1.2 , 2=无)
enter(0/1/2, 默认 2):
启动模式:无
第 2 步:选择 bin 生成(0=eagle.flash.bin eagle.irom0text.bin、1=user1.bin、2=user2.bin)
输入 (0/1/2,默认 0):
生成 bin:eagle.flash.bin eagle.irom0text.bin
步骤3:选择SPI速度(0=20MHz,1=26.7MHz,2=40MHz,3=80MHz)
输入 (0/1/2/3,默认 2):
spi 速度:40 MHz
步骤4:选择SPI模式(0=QIO,1=QOUT,2=DIO,3=DOUT)
输入 (0/1/2/3,默认 0):
SPI模式:QIO
第 5 步:选择 SPI 大小和映射
0= 512KB( 256KB+ 256KB)
2=1024KB( 512KB+ 512KB)
3=2048KB( 512KB+ 512KB)
4=4096KB( 512KB+ 512KB)
5=2048KB(1024KB+1024KB)
6=4096KB(1024KB+1024KB)
输入 (0/2/3/4/5/6,默认 0):
spi 大小:512KB
spi ota map: 256KB + 256KB
开始。。。
make[1]: Entering directory '/opt/Espressif/esp_iot_sdk_v1.4.0/IoT_Demo.compile_ok/user'
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-func
tions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_esp_platform_timer.c
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_webserver.c
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_light_adj.c
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_json.c
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_main.c
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_plug.c
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_devicefind.c
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_esp_platform.c
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_light.c
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_sensor.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_sensor.o -c user_sensor.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_light.o -c user_light.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_esp_platform.o -c user_esp_platform.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_devicefind.o -c user_devicefind.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_plug.o -c user_plug.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_main.o -c user_main.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_json.o -c user_json.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_light_adj.o -c user_light_adj.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_webserver.o -c user_webserver.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_esp_platform_timer.o -c user_esp_platform_timer.c
xtensa-lx106-elf-ar ru .output/eagle/debug/lib/libuser.a .output/eagle/debug/obj/user_sensor.o .output/eagle/debug/obj/user_light.o .output/eagle/debug/obj/user_esp_platform.o .output/eagle/debug/obj/user_devicefind.o .output/eagle/debug/obj/user_plug.o .output/eagle/debug/obj/user_main.o .output/eagle/debug/obj/user_json.o .output/eagle/debug/obj/user_light_adj.o .output/eagle/debug/obj/user_webserver.o .output/eagle/debug/obj/user_esp_platform_timer.o
xtensa-lx106-elf-ar:创建 .output/eagle/debug/lib/libuser.a
make[1]: Leaving directory '/opt/Espressif/esp_iot_sdk_v1.4.0/IoT_Demo.compile_ok/user'
make[1]: Entering directory '/opt/Espressif/esp_iot_sdk_v1.4.0/IoT_Demo.compile_ok/driver'
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../include -I ../../include -I ../../include/eagle i2c_master.c
依赖:xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../include -I ../../include -I ../../include/eagle key.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/key.o -c key.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -I include -I ./ -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/i2c_master.o -c i2c_master.c
xtensa-lx106-elf-ar ru .output/eagle/debug/lib/libdriver.a .output/eagle/debug/obj/key.o .output/eagle/debug/obj/i2c_master.o
xtensa-lx106-elf-ar: 创建 .output/eagle/debug/lib/libdriver.a
make[1]: Leaving directory '/opt/Espressif/esp_iot_sdk_v1.4.0/IoT_Demo.compile_ok/driver'
xtensa-lx106-elf-gcc -L../lib -nostdlib -T../ld/eagle.app.v6.ld -Wl,--no-check-sections -u call_user_start -Wl,-static -Wl,--start-group -lc -lgcc -lhal -lphy -lpp -lnet80211 -llwip -lwpa -lmain -ljson -lupgrade -lssl -lpwm -lsmartconfig user/.output/eagle/debug/lib/libuser.a driver/.output/eagle/debug/lib/libdriver.a -Wl,--end-group -o .output/eagle/debug/image/eagle.app.v6.out
!!!
无需启动。
生成eagle.flash.bin并连续eagle.irom0text.bin文件夹箱中。
eagle.flash.bin-------->0x00000
eagle.irom0text.bin---->0x40000
!!!
连接。。。
擦除闪光灯...
在0x00008c00写作...(100 %)
擦除闪光灯...
在0x00074100写作...(100 %)
离开。。。
pja@vm-lubuntu:/opt/espressif/esp_iot_sdk_v1.4.0/iot_demo.compile_ok$
在ESP8266调试 (UART1 TXD) 上使用串行终端时,我收到的只是
ets_main.c
我相信这意味着在0x00000或0x40000处找不到代码来执行引导加载程序。
我用 1.2 SDK (esp_iot_sdk_v1.2.0_15_07_03.zip) 尝试了同样的事情
调试端口显示
尾部 12
Chksum 0xea
HO 0 尾 12 室 4
负载 0x3ffe8000,LEN 3392,12 室
尾部 4
Chksum 0x63
负载 0x3ffe8d40,LEN 4508,房间 4
尾 8
Chksum 0xaa
CSUM 0xaa