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再做二次開發。
參考資料
The post ESP8266 韌體 appeared first on 可丁丹尼 @ 一路往前走2.0.