下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、STM32入門利用ST提供的USB例程實(shí)現(xiàn)USBIAP功厶匕冃能我們知道ST推出的Cortex-M3平臺(tái)STM32內(nèi)部有兩個(gè)Flash區(qū)域,一是SystemFlash,ST官方保留的一個(gè)區(qū)域,用于存放IAP代碼。該區(qū)域不對(duì)用戶開(kāi)放,僅提供UART的通訊接口用于IAP升級(jí);另一個(gè)區(qū)域是UserFlash,這一部分是供用戶自由使用的。STM32自帶USB2.0Device接口,如果需要通過(guò)USB接口來(lái)實(shí)現(xiàn)IAP功能需要如何做呢?這里介紹如何利用STSTM32xxUSBDevelopmentKit提供的DFU代碼來(lái)實(shí)現(xiàn)上述功能。我用STM3210EVB來(lái)演示這個(gè)功能。閱讀前請(qǐng)下下載下列代碼壓縮包和應(yīng)
2、用軟件:1、STM3210B-EVALdemonstrationsoftwarev1.1.zipSTM3210B-EVALdemonstrationsoftwarev1.1.zip(文件大?。?.15M)ST官方的下載路徑:HYPERLINK /sto/stonline/products/support/micro/files/um0435.zip2、STM32F10 xxxUSBdeveloperkitv1.0.zipSTM32F10 xxxUSBdeveloperkitv1.0.zip(文件大小:461K)ST官方的下載路徑:HYPERLINK /sto/stonline/products
3、/support/micro/files/um0424.zip3、DfuSeUSBDeviceFirmwareUpgradev2.2.zipDfuSeUSBDeviceFirmwareUpgradev2.2.zip(文件大小:7.85M)ST官方的下載路徑:HYPERLINK /st/stonline/products/support/micro/files/um0412.zip上述文檔對(duì)于的用戶參考手冊(cè),請(qǐng)自行到STMCU網(wǎng)站下載。HYPERLINK http:/www.st.eom/mcu/familiesdocs-110.html%23Applicatihttp:/www.st.eom/
4、mcu/familiesdocs-110.html#Application%20Note下列步驟將介紹如何通過(guò)ST官方的USB升級(jí)代碼實(shí)現(xiàn)程序的下載更新的功能(IAP)。1、打開(kāi)STM3210B-EVALdemonstrationsoftware壓縮包,在STM3210B-EVALdemonstrationsoftwareDemosource下打開(kāi)main.c文件,找至UvoidInterruptConfig(void)函數(shù)/*SettheVectorTablebaseaddressat0 x08000000*/NVIC_SetVectorTable(NVIC_VectTab_FLASH,0
5、x00);這里我們需要修改代碼的中斷矢量起始地址,這樣做的目的是為了處理IAP代碼在Flash存放的區(qū)域與ApplicationCode部分的存放空間不會(huì)發(fā)生地址沖突。這里我們假設(shè)IAP存放在UserFlash的0 x080000000 x08003FFF區(qū)域,Applicationcode存放在UserFlash的0 x080040000 x0801FFFF區(qū)域。因?yàn)锳pplicationcode的開(kāi)始地址是由0 x08004000開(kāi)始,這樣我們需要為應(yīng)用代碼的中斷向量地址做一個(gè)重映射。因此我們修改該代碼為:/*SettheVectorTablebaseaddressat0 x0800400
6、0*/NVIC_SetVectorTable(NVIC_VectTab_FLASH,0 x4000);請(qǐng)注意這里NVIC_SetVectorTable函數(shù)的型參送入的是相對(duì)偏移地址,而不是絕對(duì)地址;2、在STM3210B-EVALdemonstrationsoftwareDemoprojectEWARM下找到lnkarm_flash.xcl文件,在XCL文件中找到下面的配置,該配置用于定制應(yīng)用代碼在Flash區(qū)域的存放空間和代碼運(yùn)行是RAM可以提供的空間。/CodememoryinFLASH-DR0MSTART=0 x8000000-DR0MEND=0 x803FFFF/DatainRAM-D
7、RAMSTART=0 x20000000-DRAMEND=0 x20004FFF由于我們的目標(biāo)應(yīng)用代碼將是在0 x08004000區(qū)域運(yùn)行,因此我們修改為:/CodememoryinFLASH-DR0MSTART=0 x8004000-DROMEND=0 x801FFFF/DatainRAM-DRAMSTART=0 x20000000-DRAMEND=0 x20004FFF在編譯的時(shí)候請(qǐng)確保ProjectOptionsLinkerConfig標(biāo)簽下的鏈接命令文件選擇的是上述Inkarm_flash.xcl文件;3、應(yīng)用部分改好,現(xiàn)在我們修改USB固件升級(jí)部分的代碼,打開(kāi)STM32F10XxxU
8、SBdeveloperkit開(kāi)發(fā)包。4、在開(kāi)發(fā)包下面找到STM32F10 xUSBLibUSBLibdemosDevice_Firmware_Upgrade例程,該例程是一個(gè)在STM32F10 xx系列MCU上實(shí)現(xiàn)運(yùn)行在UserFlash區(qū)域的IAP自升級(jí)代碼,通過(guò)STM32自身提供的USB接口實(shí)現(xiàn)。在STM32F10 xUSBLibUSBLibdemosDevice_Firmware_Upgradesource路徑下找到main.c文件,在56行:if(DFU_Button_Read()!=0 x00)/*Testifusercodeisprogrammedstartingfromaddre
9、ss0 x8003000*/if(*(vu32*)0 x8003000)&0 x2FFF0000)=0 x20000000)/*Jumptouserapplication*/JumpAddress=*(vu32*)(ApplicationAddress+4);Jump_To_Application=(pFunction)JumpAddress;/*InitializeuserapplicationsStackPointer*/_MSR_MSP(*(vu32*)ApplicationAddress);Jump_To_Application();/*OtherwiseentersDFUmodetoallowusertoprogramhisapplication*/這段代碼的功能是對(duì)應(yīng)用部分的代碼開(kāi)始地址做判斷,這里的地址與我們之前的步驟1、2都是對(duì)應(yīng)的。同樣這個(gè)代碼做如下更改:/*Testifusercodeisprogrammedstartingfromaddress0 x8004000*/if(*(vu32*)0 x8004000)&0 x2FFF0000)=0 x20000000)5、hw_config.h中定義:#defineApplicationAddress0 x080
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水電站水工建筑物施工合同
- 馬術(shù)俱樂(lè)部外墻裝修協(xié)議
- 商場(chǎng)設(shè)計(jì)協(xié)議書(shū)
- 林業(yè)開(kāi)發(fā)勞務(wù)合同
- 綠色低碳二手房交易合同協(xié)議書(shū)
- 餐廳水電維修工招聘協(xié)議
- 2024版電子商務(wù)平臺(tái)搭建合同標(biāo)的及技術(shù)要求
- 個(gè)人違約協(xié)議書(shū)
- 二零二五年國(guó)有企業(yè)離休人員勞動(dòng)合同模板含福利待遇3篇
- 2024私房買賣合同范本:學(xué)區(qū)房交易
- 拜耳法氧化鋁生產(chǎn)工藝
- 員工述職3個(gè)月轉(zhuǎn)正報(bào)告
- 2022年海南省公務(wù)員錄用考試《申論》真題試卷及答案
- 技術(shù)成果轉(zhuǎn)移案例分析報(bào)告
- 部編版二年級(jí)下冊(cè)道德與法治第二單元《我們好好玩》全部教案
- 建筑設(shè)計(jì)行業(yè)項(xiàng)目商業(yè)計(jì)劃書(shū)
- 幼兒園利劍護(hù)蕾專項(xiàng)行動(dòng)工作方案總結(jié)與展望
- 骶尾部藏毛疾病診治中國(guó)專家共識(shí)(2023版)
- 合同信息管理方案模板范文
- 【高新技術(shù)企業(yè)所得稅稅務(wù)籌劃探析案例:以科大訊飛為例13000字(論文)】
- 幽門螺旋桿菌
評(píng)論
0/150
提交評(píng)論