日韩成人激情_欧美黑人xxx_国产一区二精品区在线_精品在线一区_97成人资源_久久久久久一区

產(chǎn)品分類

當(dāng)前位置: 首頁(yè) > 工業(yè)電子產(chǎn)品 > 半導(dǎo)體產(chǎn)品 > 微控制器MCU

類型分類:
科普知識(shí)
數(shù)據(jù)分類:
微控制器MCU

使用微控制器的 DFU 模式在現(xiàn)場(chǎng)更新固件

發(fā)布日期:2022-04-22 點(diǎn)擊率:77

幾乎所有的嵌入式系統(tǒng)都需要能夠在現(xiàn)場(chǎng)更新其固件,從而添加新特性或修復(fù)漏洞。然而,固件現(xiàn)場(chǎng)更新可能會(huì)頗具挑戰(zhàn)性,因?yàn)殚_(kāi)發(fā)人員必須編寫(xiě)自己的引導(dǎo)程序或從第三方元器件供應(yīng)商處購(gòu)買(mǎi)引導(dǎo)程序。

有一個(gè)較為簡(jiǎn)單的方法。本文將介紹如何使用很多微控制器都會(huì)內(nèi)置但通常會(huì)被忽視的設(shè)備固件更新 (DFU) 功能。

固件更新選項(xiàng)

從頭開(kāi)始開(kāi)發(fā)引導(dǎo)程序并非易事。開(kāi)發(fā)人員需要解析他們的閃存空間,以便多個(gè)應(yīng)用可以共存。然后,他們還需要開(kāi)發(fā)幾種方法在不使用編程工具的情況下將其編譯的二進(jìn)制程序轉(zhuǎn)移到微控制器中。這需要他們開(kāi)發(fā)自己的通信協(xié)議或者需要添加外部存儲(chǔ)器以存儲(chǔ)新映像而增加了系統(tǒng)的復(fù)雜性。他們還要增加其微控制器上的內(nèi)存容量。

同樣地,軟件本身也會(huì)變復(fù)雜,因?yàn)橐龑?dǎo)程序需要設(shè)置系統(tǒng)狀態(tài)及確定跳轉(zhuǎn)到應(yīng)用代碼是否安全。

使用定制引導(dǎo)程序可以為開(kāi)發(fā)人員提供其應(yīng)用非常需要的靈活性,但很多無(wú)需開(kāi)發(fā)人員工作量的應(yīng)用可以采用一種固件更新標(biāo)準(zhǔn):USB 標(biāo)準(zhǔn)的內(nèi)置設(shè)備固件更新 (DFU) 類。這可用于通過(guò)其 USB 端口在現(xiàn)場(chǎng)更新微控制器的應(yīng)用代碼,從而大大減少固件升級(jí)過(guò)程和開(kāi)發(fā)周期。

DFU 已經(jīng)普遍使用,這使得一些微控制器供應(yīng)商(如 STMicroelectronics)甚至都提供了執(zhí)行硬編碼到其 ROM 中的更新所需的軟件。那些沒(méi)有提供的,通常會(huì)提供如何支持 DFU 的示例代碼。

選擇適合 DFU 的微控制器

支持 DFU 的最簡(jiǎn)單方法是選擇一個(gè)已經(jīng)在其 ROM 中包含 DFU 的微控制器,如 STMicroelectronics 的 STM32 IoT Discovery 節(jié)點(diǎn)和 STM32F429 Discovery 套件上的設(shè)備。

STMicroelectro<em></em>nics STM32 IoT Discovery 節(jié)點(diǎn)的圖片

圖 1: STMicroelectronics STM32 IoT Discovery 節(jié)點(diǎn)基于運(yùn)行 STM32L475 MCU(其中包含用于固件更新的 DFU 模式功能)的 ARM? Cortex?-M4 核。此特定設(shè)備設(shè)計(jì)用作 IoT 節(jié)點(diǎn)。(圖片來(lái)源:STMicroelectronics)

STM32 IoT Discovery 節(jié)點(diǎn)是一種低成本開(kāi)發(fā)板,設(shè)計(jì)用作 IoT 傳感器節(jié)點(diǎn)。該開(kāi)發(fā)板包括幾個(gè)不同的接口,用于連接 Wi-Fi 和藍(lán)牙等板。讓人感興趣的是,板載 STM32L475 為開(kāi)發(fā)人員提供在設(shè)計(jì)用于連接互聯(lián)網(wǎng)的設(shè)備上測(cè)試和使用 DFU 功能的能力。

對(duì)于只想在獨(dú)立的正常設(shè)備上測(cè)試 DFU 的開(kāi)發(fā)人員來(lái)說(shuō),STM32F429 Discovery 套件是 STM32F4 系列微控制器的知名、低成本開(kāi)發(fā)套件。我們來(lái)討論開(kāi)發(fā)人員如何著手開(kāi)始在這些微控制器上測(cè)試 DFU。

STMicroelectro<em></em>nics STM32F429 Discovery 套件的圖片

圖 2: STMicroelectronics STM32F429 Discovery 套件 基于 ARM? Cortex?-M4 核。這個(gè)低成本開(kāi)發(fā)板的 MCU 還包括用于進(jìn)行固件更新的 DFU 模式功能。(圖片來(lái)源: STMicroelectronics)

一個(gè)簡(jiǎn)單的 DFU 示例

每個(gè)微控制器訪問(wèn) DFU 的方式都不同。通過(guò)一個(gè)簡(jiǎn)單的示例來(lái)看一看開(kāi)發(fā)人員如何在運(yùn)行 STM32L475 MCU 的設(shè)備上更新其固件。

如前所述,STM32 微控制器包括內(nèi)置到其 ROM 中的 DFU 引導(dǎo)程序。要訪問(wèn)該引導(dǎo)程序,開(kāi)發(fā)人員需要在 MCU 啟動(dòng)時(shí)拉動(dòng)其中一個(gè) BOOT 引腳將其接地。BOOT 引腳控制 MCU 啟動(dòng)時(shí)所處的模式,如從閃存、RAM 中啟動(dòng),或者我們首選的 DFU USB 模式。

使用 DFU 準(zhǔn)備要供用戶下載的應(yīng)用不需要開(kāi)發(fā)人員進(jìn)行任何額外的工作。GNU 編譯器收集 (GCC) 以及很多其他工具鏈支持在編譯應(yīng)用時(shí)生成 DFU 文件。在這里,開(kāi)發(fā)人員的唯一訣竅是確定該文件的存儲(chǔ)位置:跟所有典型應(yīng)用一樣,要找到 .dfu 文件,可以參見(jiàn)調(diào)試或?qū)ο笪募A。

DFU 文件與二進(jìn)制格式、s-record 格式和十六進(jìn)制文件等其他應(yīng)用記錄格式非常相似。文件格式包括通過(guò) USB 中繼轉(zhuǎn)發(fā)、處理、然后寫(xiě)入閃存內(nèi)指定位置的地址和數(shù)據(jù)信息。該過(guò)程無(wú)縫連接,使開(kāi)發(fā)人員很少(如果有的話)需要檢查正被使用的協(xié)議。這些都是在后臺(tái)進(jìn)行的,可幫助降低固件更新過(guò)程和開(kāi)發(fā)工作的復(fù)雜性。

開(kāi)發(fā)人員可以使用幾個(gè)不同的工具通過(guò) DFU 將他們的應(yīng)用轉(zhuǎn)移到微控制器中。dfu-util 是可以使用的一般命令行工具。它在 Linux 和 Windows? 上都以開(kāi)源軟件包形式提供。如果開(kāi)發(fā)人員使用 STM 工具鏈,他們就可以利用 STMicroelectronics 應(yīng)用 DfuSe(圖 3)。

STMicroelectro<em></em>nics DfuSe 工具的圖片

圖 3: STMicroelectronics DfuSe 工具可用于編程由 GCC 等編譯器生成并加載到適合 DFU 的微控制器中的 DFU 文件。(圖片來(lái)源:Beningo Embedded Group)

DfuSe 是 Windows GUI 實(shí)用工具,可檢測(cè)已在 DFU 模式下通電并通過(guò) USB 連接到計(jì)算機(jī)的任何 STM32 設(shè)備。開(kāi)發(fā)人員可以檢索編程供應(yīng)商和產(chǎn)品 ID 等信息。如果沒(méi)有對(duì)閃存空間采取適當(dāng)?shù)陌踩Wo(hù),他們甚至可以復(fù)制 MCU 的存儲(chǔ)內(nèi)容并使用上傳操作框?qū)⑵浯鎯?chǔ)在計(jì)算機(jī)上。

使用 DfuSe 時(shí),開(kāi)發(fā)人員一般只使用“升級(jí)”或“驗(yàn)證操作”部分。在此區(qū)域,開(kāi)發(fā)人員可以選擇其 DFU 應(yīng)用文件,然后選擇升級(jí)按鈕。然后,DfuSe 將自動(dòng)協(xié)調(diào)固件更新過(guò)程,直到整個(gè)文件已成功加載到 MCU。然后,開(kāi)發(fā)人員可以選擇驗(yàn)證映像已成功接收。一經(jīng)驗(yàn)證,BOOT 引腳就可以設(shè)置回其默認(rèn)配置,如引導(dǎo)至閃存,然后選擇‘離開(kāi) DFU’模式加載并執(zhí)行更新的固件。

在沒(méi)有 DFU 支持的設(shè)備上使用 DFU

只是因?yàn)槲⒖刂破鞑辉?ROM 內(nèi)提供 DFU 引導(dǎo)程序,并不意味著開(kāi)發(fā)人員仍不能利用 DFU 功能。DFU 屬于 USB 類,在很多 USB 堆棧中都受支持。這表示,開(kāi)發(fā)人員同樣能向其應(yīng)用框架簡(jiǎn)單的添加 DFU 功能,且仍能執(zhí)行 DFU 更新。

例如,Microchip Technology 的 AT32UC3A3 不具有內(nèi)置的 DFU 模式(圖 4)。開(kāi)發(fā)人員可以遵照描述 DFU 工作原理及開(kāi)發(fā)人員應(yīng)當(dāng)如何將其微控制器配置為適當(dāng)支持 DFU 的簡(jiǎn)單應(yīng)用說(shuō)明。

Atmel AT32UC3A3 UC3-A3 XPLD AVR?32 MCU 32 位 AVR 嵌入式評(píng)估板的圖片

圖 4: AT32UC3A3 UC3-A3 XPLD AVR?32 MCU 32 位 AVR 嵌入式評(píng)估板不包括片載 DFU,但可以添加上支持 DFU 固件更新特性的框架 USB 代碼。(圖片來(lái)源:Microchip Technology)

執(zhí)行固件更新的技巧和訣竅

在現(xiàn)場(chǎng)更新固件并不一定只能從適合 DFU 的微控制器中進(jìn)行。開(kāi)發(fā)人員可以決定更新固件的替代方法是否必要或更加實(shí)用。在這種背景下,開(kāi)發(fā)人員應(yīng)記住關(guān)于其固件更新過(guò)程的幾個(gè)技巧。其中包括:

  • 使用校驗(yàn)和或哈希驗(yàn)證將寫(xiě)入微控制器內(nèi)存的應(yīng)用。

  • 選擇內(nèi)存足夠的微控制器存儲(chǔ)固件的備份件,以便發(fā)生錯(cuò)誤時(shí)可以回滾固件版本。

  • 驗(yàn)證在微控制器具有內(nèi)置閃存加載程序時(shí),終端用戶不會(huì)意外觸發(fā)該程序。

  • 確保任何軟件引導(dǎo)程序均已編譯且針對(duì)尺寸進(jìn)行優(yōu)化。

  • 鎖定閃存外設(shè),使應(yīng)用無(wú)法從內(nèi)存中讀取出且不能被反向工程。

  • 務(wù)必確保棧指示器、向量表和程序計(jì)數(shù)寄存器均設(shè)置為適當(dāng)?shù)膽?yīng)用值。

  • 考慮按 KL46Z Freedom 板的演示使用采用了 USB MSD 的拖放更新之類的替代更新方法(圖 5)。

NXP Semico<em></em>nductor 的 KL46Z Freedom 板圖片

圖 5: NXP Semiconductor 的 KL46Z Freedom 板是一種低成本開(kāi)發(fā)板,默認(rèn)不支持 DFU。開(kāi)發(fā)人員可以使用 USB MSD 之類將新固件映像拖放到內(nèi)存中的替代更新方法。(圖片來(lái)源: NXP Semiconductor)

總結(jié)

幾乎所有嵌入式系統(tǒng)都需要在現(xiàn)場(chǎng)更新應(yīng)用代碼以避免回調(diào)的方法。從頭開(kāi)始創(chuàng)建引導(dǎo)程序或者修改現(xiàn)有引導(dǎo)程序可能會(huì)增加開(kāi)發(fā)周期的復(fù)雜性和集成問(wèn)題。

反之,開(kāi)發(fā)人員可以使用內(nèi)置到 USB 標(biāo)準(zhǔn)中的經(jīng)過(guò)充分證明的 DFU 功能來(lái)快速、高效、毫不費(fèi)力的執(zhí)行現(xiàn)場(chǎng)升級(jí)。為了讓這個(gè)過(guò)程順利進(jìn)行,開(kāi)發(fā)人員需要仔細(xì)檢查其微控制器并確定 DFU 是否已內(nèi)置到其微控制器中或者它們是否需要包括支持 DFU 功能的軟件堆棧。    

下一篇: 斷路器、隔離開(kāi)關(guān)、接

上一篇: 索爾維全系列Solef?PV

推薦產(chǎn)品

更多
主站蜘蛛池模板: 第四色播日韩第一页 | 九九久久99| 久久九九99 | 国产91在线 | 亚洲 | 中文字幕一区二区三区精彩视频 | 一区二区三区四区在线 | 午夜视频免费 | 久久午夜电影 | 亚洲精品在线播放 | 日韩欧美精品 | 午夜成人免费视频 | 91久久国产综合久久 | 欧美精品久久久久 | 国产在线一区二区 | 日韩成人免费视频 | 欧美日产国产成人免费图片 | 国产视频久久 | 亚洲精品在线视频 | 欧美日韩大陆 | 日韩欧美在线不卡 | www.日本国产 | 一本一道久久a久久精品综合 | 久久综合影院 | 精品在线一区 | 久草高清视频 | 国产精品69毛片高清亚洲 | 久久国产精品久久国产精品 | 99视频在线免费观看 | 日韩视频免费看 | 午夜视频一区二区 | 国产高清一区二区 | 超级碰在线 | 日韩第一区 | 久久综合伊人 | 日韩精品一二三 | 日韩电影中文字幕 | 日本aⅴ中文字幕 | 精品国产青草久久久久福利 | 国产精品美女久久久久久不卡 | 91精品久久久久久久久久 | 国产精品国产精品国产专区不卡 |