日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

固件更新選項(xiàng)

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

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

使用定制引導(dǎo)程序可以為開發(fā)人員提供其應(yīng)用非常需要的靈活性,但很多無需開發(fā)人員工作量的應(yīng)用可以采用一種固件更新標(biāo)準(zhǔn):USB 標(biāo)準(zhǔn)的內(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é)點(diǎn)和STM32F429 Discovery 套件上的設(shè)備。

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

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

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

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

一個簡單的 DFU 示例

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

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

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

DFU 文件與二進(jìn)制格式、s-record 格式和十六進(jìn)制文件等其他應(yīng)用記錄格式非常相似。文件格式包括通過 USB 中繼轉(zhuǎn)發(fā)、處理、然后寫入閃存內(nèi)指定位置的地址和數(shù)據(jù)信息。該過程無縫連接,使開發(fā)人員很少(如果有的話)需要檢查正被使用的協(xié)議。這些都是在后臺進(jìn)行的,可幫助降低固件更新過程和開發(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 實(shí)用工具,可檢測已在 DFU 模式下通電并通過 USB 連接到計(jì)算機(jī)的任何 STM32 設(shè)備。開發(fā)人員可以檢索編程供應(yīng)商和產(chǎn)品 ID 等信息。如果沒有對閃存空間采取適當(dāng)?shù)陌踩Wo(hù),他們甚至可以復(fù)制 MCU 的存儲內(nèi)容并使用上傳操作框?qū)⑵浯鎯υ谟?jì)算機(jī)上。

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

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

只是因?yàn)槲⒖刂破鞑辉?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 的微控制器中進(jìn)行。開發(fā)人員可以決定更新固件的替代方法是否必要或更加實(shí)用。在這種背景下,開發(fā)人員應(yīng)記住關(guān)于其固件更新過程的幾個技巧。其中包括:

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

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

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

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

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

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

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

圖 5: NXP Semiconductor 的 KL46Z Freedom 板是一種低成本開發(fā)板,默認(rèn)不支持 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)準(zhǔn)中的經(jīng)過充分證明的 DFU 功能來快速、高效、毫不費(fèi)力的執(zhí)行現(xiàn)場升級。為了讓這個過程順利進(jìn)行,開發(fā)人員需要仔細(xì)檢查其微控制器并確定 DFU 是否已內(nèi)置到其微控制器中或者它們是否需要包括支持 DFU 功能的軟件堆棧。

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

    關(guān)注

    2313

    文章

    11195

    瀏覽量

    374757
  • STM32F429
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

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

    關(guān)注

    0

    文章

    4

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    【飛凌嵌入式RV1126B開發(fā)試用體驗(yàn)】初識飛凌嵌入式RV1126B開發(fā)

    這幾天剛收到飛凌嵌入式RV1126B開發(fā),帶大家先認(rèn)識一下這塊開發(fā),收到的開發(fā)如下圖。 開發(fā)有主板和核心
    發(fā)表于 04-13 17:27

    執(zhí)行 HSE 固件更新遇到的疑問求解

    我正在嘗試執(zhí)行 HSE 固件更新(0.2.6.0 → 0.2.55.0)。 使用HSE_DEMOAPP_S32K312_0_2_55_0程序,我按如下方式進(jìn)行。 1. 加載 menu.cmm 2.
    發(fā)表于 04-07 07:29

    Microchip發(fā)布專為NVIDIA DGX Spark而設(shè)計(jì)的MEC1723嵌入式控制器定制固件

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

    arm嵌入式主板優(yōu)缺點(diǎn)

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

    Renesas RZ/G3S SMARC模塊嵌入式設(shè)計(jì)的強(qiáng)大之選

    Renesas RZ/G3S SMARC模塊嵌入式設(shè)計(jì)的強(qiáng)大之選 在嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域,選擇一款性能卓越、功能豐富且易于集成的模塊至關(guān)重要。Renesas的RZ/G3S SMAR
    的頭像 發(fā)表于 12-29 10:30 ?584次閱讀

    探索 RENESAS EK - RX261 v1 評估套件:開啟嵌入式系統(tǒng)設(shè)計(jì)新旅程

    探索 RENESAS EK - RX261 v1 評估套件:開啟嵌入式系統(tǒng)設(shè)計(jì)新旅程 在嵌入式系統(tǒng)開發(fā)的廣闊領(lǐng)域中,一款優(yōu)秀的評估套件能夠極大地提升開發(fā)效率,幫助工程師快速驗(yàn)證設(shè)計(jì)理念
    的頭像 發(fā)表于 12-26 18:00 ?1752次閱讀

    探索 KIT_XMC71_EVK_LITE_V1 XMC7100 評估嵌入式開發(fā)新選擇

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

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

    OPTIGA? Trust Adapter:嵌入式安全解決方案評估利器 在嵌入式系統(tǒng)設(shè)計(jì)中,安全問題一直是工程師們關(guān)注的焦點(diǎn)。為了方便對OPTIGA?嵌入式安全解決方案進(jìn)行快速
    的頭像 發(fā)表于 12-19 11:50 ?498次閱讀

    系統(tǒng)嵌入式的學(xué)習(xí)路線

    嵌入式工程師相當(dāng)難,一方面要有非常扎實(shí)的理論知識,同時(shí)也要有相當(dāng)?shù)哪欠N大型的、高頻CPU、多層PCB的設(shè)計(jì)經(jīng)驗(yàn)。嵌入式硬件工程師要學(xué)的課程主要有模擬電路設(shè)計(jì)、數(shù)字電路設(shè)計(jì)、電磁波理論等。熟悉常用的放大電路、濾波電路、電源電路
    發(fā)表于 12-16 07:49

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

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

    嵌入式系統(tǒng)profinet轉(zhuǎn)devicenet固件與硬件接口的連接案例

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

    探索AVR64DD32 Curiosity Nano:一款強(qiáng)大的AVR DD系列評估平臺

    。AVR64DD32可輕松訪問AVR64DD32的特性,由MPLAB? X IDE和Microchip Studio提供支持,從而將該器件集成到定制設(shè)計(jì)中。Curiosity Nano評估
    的頭像 發(fā)表于 10-13 15:45 ?1021次閱讀
    探索<b class='flag-5'>AVR</b>64DD32 Curiosity Nano:一款強(qiáng)大的<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è)備、交通運(yùn)輸、消費(fèi)電子等眾多領(lǐng)域發(fā)揮著至關(guān)重要的作用。面對技術(shù)飛速發(fā)展和市場需求的不斷擴(kuò)大,如何選購合適的嵌入式
    的頭像 發(fā)表于 09-06 11:42 ?1804次閱讀

    飛凌嵌入式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é)者提供一份詳細(xì)的嵌入式開發(fā)入門指南,涵蓋學(xué)習(xí)路徑、必備工具、推薦資源等內(nèi)容。 1. 嵌入式系統(tǒng)的定義與應(yīng)用嵌入式系統(tǒng)
    發(fā)表于 05-15 09:29
    苍梧县| 美姑县| 宿松县| 会同县| 新乐市| 东乡县| 巴林左旗| 枞阳县| 迁安市| 酒泉市| 石渠县| 嘉善县| 莫力| 会昌县| 楚雄市| 安庆市| 成都市| 珲春市| 清镇市| 巴林左旗| 明光市| 大丰市| 曲麻莱县| 高邮市| 吉林市| 申扎县| 平度市| 麟游县| 潞城市| 泰来县| 房产| 綦江县| 渝北区| 株洲市| 光山县| 沂南县| 门头沟区| 大方县| 红桥区| 靖宇县| 汕头市|