STM32 USB DFU固件升級(jí)必讀
升級(jí)代碼工程須知
建立好工程后,需要做以下幾步處理:
1、首先點(diǎn)擊編譯器的”TargetOption”,然后選擇Target選項(xiàng),設(shè)置”Read/OnlyMemoryAreas”域的on-chip下的IROM1,修改下載起始地址及大小。我們這里使用0x0800500地址:
2、接下需要在程序的開(kāi)始重映射下中斷向量表到我們開(kāi)始的代碼出,即在main()函數(shù)一開(kāi)始添加:NVIC_SetVectorTable(0x08005000,0x0);這句話。
DFUFileManeger使用說(shuō)明
下面要制作升級(jí)文件。點(diǎn)擊DFUFileManager軟件,就會(huì)出現(xiàn)下面的界面:
我們選擇第一個(gè):IwanttoGENERATEaDFUfilefromS19,HexOrBin”,之后跳出:
我們修改VID為0483,PID為DF11,Version一般設(shè)置成0100或0200,跟USBDFU工程設(shè)置相同。點(diǎn)擊“S19orHex...”選擇工程的要升級(jí)代碼生成的hex文件。還有“Injection”域的”Target”右邊的編輯框中要設(shè)置編號(hào),例如我們的USBDFU工程里我們?cè)O(shè)置Internalflash的編號(hào)為00,所以這里就設(shè)置成0,然后點(diǎn)擊“General”保存.成dfu文件。
DfuSeDemostration使用說(shuō)明
當(dāng)把USBDFU程序下載到開(kāi)發(fā)板后,要按下按鍵使進(jìn)入升級(jí)模式,這時(shí)DfuSeDemostration就會(huì)出現(xiàn)下面界面:
在軟件的左上方會(huì)出現(xiàn)“STM32DeviceinDFUMode”,接著在右上角的DFUMode域會(huì)顯示USB設(shè)備的PID和VID,從圖中可以看出VID是0483,PID是DF11,這兩個(gè)VID是固定的,必須為0483,PID可以自定義。你要使用USBDFU功能,就必須設(shè)置成這兩個(gè)數(shù)。在“ActionSelect”域中會(huì)出現(xiàn)我們的存儲(chǔ)設(shè)備,上面會(huì)顯示:編號(hào)、名字和可用的扇區(qū)數(shù)。我們使用InternalFlash,就會(huì)出現(xiàn)如上界面。接下去我們要做的是在“UpgradeorVerifyAction”域點(diǎn)擊“choose”按鈕,選擇之前制作好的.dfu文件,并鉤上“Verifyafter downl”選項(xiàng),然后點(diǎn)擊”upgrade”按鈕就可以了。如果成功就會(huì)出現(xiàn)“Target00:Verifysuccessful”字樣。