ESP8266 韧体
韧体类型
ESP必需透过外接SPI介面的FLASH才能运作,搭配SDK的关系,对于FLASH有对应的布局,所以支援几种FLASH容量:512Kbytes、1024Kbytes、2048Kbytes、4096Kbytes,总共四种容量,其中官方也将SDK分为Non-FOTA、FOTA(Firmware On The Air),字面的意思是FOTA指可以透过网路线上更新,Non-FOTA无法透过网路更新,必需要透过连接的方式更新,下面针对于这两种提供官方的布局表:
Non-FOTA
FOTA
官方将韧体分成数多的小档,每个档案都对应到其烧录的位址,如果需要更新韧体时就必需要依照Flash容量查表得知各档案的写入位址进行写入,第一次需每个都写入完成,第二次更新时只需要依照有变动的档案执行更新写入,像FOTA来说,它只更新程式码的区段并写入user2.bin
,待ESP重开机后执行boot.bin
程式内容再根据boot.bin
程式内容的规则再将user2.bin
程式内容搬移至user1.bin
位址后再执行user1.bin
。
整合型韧体
韧体类型除了分为Non-FOTA
、FOTA
之外,在烧录时必需要准备非常多的档案,因此在某些客制化韧体提供者会将所有的档案整合成单一档适合Flash容量大小的档案,如此一来在烧录时只需要指定位址从0x00000
开始烧录至整个Flash,例如安信可提供的韧体档案会根据出货的2种容量大小1024KBytes(8Mbits)
、4096Kbytes(32Mbits)
:
Ai-Thinker_ESP8266_DIO_8Mbit_AiCloud_0.0.0.5_20170324.bin
Ai-Thinker_ESP8266_DIO_32Mbit_AiCloud_0.0.0.5_20170324.bin
烧录时就只需要指定位址为0X00000
进行烧录,这样的好处是可以避免位址指定错误,但缺点是未来有更新档必需要再重新烧录一次,而不是只需要更新部分内容,这可能会让升级过程增加许多的时间。
上图为安信可韧体档中提供烧录1024Kbytes(8Mbits)的设定画面撷图
对于韧体的格式跟种类有些许了解后,对于接下来使用软体更新韧体时就会比较了解设定些什么。
官方韧体
官方因应各种应用,所以提供一种以AT
命令的官方韧体,透过官方提供的AT
命令来使用ESP进行网路应用,许多客制化韧体也是以此为基础增加许多客制化的AT
命令,像安信可就是一个非常好的例子, 它提供许多客制化的命令像:AT+CIOREAD
来读取I/O状态及AT+CIOADC
读取ADC类比转数位的值,透过这些客制化的命令就能变化出许多功能,不需要自已透过SDK再做二次开发。