欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: STM32F7利用USB DFU實現(xiàn)IAP功能詳解 [打印本頁]

作者: endlesscode    時間: 2018-11-16 18:07
標(biāo)題: STM32F7利用USB DFU實現(xiàn)IAP功能詳解
前言
伴隨著固件升級需求的增加,STM32提供了靈活的升級方式。本文一步一步介紹如何利用 USB DFU Class以及 ST提供的DfuSe demo軟件工具實現(xiàn) IAP(In Application Program)功能,但并不涉及到 DFU class移植。

一 實現(xiàn)環(huán)境
開發(fā)板:STM32F746G-DISCO
開發(fā)庫:STM32CubeF7 v1.3.0
集成開發(fā)環(huán)境:IAR  v7.70.1.11486
               :MDK-ARM Plus v5.20.0.0 (只需兩者中一種)
優(yōu)化級別 : High (IAR)
          Level 3 (-O3) (MDK-ARM)
DFU演示軟件: Dfu file manager v3.0.5
       DfuSeDemo v3.0.5  

實現(xiàn)過程在 STM32F7系列上展開,但 USB DFU實現(xiàn)的 IAP功能并不只局限于 STM32F7系列,可以通過用戶手冊判斷所采用微控制器型號是否支持 USB以及 IAP功能。STM32Cube開發(fā)庫為各系列 STM32提供了齊全的 USB DFU例程可供參考。

二 IAP 介紹
IAP(In application program)主要為使用者提供了一種更加靈活的固件升級方式,可以根據(jù)應(yīng)用需要定義何時、何種情況發(fā)生時進(jìn)行固件升級。在介紹步驟前,需要對 IAP原理有一定認(rèn)識。結(jié)合下圖(僅供參考,IAP實際應(yīng)用方式更加靈活),IAP的應(yīng)用中,用戶程序與 IAP驅(qū)動程序位于不同的存儲區(qū)域。在應(yīng)用過程中,利用 IAP驅(qū)動程序?qū)⒂脩艄碳虞d到固定位置,完成升級。更多關(guān)于 IAP應(yīng)用介紹請參考 AN3965。
其中,IAP驅(qū)動程序首先燒錄固化,并不會隨著用戶程序的升級而改變。用戶固件升級完畢后,在 IAP驅(qū)動程序引導(dǎo)下,跳轉(zhuǎn)到用戶固件對應(yīng) Flash位置,執(zhí)行用戶程序。

三 實現(xiàn)步驟
3.1 DFU 工具安裝
安裝 DFU demo工具 DfuSe v3.0.5,主要提供了驅(qū)動、Dfu file manager 和 DfuSeDemo。關(guān)于 DfuSe的詳細(xì)內(nèi)容(安裝步驟、使用介紹)請參考 UM0412。

3.2 IAP 驅(qū)動固件生成與裝載
利用 STM32CubeF7 v1.3.0開發(fā)庫提供的 USB DFU例程生成 IAP驅(qū)動固件(文件夾路徑: …\
STM32Cube_FW_F7_V1.3.0\Projects\STM32746G-Discovery\Applications\USB_Device\ DFU_Standalone)。
利用燒錄工具燒錄到開發(fā)板中。本例程實現(xiàn)重啟后,如果板上 User按鍵按下或者沒有有效的用戶應(yīng)用程序,則進(jìn)入 USB DFU模式,等待升級;否則,進(jìn)入用戶應(yīng)用。

下面是摘取的部分例程。

用戶固件對應(yīng)的首地址被定義在 0x08008000。用戶也可以自定義地址,需要注意如下幾點:
1.  禁止定義在 0x08008000地址前(STM32F7系列,0x0~0x0800FFFF屬于 Sector0,已經(jīng)開辟為 IAP驅(qū)動程序區(qū)域)
2.  自定義地址所屬 Sector在升級時會全部擦除,即使定義地址并不位于對應(yīng) Sector的首地址
3.  自定義地址需要保持 512-byte對齊
4.  自定義地址需要與用戶固件對應(yīng)的裝載地址以及用戶中斷向量表地址保持一致
在實現(xiàn)跳轉(zhuǎn)到用戶程序的代碼中,將用戶中斷向量表中第一個 4字節(jié)指向的棧首地址分配給 MSP。第二個 4字節(jié)為復(fù)位中斷向量,指向執(zhí)行首地址。  
在開發(fā) IAP驅(qū)動程序時,需要避免 PC指針跳到用戶程序區(qū)域。同時,充分考慮 Stack & Heap大小,避免出現(xiàn) USB DFU正常識別,但不能正常工作情況,如下圖所示。

完整的pdf格式文檔51黑下載地址(共8頁):
stm32F7利用 USB DFU 實現(xiàn) IAP 功能.pdf (729.52 KB, 下載次數(shù): 66)







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1