国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

AVR嵌入式評估板執行固件更新的技巧和訣竅

電子設計 ? 來源:互聯網 ? 作者:佚名 ? 2018-08-06 09:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

固件更新選項

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

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

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

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

選擇適合 DFU 的微控制器

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

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

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

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

圖 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)。

STMicroelectronics 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 的簡單應用說明。

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

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

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

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

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

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

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

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

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

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

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

總結

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

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

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

    關注

    2309

    文章

    11162

    瀏覽量

    373448
  • STM32F429
    +關注

    關注

    0

    文章

    40

    瀏覽量

    11988
  • DFU工具
    +關注

    關注

    0

    文章

    4

    瀏覽量

    3035
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Microchip發布專為NVIDIA DGX Spark而設計的MEC1723嵌入式控制器定制固件

    DGX Spark個人AI超級計算機定制設計的 MEC1723嵌入式控制器(EC)固件 ,進一步優化MEC1723 EC在NVIDIA DGX平臺上管理AI工作負載的能力。Microchip致力于通過
    的頭像 發表于 01-15 18:51 ?6.6w次閱讀
    Microchip發布專為NVIDIA DGX Spark而設計的MEC1723<b class='flag-5'>嵌入式</b>控制器定制<b class='flag-5'>固件</b>

    arm嵌入式主板優缺點

    嵌入式主板是嵌入在設備里面做控制、數據處理使用的CPU ,常見的有兩類,即基于X86的嵌入式主板和基于RISC的ARM 嵌入式主板。今天我
    發表于 01-08 07:08

    Renesas RZ/G3S SMARC模塊嵌入式設計的強大之選

    Renesas RZ/G3S SMARC模塊嵌入式設計的強大之選 在嵌入式系統設計領域,選擇一款性能卓越、功能豐富且易于集成的模塊至關重要。Renesas的RZ/G3S SMAR
    的頭像 發表于 12-29 10:30 ?352次閱讀

    探索 RENESAS EK - RX261 v1 評估套件:開啟嵌入式系統設計新旅程

    探索 RENESAS EK - RX261 v1 評估套件:開啟嵌入式系統設計新旅程 在嵌入式系統開發的廣闊領域中,一款優秀的評估套件能夠極大地提升開發效率,幫助工程師快速驗證設計理念
    的頭像 發表于 12-26 18:00 ?1336次閱讀

    探索 KIT_XMC71_EVK_LITE_V1 XMC7100 評估嵌入式開發新選擇

    探索 KIT_XMC71_EVK_LITE_V1 XMC7100 評估嵌入式開發新選擇 在嵌入式開發領域,一款合適的評估
    的頭像 發表于 12-19 16:15 ?434次閱讀

    OPTIGA? Trust Adapter:嵌入式安全解決方案評估利器

    OPTIGA? Trust Adapter:嵌入式安全解決方案評估利器 在嵌入式系統設計中,安全問題一直是工程師們關注的焦點。為了方便對OPTIGA?嵌入式安全解決方案進行快速
    的頭像 發表于 12-19 11:50 ?335次閱讀

    系統嵌入式的學習路線

    嵌入式工程師相當難,一方面要有非常扎實的理論知識,同時也要有相當的那種大型的、高頻CPU、多層PCB的設計經驗。嵌入式硬件工程師要學的課程主要有模擬電路設計、數字電路設計、電磁波理論等。熟悉常用的放大電路、濾波電路、電源電路
    發表于 12-16 07:49

    嵌入式和FPGA的區別

    開發中做出更明智的技術選擇。 基本概念解析 嵌入式系統(Embedded System)是一種專用計算機系統,通常包含微處理器/微控制器、存儲器和專用外圍設備,被設計用于執行特定功能。它強調
    發表于 11-19 06:55

    嵌入式系統profinet轉devicenet固件與硬件接口的連接案例

    與貨物信息采集。核心需求是基于網關的嵌入式固件,實現硬件接口的適配與數據的高效處理。 Profinet從站(網關)與西門子PLC的博圖組態步驟 硬件接口與固件版本確認:打開TIAPortalV17
    的頭像 發表于 11-18 14:11 ?1035次閱讀
    <b class='flag-5'>嵌入式</b>系統profinet轉devicenet<b class='flag-5'>固件</b>與硬件接口的連接案例

    探索AVR64DD32 Curiosity Nano:一款強大的AVR DD系列評估平臺

    AVR64DD32可輕松訪問AVR64DD32的特性,由MPLAB? X IDE和Microchip Studio提供支持,從而將該器件集成到定制設計中。Curiosity Nano評估
    的頭像 發表于 10-13 15:45 ?774次閱讀
    探索<b class='flag-5'>AVR</b>64DD32 Curiosity Nano:一款強大的<b class='flag-5'>AVR</b> DD系列<b class='flag-5'>評估</b>平臺

    2025年嵌入式核心選型指南與應用方案解析

    嵌入式核心作為現代化智能設備和物聯網設備的“核心大腦”,在工業控制、智能制造、醫療設備、交通運輸、消費電子等眾多領域發揮著至關重要的作用。面對技術飛速發展和市場需求的不斷擴大,如何選購合適的嵌入式
    的頭像 發表于 09-06 11:42 ?1405次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-Uboot

    上節中講到U-Boot是BootLoader的一種,U-Boot全稱為Universal Boot Loader,即通用的BootLoader,所謂通用就是指它適用于多種嵌入式平臺,包括不同CPU
    發表于 05-22 10:44

    嵌入式開發入門指南:從零開始學習嵌入式

    隨著物聯網、智能硬件的發展,嵌入式開發成為熱門技能之一。以下將為初學者提供一份詳細的嵌入式開發入門指南,涵蓋學習路徑、必備工具、推薦資源等內容。 1. 嵌入式系統的定義與應用嵌入式系統
    發表于 05-15 09:29

    如何用RK3506核心自研一款嵌入式工業網關?

    飛凌嵌入式RK3506核心做工業網關
    的頭像 發表于 03-19 16:32 ?2082次閱讀
    如何用RK3506核心<b class='flag-5'>板</b>自研一款<b class='flag-5'>嵌入式</b>工業網關?

    大賽報名|飛凌嵌入式攜手瑞芯微成為2025年全國大學生嵌入式大賽命題企業

    中設立專屬賽題。本次嵌入式大賽,雙方選用基于瑞芯微RK3588芯片設計的ELF2開發作為參賽平臺,旨在通過此次合作,促進產教融合,共同推動嵌入式系統創新人才的培
    的頭像 發表于 03-14 10:46 ?1789次閱讀
    大賽報名|飛凌<b class='flag-5'>嵌入式</b>攜手瑞芯微成為2025年全國大學生<b class='flag-5'>嵌入式</b>大賽命題企業