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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8003|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32F7利用USB DFU實(shí)現(xiàn)IAP功能詳解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:422626 發(fā)表于 2018-11-16 18:07 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
前言
伴隨著固件升級(jí)需求的增加,STM32提供了靈活的升級(jí)方式。本文一步一步介紹如何利用 USB DFU Class以及 ST提供的DfuSe demo軟件工具實(shí)現(xiàn) IAP(In Application Program)功能,但并不涉及到 DFU class移植。

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

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

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

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

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

下面是摘取的部分例程。

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

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


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩视频在线免费观看 | 在线看亚洲 | 日日操夜夜操视频 | 国产女人与拘做视频免费 | 国产成人久久精品一区二区三区 | 国产视频第一页 | 久久精品国产一区老色匹 | 99re6在线视频精品免费 | 亚洲国产欧美日韩 | 欧美韩一区二区 | 成人午夜影院 | 国产一在线观看 | 亚洲36d大奶网 | 国产精品一区二区免费 | 欧美日韩国产精品 | 国产一区黄色 | 激情一区二区三区 | 在线观看成年人视频 | 做a视频在线观看 | 精品美女视频在免费观看 | 一级在线观看 | 欧美高清视频 | 亚洲一区二区视频 | 精品国产一区二区在线 | 欧美一区二区在线观看 | 午夜精品视频在线观看 | 国产一区影院 | 日韩伦理电影免费在线观看 | 国内精品免费久久久久软件老师 | 欧美日韩一二区 | 日韩在线一区视频 | 国产中文在线观看 | 中文一区二区 | 亚洲人成网亚洲欧洲无码 | 日韩免费成人av | 狠狠干狠狠操 | 国产在线观看一区二区三区 | 国产精品成人国产乱 | 亚洲欧美中文日韩在线v日本 | 国产视频综合 | 欧美一区二区三区久久精品视 |