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

QQ登錄

只需一步,快速開始

帖子
查看: 5294|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

STM32F103C8T6 IAP源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:85785 發(fā)表于 2019-8-18 09:50 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
花了四天時(shí)間才把IAP功能做好。其中也遇到許多的坑,這次把這次IAP功能實(shí)現(xiàn)過程遇到的坑把它分享出來。
一開始做iap的時(shí)候也是先從網(wǎng)上看別人的實(shí)現(xiàn)方法,其中就下載了一套別人的程序,不過主控芯片是STM32F103zv,就是不是我想要的那個(gè)型號(hào),還有他的邏輯跟我的有點(diǎn)不一樣。所以才走了那么多天的坑。
1、先移植別人的flash燒寫代碼跟運(yùn)行APP應(yīng)用程序的代碼,基本各個(gè)版本大同小異。
2、然后實(shí)現(xiàn)自己的UART,實(shí)現(xiàn)串口接收程序(因?yàn)橐ㄟ^串口接收APP應(yīng)用固件)
3、然后接收到的固件燒寫進(jìn)flash
4、最后就是運(yùn)行到APP應(yīng)用程序了。
基本實(shí)現(xiàn)iap也是這幾個(gè)步驟,但是就是不成功一開始。
然后就開始查找問題:
1、查看接收的固件對(duì)不對(duì)
2、通過keil編譯器里的仿真可以看到flash的具體數(shù)值,判斷memory里的數(shù)據(jù)是不是跟串口接收的數(shù)據(jù)一樣的。
查找了之后自己感覺是對(duì)的(其實(shí)沒有仔細(xì)驗(yàn)證),然后就開始跑到APP應(yīng)用程序,每一次運(yùn)行到APP程序時(shí)就進(jìn)入了硬件錯(cuò)誤中斷HardFault_Handler();就是這個(gè)問題我查找了兩天得不到解決。
最后實(shí)在沒辦法了才有查找接收的問題,發(fā)現(xiàn)接收處理是有問題的,因?yàn)樾酒?/font>SRAM是有限的,接收數(shù)組不可能開的太大,我的方法是開兩個(gè)數(shù)組輪流接收固件,一個(gè)數(shù)組接收滿了之后就先寫進(jìn)flash,另一個(gè)數(shù)組繼續(xù)接收。因?yàn)楣碳沂峭ㄟ^串口助手發(fā)送給芯片的,所以串口助手一次性發(fā)完一個(gè)固件不間斷。后面改了這個(gè)接收的問題,然后再去檢查接收到的固件寫進(jìn)FLASH時(shí)是否是對(duì)的,這兩部做好之后基本不會(huì)有什么大問題。
1、另一個(gè)需要注意的就是地址的偏移,Bootloader地址跟APP應(yīng)用地址分開來。
2、進(jìn)入APP應(yīng)用程序之前需要清除中斷,把一些GPIO,ADC之類的都關(guān)閉。
3、APP應(yīng)用端要配置好中斷偏移向量。
基本以上步驟檢查好了,iap應(yīng)用是沒有問題的。

全部資料51hei下載地址:
在線應(yīng)用升級(jí).7z (360.75 KB, 下載次數(shù): 356)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:531616 發(fā)表于 2020-2-18 21:24 | 只看該作者
嗯,下載學(xué)習(xí)學(xué)習(xí),很有參考價(jià)值。
回復(fù)

使用道具 舉報(bào)

板凳
ID:102688 發(fā)表于 2020-4-9 20:55 | 只看該作者
正學(xué)習(xí)中,感謝分享,
回復(fù)

使用道具 舉報(bào)

地板
ID:142699 發(fā)表于 2020-4-22 11:04 | 只看該作者
對(duì),我現(xiàn)在就是卡在地址偏移的計(jì)算這塊上面
回復(fù)

使用道具 舉報(bào)

5#
ID:103268 發(fā)表于 2020-5-23 14:49 | 只看該作者
謝謝分享學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

6#
ID:528619 發(fā)表于 2020-6-1 14:58 | 只看該作者
很好,謝謝分享
回復(fù)

使用道具 舉報(bào)

7#
ID:528619 發(fā)表于 2020-6-1 14:59 | 只看該作者
學(xué)習(xí)中,謝謝分享
回復(fù)

使用道具 舉報(bào)

8#
ID:358718 發(fā)表于 2020-11-3 10:23 | 只看該作者
哥,感覺你得IAP程序進(jìn)不到中斷呢,串口發(fā)個(gè)指令就死了
回復(fù)

使用道具 舉報(bào)

9#
ID:855761 發(fā)表于 2020-12-7 10:28 | 只看該作者
IAP用什么軟件?
回復(fù)

使用道具 舉報(bào)

10#
ID:693586 發(fā)表于 2021-8-19 17:54 | 只看該作者
我是用F107,感覺。。。。。。
回復(fù)

使用道具 舉報(bào)

11#
ID:584195 發(fā)表于 2021-8-22 07:32 | 只看該作者
先點(diǎn)贊留個(gè)地址先,希望以后能用得上!
回復(fù)

使用道具 舉報(bào)

12#
ID:1031490 發(fā)表于 2022-6-1 11:28 | 只看該作者
過來學(xué)習(xí)一下 IAP源程序
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表