美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区

產品分類

當前位置: 首頁 > 工業電子產品 > 半導體產品 > 微控制器MCU

類型分類:
科普知識
數據分類:
微控制器MCU

使用微控制器的 DFU 模式在現場更新固件

發布日期:2022-04-22 點擊率:102

幾乎所有的嵌入式系統都需要能夠在現場更新其固件,從而添加新特性或修復漏洞。然而,固件現場更新可能會頗具挑戰性,因為開發人員必須編寫自己的引導程序或從第三方元器件供應商處購買引導程序。

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

固件更新選項

從頭開始開發引導程序并非易事。開發人員需要解析他們的閃存空間,以便多個應用可以共存。然后,他們還需要開發幾種方法在不使用編程工具的情況下將其編譯的二進制程序轉移到微控制器中。這需要他們開發自己的通信協議或者需要添加外部存儲器以存儲新映像而增加了系統的復雜性。他們還要增加其微控制器上的內存容量。

同樣地,軟件本身也會變復雜,因為引導程序需要設置系統狀態及確定跳轉到應用代碼是否安全。

使用定制引導程序可以為開發人員提供其應用非常需要的靈活性,但很多無需開發人員工作量的應用可以采用一種固件更新標準:USB 標準的內置設備固件更新 (DFU) 類。這可用于通過其 USB 端口在現場更新微控制器的應用代碼,從而大大減少固件升級過程和開發周期。

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

選擇適合 DFU 的微控制器

支持 DFU 的最簡單方法是選擇一個已經在其 ROM 中包含 DFU 的微控制器,如 STMicroelectronics 的 STM32 IoT Discovery 節點和 STM32F429 Discovery 套件上的設備。

STMicroelectro<em></em>nics STM32 IoT Discovery 節點的圖片

圖 1: STMicroelectronics STM32 IoT Discovery 節點基于運行 STM32L475 MCU(其中包含用于固件更新的 DFU 模式功能)的 ARM? Cortex?-M4 核。此特定設備設計用作 IoT 節點。(圖片來源:STMicroelectronics)

STM32 IoT Discovery 節點是一種低成本開發板,設計用作 IoT 傳感器節點。該開發板包括幾個不同的接口,用于連接 Wi-Fi 和藍牙等板。讓人感興趣的是,板載 STM32L475 為開發人員提供在設計用于連接互聯網的設備上測試和使用 DFU 功能的能力。

對于只想在獨立的正常設備上測試 DFU 的開發人員來說,STM32F429 Discovery 套件是 STM32F4 系列微控制器的知名、低成本開發套件。我們來討論開發人員如何著手開始在這些微控制器上測試 DFU。

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

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

一個簡單的 DFU 示例

每個微控制器訪問 DFU 的方式都不同。通過一個簡單的示例來看一看開發人員如何在運行 STM32L475 MCU 的設備上更新其固件。

如前所述,STM32 微控制器包括內置到其 ROM 中的 DFU 引導程序。要訪問該引導程序,開發人員需要在 MCU 啟動時拉動其中一個 BOOT 引腳將其接地。BOOT 引腳控制 MCU 啟動時所處的模式,如從閃存、RAM 中啟動,或者我們首選的 DFU USB 模式。

使用 DFU 準備要供用戶下載的應用不需要開發人員進行任何額外的工作。GNU 編譯器收集 (GCC) 以及很多其他工具鏈支持在編譯應用時生成 DFU 文件。在這里,開發人員的唯一訣竅是確定該文件的存儲位置:跟所有典型應用一樣,要找到 .dfu 文件,可以參見調試或對象文件夾。

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

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

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

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

DfuSe 是 Windows GUI 實用工具,可檢測已在 DFU 模式下通電并通過 USB 連接到計算機的任何 STM32 設備。開發人員可以檢索編程供應商和產品 ID 等信息。如果沒有對閃存空間采取適當的安全保護,他們甚至可以復制 MCU 的存儲內容并使用上傳操作框將其存儲在計算機上。

使用 DfuSe 時,開發人員一般只使用“升級”或“驗證操作”部分。在此區域,開發人員可以選擇其 DFU 應用文件,然后選擇升級按鈕。然后,DfuSe 將自動協調固件更新過程,直到整個文件已成功加載到 MCU。然后,開發人員可以選擇驗證映像已成功接收。一經驗證,BOOT 引腳就可以設置回其默認配置,如引導至閃存,然后選擇‘離開 DFU’模式加載并執行更新的固件。

在沒有 DFU 支持的設備上使用 DFU

只是因為微控制器不在 ROM 內提供 DFU 引導程序,并不意味著開發人員仍不能利用 DFU 功能。DFU 屬于 USB 類,在很多 USB 堆棧中都受支持。這表示,開發人員同樣能向其應用框架簡單的添加 DFU 功能,且仍能執行 DFU 更新。

例如,Microchip Technology 的 AT32UC3A3 不具有內置的 DFU 模式(圖 4)。開發人員可以遵照描述 DFU 工作原理及開發人員應當如何將其微控制器配置為適當支持 DFU 的簡單應用說明。

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

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

執行固件更新的技巧和訣竅

在現場更新固件并不一定只能從適合 DFU 的微控制器中進行。開發人員可以決定更新固件的替代方法是否必要或更加實用。在這種背景下,開發人員應記住關于其固件更新過程的幾個技巧。其中包括:

  • 使用校驗和或哈希驗證將寫入微控制器內存的應用。

  • 選擇內存足夠的微控制器存儲固件的備份件,以便發生錯誤時可以回滾固件版本。

  • 驗證在微控制器具有內置閃存加載程序時,終端用戶不會意外觸發該程序。

  • 確保任何軟件引導程序均已編譯且針對尺寸進行優化。

  • 鎖定閃存外設,使應用無法從內存中讀取出且不能被反向工程。

  • 務必確保棧指示器、向量表和程序計數寄存器均設置為適當的應用值。

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

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

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

總結

幾乎所有嵌入式系統都需要在現場更新應用代碼以避免回調的方法。從頭開始創建引導程序或者修改現有引導程序可能會增加開發周期的復雜性和集成問題。

反之,開發人員可以使用內置到 USB 標準中的經過充分證明的 DFU 功能來快速、高效、毫不費力的執行現場升級。為了讓這個過程順利進行,開發人員需要仔細檢查其微控制器并確定 DFU 是否已內置到其微控制器中或者它們是否需要包括支持 DFU 功能的軟件堆棧。    

下一篇: 斷路器、隔離開關、接

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

推薦產品

更多
美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区


        亚洲国产精品精华液2区45| 91麻豆swag| 亚洲色图欧美在线| 国产精品国产三级国产专播品爱网 | 97超碰在线播放| 91视频在线看| 精品国产乱码一区二区三区四区| 麻豆av一区| 色婷婷香蕉在线一区二区| 欧美亚洲免费在线一区| 日韩一区二区三区av| 国产欧美一区二区精品婷婷| 亚洲欧美综合在线精品| 午夜激情久久久| 蓝色福利精品导航| 懂色av中文字幕一区二区三区 | 国产成人精品免费在线| 91欧美激情一区二区三区成人| 国产亚洲二区| 在线欧美日韩精品| 精品久久久久久亚洲综合网 | 日本一区二区三不卡| 日本精品视频一区二区三区| 制服丝袜中文字幕亚洲| 久久久不卡网国产精品二区| 亚洲综合偷拍欧美一区色| 国产在线精品免费av| 99电影网电视剧在线观看| 日韩欧美一区二区三区四区五区| 欧美日韩第一区日日骚| 国产精品美女久久久久久久网站| 午夜精品久久久久久久蜜桃app | 日本一区二区三区视频在线观看 | 久久亚洲午夜电影| 欧美三级在线视频| 欧美激情中文字幕一区二区| 奇米色777欧美一区二区| 99精品欧美一区| 一级二级三级欧美| 欧美xxxxxxxx| 首页国产欧美日韩丝袜| 99国产精品一区| 一区二区视频在线播放| 久久久久综合网| 老司机精品视频线观看86| 国产高清精品一区二区三区| 在线观看三级视频欧美| 国产精品美女久久久久aⅴ | www.久久久久久久久| 亚洲欧美日韩精品综合在线观看| www久久久久| 奇米色一区二区| 国产亚洲一区在线播放 | 性做久久久久久| 99精品久久只有精品| 色播五月激情综合网| 中文天堂在线一区| 福利电影一区二区| 色一区在线观看| 椎名由奈av一区二区三区| 高清在线成人网| 欧美三级欧美一级| 亚洲一级不卡视频| 国产三区精品| 久久亚洲欧美国产精品乐播| 蜜桃视频免费观看一区| 日韩在线第一区| 国产精品不卡在线| heyzo一本久久综合| 欧美天堂亚洲电影院在线播放| 亚洲激情自拍偷拍| 国产精品日韩一区二区 | 欧美刺激午夜性久久久久久久| 爽好多水快深点欧美视频| 久久精品综合一区| 国产亚洲人成网站| 成人激情av网| 日韩一级完整毛片| 国产剧情一区二区三区| 欧美四级电影在线观看| 日韩 欧美一区二区三区| 天天人人精品| 一区二区不卡在线播放 | 欧美福利一区二区| 另类专区欧美蜜桃臀第一页| 亚洲ai欧洲av| 亚洲一区二区三区四区的| 精品婷婷色一区二区三区蜜桃| 国产喂奶挤奶一区二区三区| 9久草视频在线视频精品| 日韩免费高清视频| 懂色av中文字幕一区二区三区| 在线成人高清不卡| 国产成人免费视频网站高清观看视频 | 亚洲欧洲一区二区在线播放| 99re在线观看| 国产精品久久久久久久久免费桃花 | 国产精品一区二区三区99| 欧洲生活片亚洲生活在线观看| 婷婷久久综合九色综合伊人色| 色噜噜狠狠色综合网| 亚洲在线视频网站| 一区二区三区的久久的视频| 午夜精彩视频在线观看不卡| 一区二区三区视频在线播放| 日本免费在线视频不卡一不卡二| 一区二区三区视频| 青草av.久久免费一区| 欧美性猛交xxxx黑人交| 国产精品123| 精品88久久久久88久久久| 91在线视频18| 国产精品美女久久久久久久久| 韩国成人av| 亚洲小少妇裸体bbw| 色噜噜久久综合| 韩国女主播一区二区三区| 91精品国产91久久久久久一区二区| 成人三级在线视频| 国产精品理论在线观看| 欧美一区二区三区四区在线观看地址| 亚洲综合清纯丝袜自拍| 色屁屁一区二区| 国产二区国产一区在线观看| 久久婷婷综合激情| 精品国产乱码久久久久久郑州公司| 一区二区三区四区在线| 欧美性猛交xxxx黑人交| av不卡免费电影| 亚洲人一二三区| 日本乱人伦aⅴ精品| 成人高清av在线| 亚洲欧美日韩在线| 日本乱人伦aⅴ精品| gogo大胆日本视频一区| 亚洲美女少妇撒尿| 欧美亚洲一区二区三区四区| www.欧美精品一二区| 夜夜嗨av一区二区三区网页| 欧美人牲a欧美精品| 国产精品一区二区av| 日本欧美韩国一区三区| 精品久久久久av影院| 日韩中文字幕av在线| 懂色av一区二区在线播放| 成人欧美一区二区三区黑人麻豆 | 亚洲欧洲99久久| 色素色在线综合| 99精彩视频| 免费高清成人在线| 国产欧美综合在线观看第十页| 一区高清视频| 444亚洲人体| 免费的成人av| 中文字幕一区免费在线观看| 欧美探花视频资源| 久久99导航| 成人aaaa免费全部观看| 亚洲国产日韩a在线播放性色| 欧美一区二区日韩| 日韩欧美在线观看强乱免费| 成人v精品蜜桃久久一区| 亚洲不卡在线观看| 久久噜噜亚洲综合| 欧美性猛片xxxx免费看久爱| 九九久久99| 成人污污视频在线观看| 亚洲国产欧美一区二区三区丁香婷| 精品乱人伦一区二区三区| 中日韩在线视频| 精品国产乱码久久久久久郑州公司| 国产乱一区二区| 天天综合日日夜夜精品| 欧美激情在线一区二区三区| 欧美巨大另类极品videosbest | 欧美图片一区二区三区| 精品久久精品久久| 国产91丝袜在线播放九色| 午夜伊人狠狠久久| 日韩美女精品在线| 国产校园另类小说区| 欧美日韩免费电影| 一区二区高清视频| 欧美主播一区二区三区美女 久久精品人| www.亚洲免费av| 国内一区二区在线| 日韩在线卡一卡二| 亚洲黄色录像片| 国产日韩高清在线| 精品国产污污免费网站入口 | 在线观看亚洲专区| 亚洲乱码一区二区三区| 精品国产一区二区三区麻豆小说 | 久久久久久国产精品mv| 99re成人精品视频| 成人综合在线网站| 国产高清在线观看免费不卡| 韩国欧美国产1区| 美女精品一区二区| 日本aⅴ精品一区二区三区 |