久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7903|回復: 0
打印 上一主題 下一主題
收起左側

STM32F7利用USB DFU實現IAP功能詳解

[復制鏈接]
跳轉到指定樓層
樓主
前言
伴隨著固件升級需求的增加,STM32提供了靈活的升級方式。本文一步一步介紹如何利用 USB DFU Class以及 ST提供的DfuSe demo軟件工具實現 IAP(In Application Program)功能,但并不涉及到 DFU class移植。

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

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

二 IAP 介紹
IAP(In application program)主要為使用者提供了一種更加靈活的固件升級方式,可以根據應用需要定義何時、何種情況發生時進行固件升級。在介紹步驟前,需要對 IAP原理有一定認識。結合下圖(僅供參考,IAP實際應用方式更加靈活),IAP的應用中,用戶程序與 IAP驅動程序位于不同的存儲區域。在應用過程中,利用 IAP驅動程序將用戶固件加載到固定位置,完成升級。更多關于 IAP應用介紹請參考 AN3965。
其中,IAP驅動程序首先燒錄固化,并不會隨著用戶程序的升級而改變。用戶固件升級完畢后,在 IAP驅動程序引導下,跳轉到用戶固件對應 Flash位置,執行用戶程序。

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

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

下面是摘取的部分例程。

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

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


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久久久一区二区 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 中文字幕av网站 | 欧美爱爱视频网站 | 久草新在线| 欧美视频免费在线观看 | 嫩草黄色影院 | 欧美精品1区 | av黄色在线播放 | 久久国产一区二区三区 | 免费视频99 | 久久亚洲一区 | 久久久性色精品国产免费观看 | 99精品久久久 | 欧美性大战久久久久久久蜜臀 | 日韩在线观看视频一区 | 午夜免费视频 | 日韩网站在线观看 | 亚洲综合区| 欧美视频一区二区三区 | 欧洲视频一区 | 国产九九精品 | 黄色网毛片 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 国产精品国产三级国产aⅴ中文 | 国产精品一区三区 | 亚洲精品在线国产 | 丝袜天堂 | 亚洲一区二区三区欧美 | 欧美日韩在线播放 | 麻豆hd| 黑人中文字幕一区二区三区 | 范冰冰一级做a爰片久久毛片 | 久久伊人一区二区 | 一区天堂 | 天天操精品视频 | 亚洲网址 | 欧美黑人巨大videos精品 | 亚洲97| 国产视频精品免费 | 一区二区三区视频在线 |