AT固件编译,应用广泛的Esp8266 AT固件是基于Non-OS SDK开发的,
为简单起见,这里编译的是Non-FOTA类型的固件, 通常也称Eagle固件。
也可以添加自己的AT命令,来支持业务逻辑。
1) 在NONOS目录下新建app目录,将examples/at下所有文件复制到该目录下
2) 因无须开启FOTA,所以AT升级功能并不必要,修改include/user_config.h文件
注释掉AT_CUSTOM_UPGRADE宏定义
3) 因生成的固件size会较大,
修改ld/eagle.app.v6.ld文件进行调整(乐鑫官方默认是200Kb),
将irom0_0_seg从原来的len = 0x5C000改为len = 0x6C000
(需ESP组模的flash大小配合)
4)执行bash gen_misc.sh按提示编译
或者,也可用如下命令直接编译
make COMPILE=gcc BOOT=none APP=0 SPI_SPEED=40 SPI_MODE=QIO SPI_SIZE_MAP=2
(ESP-01时为2, ESP12一般为4)
其中注意BOOT选择none,因为NOFOTA不需要boot,SPI_SIZE_MAP按所用ESP模组选择。选项如下:
SPI_SIZE_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)
5)编译成后后,SDK根目录下bin目录中会生成固件文件
eagle.flash.bin-------->0x00000
eagle.irom0text.bin---->0x10000
烧录后,串口输入AT+GMR即可看到版本信息。