1.此代碼基于紅牛開發(fā)板,請(qǐng)根據(jù)自己的板子進(jìn)行修改。
2.通過修改網(wǎng)上的代碼實(shí)現(xiàn),修改前的功能開了一個(gè)很大的緩存接收app數(shù)據(jù),然后一次性全部數(shù)據(jù)寫入,
但是這個(gè)在實(shí)際應(yīng)用中沒多大用,所以修改為一次寫入128個(gè)字節(jié)。
3.程序flash的偏移地址為0x8010000,所以app編譯前應(yīng)該在mdk中設(shè)置
Option窗口->Target頁->IROM1,start 改為 0x8010000
4.設(shè)置中斷向量重映射,我用的方法是在app端的main函數(shù)起始位置添加語句
SCB->VTOR = FLASH_BASE | 0x10000;
5.啟動(dòng)時(shí)如果發(fā)現(xiàn)沒有app,會(huì)進(jìn)入bootloader模式(燈全亮),如果發(fā)現(xiàn)有程序就要看程序的功能了。
如果有app,但是又想重新升級(jí)的話就按住某個(gè)鍵(我這里是Tamper),然后按復(fù)位,松開復(fù)位之前不要松開
按鍵,這樣就會(huì)進(jìn)入bootloader模式。
6.進(jìn)入bootloader后通過串口1接收升級(jí)app數(shù)據(jù),bin文件數(shù)據(jù),接收完成后按User1鍵進(jìn)行升級(jí)操作,完成后
復(fù)位或者按User2鍵可以運(yùn)行剛寫入的app。
標(biāo)簽:
stm32
iap
上傳時(shí)間:
2015-05-18
上傳用戶:llma2017