你通過U盤、OTA遠程等方式下載的程序,其實你還是需要提前下載BootLoader程序,才能進一步下載APP程序。 今天就來說說通過OTA方式升級固件時,幾種Flash(閃存)劃分方式。
獨立型
所謂獨立型就是專門劃出一部分閃存(Flash)空間用來存儲引導(dǎo)程序(BootLoader)。
BootLoader:引導(dǎo)程序
Firmware A:應(yīng)用程序
Firmware B:下載備份程序
Firmware A區(qū)用來固定執(zhí)行應(yīng)用程序,當引導(dǎo)程序(BootLoader)將接收到的新固件存入到Firmware B區(qū),并校驗成功后,F(xiàn)irmware A區(qū)中的應(yīng)用程序?qū)⒈徊脸?,然后Firmware B區(qū)的新固件將寫入到Firmware A區(qū)中。 這種方式是比較常見的有一種,有Firmware B備份區(qū),使其下載更加安全。
嵌入型
嵌入型就是將引導(dǎo)程序(BootLoader)嵌入到應(yīng)用程序中去。
當引導(dǎo)程序(BootLoader)將接收到的新固件存儲到Firmware B區(qū),在校驗成功后,引導(dǎo)程序(BootLoader)將跳到Firmware B區(qū)去執(zhí)行應(yīng)用程序。
外掛型
外掛型就是 當MCU內(nèi)置Flash較小時,可以選擇外掛存儲芯片用來緩存新固件。引導(dǎo)程序(BootLoader)將新固件存儲到外掛存儲芯片中,當校驗成功后,F(xiàn)irmware A中的應(yīng)用程序?qū)⒈徊脸?,并被寫入外掛存儲芯片中的新固件?/span>
是不是根據(jù)需要,我們可以隨意劃分MCU的Flash空間呢? 當然不是,由于MCU的內(nèi)置Flash是以塊(Block)或者頁(Page)為最小擦除單位,我們劃分MCU內(nèi)置Flash空間時必須考慮到實際MCU的塊(Block)或者頁(Page)的大小。 現(xiàn)在我們以TMPM3H6FWFG來舉例說明“獨立型”的Flash劃分方式。從以下規(guī)格書中的信息可知,這顆MCU的內(nèi)置Flash大小為128KB,最小的擦除頁(Page)為4KB,最小的擦除塊(Block)為32KB。
根據(jù)以上信息,我們可以對這顆MCU的內(nèi)置Flash進行如下劃分:
以上只是對固件升級(OTA)中MCU的Flash空間劃分簡單探討一下,實際哪種方式更適合,還需要用戶自己去評估。
審核編輯 黃宇
-
mcu
+關(guān)注
關(guān)注
147文章
19160瀏覽量
404725 -
FlaSh
+關(guān)注
關(guān)注
10文章
1761瀏覽量
155940
發(fā)布評論請先 登錄
為什么無法刷新 MCU 鏈路固件?
如何為 S32DS 中的特定變量(RAM、閃存、數(shù)據(jù)閃存)強制使用特定內(nèi)存區(qū)域?
NOR Flash和NAND flash有什么區(qū)別
如何正確配置AG32 MCU,實現(xiàn)FLASH或者代碼加密?
CW32F030片上FLASH閃存存儲器物理區(qū)域的劃分
如何備份復(fù)制拷貝出ESP32/8266內(nèi)的固件程序
使用J-Flash來編程CW32 MCU
【道生物聯(lián)TKB-623評估板試用】固件更新方法
A25:MCU系統(tǒng)器件知識與應(yīng)用專題--MCU、EEPROM/FLASH和晶體/晶振知識及應(yīng)用案例
AURIX tc367通過 MCU SOTA 更新邏輯 IC 閃存是否可行?
請問在單個DAVE?項目中是否支持16kb閃存大小的 MCU 和 32kb 閃存大小的 MCU?
CX3無法將固件加載到SPI閃存如何解決?
什么是Flash閃存以及STM32使用NAND Flash
MCU固件幾種Flash(閃存)劃分方式
評論