chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

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

電子設(shè)計 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-08-06 09:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

固件更新選項

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

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

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

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

選擇適合 DFU 的微控制器

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

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

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

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

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

一個簡單的 DFU 示例

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

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

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

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

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

STMicroelectronics DfuSe 工具的圖片

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

總結(jié)

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

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

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

    關(guān)注

    2305

    文章

    11118

    瀏覽量

    370883
  • STM32F429
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    11788
  • DFU工具
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    嵌入式和FPGA的區(qū)別

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

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

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

    2025年嵌入式核心選型指南與應(yīng)用方案解析

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

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

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

    嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式

    隨著物聯(lián)網(wǎng)、智能硬件的發(fā)展,嵌入式開發(fā)成為熱門技能之一。以下將為初學(xué)者提供一份詳細的嵌入式開發(fā)入門指南,涵蓋學(xué)習(xí)路徑、必備工具、推薦資源等內(nèi)容。 1. 嵌入式系統(tǒng)的定義與應(yīng)用嵌入式系統(tǒng)
    發(fā)表于 05-15 09:29

    如何用RK3506核心自研一款嵌入式工業(yè)網(wǎng)關(guān)?

    飛凌嵌入式RK3506核心做工業(yè)網(wǎng)關(guān)
    的頭像 發(fā)表于 03-19 16:32 ?1775次閱讀
    如何用RK3506核心<b class='flag-5'>板</b>自研一款<b class='flag-5'>嵌入式</b>工業(yè)網(wǎng)關(guān)?

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

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

    使用Lattice mVision打造嵌入式視覺系統(tǒng)解決方案

    嵌入式視覺是嵌入式系統(tǒng)與機器視覺技術(shù)的集合,嵌入式視覺系統(tǒng)硬件集成攝像頭模組和處理,將圖像捕獲和圖像處理功能結(jié)合在一臺設(shè)備中。
    的頭像 發(fā)表于 03-06 16:09 ?1196次閱讀

    嵌入式主板的概述與發(fā)展

    未來發(fā)展趨勢進行深入探討。嵌入式主板的基本概念嵌入式主板是指為嵌入式系統(tǒng)設(shè)計的電路,它通常集成了微處理器、內(nèi)存、輸入輸出接口等關(guān)鍵組件。與一般的計算機主板相比,嵌
    的頭像 發(fā)表于 01-13 16:30 ?1116次閱讀
    <b class='flag-5'>嵌入式</b>主板的概述與發(fā)展

    MPU在嵌入式系統(tǒng)中的應(yīng)用

    一、MPU的基本功能 微處理器單元(MPU)是嵌入式系統(tǒng)中的大腦,負責(zé)執(zhí)行程序指令、處理數(shù)據(jù)和控制其他硬件設(shè)備。MPU的基本功能包括: 指令執(zhí)行:MPU能夠從存儲器中讀取指令,解碼這些指令,并
    的頭像 發(fā)表于 01-08 09:26 ?1470次閱讀

    ARM架構(gòu)嵌入式主板特點

    嵌入式主板可以理解為嵌入在設(shè)備中用于控制和數(shù)據(jù)處理的CPU,也就是設(shè)備的“大腦”。當(dāng)主板嵌入到設(shè)備中,當(dāng)然對主板的體積和功耗會有更嚴格的要求(嵌入
    的頭像 發(fā)表于 12-31 16:03 ?1781次閱讀
    ARM架構(gòu)<b class='flag-5'>嵌入式</b>主板特點

    新手怎么學(xué)嵌入式?

    操作 實踐是學(xué)習(xí)嵌入式技術(shù)的關(guān)鍵。你可以購買一些低成本的嵌入式開發(fā)板,如 Arduino 或 Raspberry Pi。這些開發(fā)具有豐富的資源和簡單易懂的文檔,非常適合初學(xué)者。通過在開發(fā)
    發(fā)表于 12-12 10:51

    如何使用 RISC-V 進行嵌入式開發(fā)

    、準備開發(fā)環(huán)境 選擇開發(fā) :RISC-V架構(gòu)的嵌入式開發(fā)板有多種選擇,如GD32VF103R-START、飛凌嵌入式OK113i-S等。選擇時需要考慮開發(fā)的性能、外設(shè)接口、價格以及
    的頭像 發(fā)表于 12-11 17:32 ?2717次閱讀

    什么是嵌入式人工智能

    嵌入式人工智能是指將人工智能技術(shù)應(yīng)用于嵌入式系統(tǒng)中的一種技術(shù)。嵌入式系統(tǒng)是嵌入到其他設(shè)備或系統(tǒng)中的計算機系統(tǒng),通常用于控制、監(jiān)測或執(zhí)行特定任
    的頭像 發(fā)表于 12-11 09:23 ?1491次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工智能

    為何ZLG致遠電子要推出LGA嵌入式核心?

    導(dǎo)讀LGA嵌入式核心究竟有什么好?能讓ZLG致遠電子陸續(xù)推出了5個系列12個型號的LGA嵌入式核心。到目前為止,ZLG致遠電子一共推出了M1106/M1107、M1126、M6Y2
    的頭像 發(fā)表于 11-30 01:04 ?996次閱讀
    為何ZLG致遠電子要推出LGA<b class='flag-5'>嵌入式</b>核心<b class='flag-5'>板</b>?