在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何選擇適合DFU的微控制器

工程師兵營 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-06-27 09:16 ? 次閱讀

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

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

固件更新選項

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

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

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

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

選擇適合 DFU 的微控制器

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

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

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

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

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

一個簡單的 DFU 示例

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

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

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

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

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

STMicroelectronics DfuSe 工具的圖片

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 務必確保棧指示器、向量表和程序計數(shù)寄存器均設置為適當?shù)膽弥怠?/p>

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

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

總結

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7627

    瀏覽量

    151768
  • NXP
    NXP
    +關注

    關注

    60

    文章

    1287

    瀏覽量

    184867
  • STM32
    +關注

    關注

    2270

    文章

    10918

    瀏覽量

    356821
收藏 人收藏

    評論

    相關推薦

    如何為嵌入式應用選擇合適的微控制器

    為嵌入式應用選擇合適的微控制器可能是一項至關重要的任務。不僅有各種各樣的技術選擇需要考慮,還有商業(yè)案例問題,如價格和交付時間可能會削弱項目。在項目或嵌入式系統(tǒng)應用程序開始時,很有可能在嵌入式系統(tǒng)
    發(fā)表于 12-21 17:58

    如何選擇最佳微控制器

    為產品選擇正確的微控制器可能是項令人怯步的任務。您不僅要思考許多技術特性,還要考慮成本和備貨時間等會削弱項目的業(yè)務方面問題。在項目初期,您會有立即動手的沖動,想要在商定系統(tǒng)的細節(jié)之前開始選擇
    發(fā)表于 01-26 07:29

    怎樣選擇適合工程需要的微控制器

    1.4 微控制器選型在項目的最初階段,首先需要解決的問題是選擇適合工程需要的微控制器。通常,選擇一款適合
    發(fā)表于 08-05 06:39

    如何去選擇適合工程需要的微控制器

    如何去選擇適合工程需要的微控制器呢?有哪些考慮因素呢?
    發(fā)表于 11-02 08:01

    OTP微控制器芯片選擇指南

    本內容提供了OTP微控制器芯片選擇指南
    發(fā)表于 06-24 11:07 ?37次下載
    OTP<b class='flag-5'>微控制器</b>芯片<b class='flag-5'>選擇</b>指南

    選擇最佳微控制器的10個步驟

    選擇最佳微控制器的10個步驟
    發(fā)表于 01-24 16:54 ?3次下載

    利用CPLD來替代微控制器的設計

    隨著低功耗 CPLD 的出現(xiàn),低功耗電子產品設計人員現(xiàn)在有新的選擇來實現(xiàn)以前由微控制器完成的多種功能。本白皮書討論什么時候適合采用 CPLD 來替代微控制器,什么時候可以采用 CPLD
    發(fā)表于 09-12 14:04 ?6次下載
    利用CPLD來替代<b class='flag-5'>微控制器</b>的設計

    如何選擇微控制器

    軟件架構和要求將顯著影響微控制器選擇。處理負擔是輕是重將決定是使用80MHz的DSP還是8MHz的8051。就像硬件一樣,記錄下所有要求非常重要。
    的頭像 發(fā)表于 08-21 09:02 ?1801次閱讀

    什么是微控制器?如何編程微控制器

    微控制器進行編程或刻錄意味著“將程序從編譯傳輸?shù)?b class='flag-5'>微控制器的存儲”。微控制器的程序通常是用C或匯編語言編寫的,最后編譯
    的頭像 發(fā)表于 08-21 15:40 ?1w次閱讀

    如何選擇最佳微控制器

    在對微控制器進行任何思考之前,硬件和軟件工程師應當先制定出系統(tǒng)的高水平規(guī)格,畫好框圖和流程圖,只有這時才有充足的信息對微控制器選擇做出理性的決定。達到這一階段時,可以遵循 10 個簡單步驟,確保做出正確的
    的頭像 發(fā)表于 02-18 14:10 ?1349次閱讀

    STM32-32位微控制器產品選擇指南

    STM32-32位微控制器產品選擇指南
    發(fā)表于 12-17 16:42 ?2次下載

    如何選擇適合DFU微控制器

    使用 DfuSe 時,開發(fā)人員一般只使用“升級”或“驗證操作”部分。在此區(qū)域,開發(fā)人員可以選擇DFU 應用文件,然后選擇升級按鈕。然后,DfuSe 將自動協(xié)調固件更新過程,直到整個文件已成功加載到 MCU。
    發(fā)表于 08-24 11:42 ?512次閱讀
    如何<b class='flag-5'>選擇</b><b class='flag-5'>適合</b><b class='flag-5'>DFU</b>的<b class='flag-5'>微控制器</b>

    AN3156_基于STM32微控制器引導程序的USB_DFU協(xié)議應用手冊

    AN3156_基于STM32微控制器引導程序的USB_DFU協(xié)議應用手冊
    發(fā)表于 11-21 17:07 ?3次下載
    AN3156_基于STM32<b class='flag-5'>微控制器</b>引導程序的USB_<b class='flag-5'>DFU</b>協(xié)議應用手冊

    選擇微控制器的幾個步驟和注意事項

    選擇合適的微控制器非常重要,它將直接影響到你的設計成果以及后續(xù)的開發(fā)過程。下面將介紹選擇微控制器的幾個步驟和注意事項。
    發(fā)表于 08-16 17:11 ?806次閱讀

    如何選擇微控制器

    干貨 | 如何選擇微控制器
    的頭像 發(fā)表于 09-21 17:23 ?682次閱讀
    主站蜘蛛池模板: 午夜影院免费体验| 国模龙园园私拍337p| 400部大量精品情侣网站| 天天在线免费视频| 丁香花在线电影小说观看| 免费视频爰爱太爽了| 色图视频| 777精品视频| 日本特黄绿像大片免费看| 亚洲射图| www.xxx.国产| 国产成人亚洲日本精品| 久久五月女厕所一区二区| 欧美日韩精品一区二区在线线| 手机精品在线| 性free3d| 五月婷婷丁香久久| 亚洲日韩色综合视频| 中文天堂在线视频| 99国产在线| 99久久精品免费看国产| 天堂va| 色噜噜色偷偷| 色www永久免费视频| 日本wwww色| 欧美精品videosex极品| 国产婷婷色一区二区三区| 国产三级在线看| 亚洲羞羞裸色私人影院| 亚洲精品系列| 成人激情视频网| xxxx日本在线播放免费不卡| 狂野欧美性猛交xxxx免费| 香蕉网影院在线观看免费| 国产操视频| 亚洲免费一| 国产精品久久久久久免费播放| 国产热视频| 日本色黄视频| 久草视频这里只有精品| 国产国产人免费人成免费视频|