花了四天時間才把IAP功能做好。其中也遇到許多的坑,這次把這次IAP功能實現過程遇到的坑把它分享出來。一開始做iap的時候也是先從網上看別人的實現方法,其中就下載了一套別人的程序,不過主控芯片是STM32F103zv,就是不是我想要的那個型號,還有他的邏輯跟我的有點不一樣。所以才走了那么多天的坑。
1、先移植別人的flash燒寫代碼跟運行APP應用程序的代碼,基本各個版本大同小異。2、然后實現自己的UART,實現串口接收程序(因為要通過串口接收APP應用固件)3、然后接收到的固件燒寫進flash4、最后就是運行到APP應用程序了。基本實現iap也是這幾個步驟,但是就是不成功一開始。然后就開始查找問題:
1、查看接收的固件對不對
2、通過keil編譯器里的仿真可以看到flash的具體數值,判斷memory里的數據是不是跟串口接收的數據一樣的。查找了之后自己感覺是對的(其實沒有仔細驗證),然后就開始跑到APP應用程序,每一次運行到APP程序時就進入了硬件錯誤中斷HardFault_Handler();就是這個問題我查找了兩天得不到解決。最后實在沒辦法了才有查找接收的問題,發現接收處理是有問題的,因為芯片的SRAM是有限的,接收數組不可能開的太大,我的方法是開兩個數組輪流接收固件,一個數組接收滿了之后就先寫進flash,另一個數組繼續接收。因為固件我是通過串口助手發送給芯片的,所以串口助手一次性發完一個固件不間斷。后面改了這個接收的問題,然后再去檢查接收到的固件寫進FLASH時是否是對的,這兩部做好之后基本不會有什么大問題。
1、另一個需要注意的就是地址的偏移,Bootloader地址跟APP應用地址分開來。
2、進入APP應用程序之前需要清除中斷,把一些GPIO,ADC之類的都關閉。
3、APP應用端要配置好中斷偏移向量。基本以上步驟檢查好了,iap應用是沒有問題的。
上一篇:STM32讀寫TXT時追加數據的方法
下一篇:STM32Fatfs遍歷文件(C語言實現)
推薦閱讀
史海拾趣
FMI公司深知在極端環境條件下,電子系統對頻率控制設備的高可靠性要求。因此,公司投入大量資源進行高可靠性產品的研發和生產。其高可靠性石英晶體和晶體振蕩器產品被廣泛應用于航空航天、軍事、高可靠性空間等極端環境領域。這些產品以其卓越的性能和穩定性贏得了客戶的廣泛信賴和好評,進一步鞏固了FMI在高端市場的領先地位。
Component Research Co最初只是一家小型電子元件研發公司,面臨著激烈的市場競爭。然而,公司研發團隊在一次實驗中意外發現了一種新型半導體材料,這種材料具有出色的導電性能和穩定性。公司迅速將這一發現轉化為實際產品,并推向市場。新產品因其卓越性能迅速受到客戶青睞,Component Research Co因此名聲大噪,逐漸在電子元件市場占據一席之地。
近年來,Aptos將業務重心逐漸轉向區塊鏈領域。在經過長時間的研發后,公司成功推出了主網測試環境。在測試中,Aptos實現了驚人的3萬TPS峰值以及超20億筆日交易的處理能力,這一性能突破在行業內引起了廣泛關注。
隨著技術的不斷進步,Aptos在微電子封裝領域取得了重大突破。公司成功開發出了一系列高效、穩定的封裝技術,并成功應用于多個電子產品中。同時,Aptos還積極拓展業務領域,將技術應用于智能穿戴、物聯網等新興領域,進一步提升了公司的市場影響力。
隨著環保意識的不斷提高和可持續發展理念的普及,Elektron公司開始注重環保和可持續發展方面的工作。公司積極采用環保材料和節能技術,降低產品制造過程中的能耗和排放。同時,Elektron還加強了對廢棄物的處理和回收工作,努力實現資源的循環利用和環境的可持續發展。這些措施不僅有助于公司降低成本和提高效率,也符合社會和消費者對環保和可持續發展的期望和要求。
以上五個故事分別從不同角度概述了Elektron公司的發展過程,包括創立與初期發展、技術創新與產品多樣化、全球擴張與市場領導地位、技術突破與行業引領以及環保理念與可持續發展等方面。這些故事共同構成了Elektron公司豐富多彩的發展歷程和輝煌成就。
作為一家在電子行業具有影響力的公司,Cavium Networks 始終保持著持續創新的精神。公司不斷投入研發資源,推出了一系列具有創新性和領先性的產品和技術。同時,Cavium Networks 也積極參與國際標準和行業規范的制定工作,為電子行業的健康發展貢獻了自己的力量。正是這種不斷創新和追求卓越的精神,使得 Cavium Networks 在電子行業中保持了領先地位,并引領著行業的未來發展。
以上五個故事雖然基于虛構,但它們都緊密圍繞 Cavium Networks 在電子行業中的發展歷程和關鍵事件展開,展示了公司在技術創新、市場拓展和合作發展等方面的努力和成就。這些故事旨在展現 Cavium Networks 的發展軌跡和行業影響力,同時也反映了電子行業的快速發展和變革。
要暫時中斷winCE的學習,轉去看windows下USB驅動的開發,郁悶中…… 公司一個項目要做windows下USB驅動的開發,老大叫我跟著一起看看相關的知識,并跟我說了一大通做USB設備驅動的前景。USB驅動比較復雜,要花時間去學習的,那我就要暫時中斷winCE的學習了。但心里還是想朝winCE這個方向發展,況且也學了一些日子了, ...… 查看全部問答∨ |
|
用modelsim進行仿真,為了便于觀察,我希望仿真結果按一定的順序顯示。可是每次手動調整完信號順序后,再重新仿真,順序又亂了,有沒有辦法將這些信號的順序固定下來,每仿真一次都按這個順序顯示結果?… 查看全部問答∨ |
|
我的評估版,EK-STM32F是 ST 2007年開研討會,現場買的!最近想學習STM32就那出來用,剛開始就遇到問題,程序用軟件可以仿真,可以用評估版就是不行!我用的是MDK3.22!例如:設置GPIO Remap USART2,這個語句AFIO->MA ...… 查看全部問答∨ |
LED 亮度控制要求有一個能夠提供恒定、穩壓電流的驅動器。要想達到這一目標,驅動器拓撲必須能夠產生足夠大的輸出電壓來正向偏置 LED。因此,如果輸入和輸出電壓范圍重疊時,我們又該做何選擇呢? 德州儀器 (TI) 應用工程師John Betten, ...… 查看全部問答∨ |
教材大分享!想要學習LPC1100開發的工程師朋友,就從《基于MDC的LPC1100微處理器開發應用》這本書開始吧!書中含有詳細的LPC1100結構、功能和特性介紹,豐富的編程實例,為工程師朋友提供全面的LPC1100開發參考。… 查看全部問答∨ |
|