幾乎所有的嵌入式系統(tǒng)都需要能夠在現(xiàn)場(chǎng)更新其固件,從而添加新特性或修復(fù)漏洞。然而,固件現(xiàn)場(chǎng)更新可能會(huì)頗具挑戰(zhàn)性,因?yàn)殚_發(fā)人員必須編寫自己的引導(dǎo)程序或從第三方元器件供應(yīng)商處購買引導(dǎo)程序。
有一個(gè)較為簡(jiǎn)單的方法。本文將介紹如何使用很多微控制器都會(huì)內(nèi)置但通常會(huì)被忽視的設(shè)備固件更新 (DFU) 功能。
固件更新選項(xiàng)
從頭開始開發(fā)引導(dǎo)程序并非易事。開發(fā)人員需要解析他們的閃存空間,以便多個(gè)應(yīng)用可以共存。
然后,他們還需要開發(fā)幾種方法在不使用編程工具的情況下將其編譯的二進(jìn)制程序轉(zhuǎn)移到微控制器中。
這需要他們開發(fā)自己的通信協(xié)議或者需要添加外部存儲(chǔ)器以存儲(chǔ)新映像而增加了系統(tǒng)的復(fù)雜性。他們還要增加其微控制器上的內(nèi)存容量。
同樣地,軟件本身也會(huì)變復(fù)雜,因?yàn)橐龑?dǎo)程序需要設(shè)置系統(tǒng)狀態(tài)及確定跳轉(zhuǎn)到應(yīng)用代碼是否安全。
DFU 已經(jīng)普遍使用,這使得一些微控制器供應(yīng)商(如 STMicroelectronics)甚至都提供了執(zhí)行硬編碼到其 ROM 中的更新所需的軟件。那些沒有提供的,通常會(huì)提供如何支持 DFU 的示例代碼。
選擇適合 DFU 的微控制器
支持 DFU 的最簡(jiǎn)單方法是選擇一個(gè)已經(jīng)在其 ROM 中包含 DFU 的微控制器,如 STMicroelectronics 的 STM32 IoT Discovery 節(jié)點(diǎn)和 STM32F429 Discovery 套件上的設(shè)備。
STM32 IoT Discovery 節(jié)點(diǎn)是一種低成本開發(fā)板,設(shè)計(jì)用作 IoT 傳感器節(jié)點(diǎn)。該開發(fā)板包括幾個(gè)不同的接口,用于連接 Wi-Fi 和藍(lán)牙等板。
讓人感興趣的是,板載 STM32L475 為開發(fā)人員提供在設(shè)計(jì)用于連接互聯(lián)網(wǎng)的設(shè)備上測(cè)試和使用 DFU 功能的能力。
對(duì)于只想在獨(dú)立的正常設(shè)備上測(cè)試 DFU 的開發(fā)人員來說,STM32F429 Discovery 套件是 STM32F4 系列微控制器的知名、低成本開發(fā)套件。我們來討論開發(fā)人員如何著手開始在這些微控制器上測(cè)試 DFU。
一個(gè)簡(jiǎn)單的 DFU 示例
每個(gè)微控制器訪問 DFU 的方式都不同。通過一個(gè)簡(jiǎn)單的示例來看一看開發(fā)人員如何在運(yùn)行 STM32L475 MCU 的設(shè)備上更新其固件。
如前所述,STM32 微控制器包括內(nèi)置到其 ROM 中的 DFU 引導(dǎo)程序。要訪問該引導(dǎo)程序,開發(fā)人員需要在 MCU 啟動(dòng)時(shí)拉動(dòng)其中一個(gè) BOOT 引腳將其接地。BOOT 引腳控制 MCU 啟動(dòng)時(shí)所處的模式,如從閃存、RAM 中啟動(dòng),或者我們首選的 DFU USB 模式。(更多詳細(xì)內(nèi)容請(qǐng)點(diǎn)擊閱讀原文)
-
控制器
+關(guān)注
關(guān)注
114文章
17098瀏覽量
184191 -
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3681瀏覽量
131355
原文標(biāo)題:五分鐘教你輕松選擇適合DFU的微控制器
文章出處:【微信號(hào):elecfans,微信公眾號(hào):電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
MAX7800X AI 微控制器開發(fā)人員資源

家用電器開發(fā)中微控制器的選型要點(diǎn)

一文認(rèn)識(shí)ARM微控制器及瑞薩RA系列MCU

新唐科技推出專為高溫度環(huán)境設(shè)計(jì)的微控制器
FPGA 與微控制器優(yōu)缺點(diǎn)比較
嵌入式系統(tǒng)中微控制器與微處理器的區(qū)別

ESP32 微控制器系列指南


評(píng)論