找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6574|回復: 0
打印 上一主題 下一主題
收起左側

一個因VCAP腳導致的hardFault異常的話題

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:98618 發(fā)表于 2016-6-17 01:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
某日,有位STM32用戶咨詢?nèi)缦聠栴}:

“在使用stm32f411CE芯片,編譯環(huán)境是keil mdk 5.15.仿真器使用Jlink。利用st官網(wǎng)標準庫文件建立工程。主函數(shù)中只有while(1){i++;if(i>100) i=0;}在仿真時出現(xiàn)keil中的復位按鈕沒有復位的作用,使用停止按鈕發(fā)現(xiàn)程序進入HardFault_Handler(void)中的死循環(huán),請問時什么原因造成的?”


據(jù)該用戶透露,之前他用STM32F407做過項目,對STM32開發(fā)應該說比較熟悉了。不過上面的問題讓他也折騰好幾天沒有進展,自信心頗受打擊。

因為用戶項目工程里幾乎沒有自己的代碼,就是建立了個基本工程框架而已。懷疑其建立項目過程中出了問題,建議使用標準庫的模板工程測試。結果發(fā)現(xiàn)問題依舊。
后來客戶改用STM32cubeMx做基本的工程配置,自主調(diào)整系統(tǒng)工作時鐘。意外發(fā)現(xiàn)當系統(tǒng)時鐘調(diào)在36M或更低時 hardfault異常消失,當系統(tǒng)時鐘調(diào)高時問題重現(xiàn)。

用戶的工程代碼依舊簡單得不能再簡單,F(xiàn)在問題似乎跟系統(tǒng)時鐘高低有關,但用戶目前配置的時鐘都是正常范圍,應該正常工作才對。

如果不是他用STM32cubeMX做配置,可能還會懷疑它的啟動文件張冠李戴【一般出現(xiàn)在芯片簡移植時】、時鐘配置錯誤、或者是跟指令預取時間參數(shù)配置相關的代碼配置錯誤,F(xiàn)在用戶是用STM32CUBEMX配置,一般來講這些問題都不會存在。因為CUBE工具都幫你處理好了。


這樣看來問題很可能出在硬件線路方面。建議客戶對其硬件檢查,尤其電源部分和VCAP腳。從客戶反饋的問題現(xiàn)象來看,跟VCAP腳關系可能比較大。
后來用戶再次從硬件線路做確認檢查,果真發(fā)現(xiàn)VCAP腳上電容有虛焊現(xiàn)象。重新處理后一切正常。

STM32家族中部分系列的芯片有12VCAP腳,它們往往需要接上合適的電容。ST MCU的手冊上都給出相關品質(zhì)參數(shù)。


VCAP腳的電容對維持芯片內(nèi)部供電的穩(wěn)定非常關鍵。如果該腳的電容焊接得不好或參數(shù)相差太遠、品質(zhì)太差都會引起問題?吹竭@里,也就不難理解上面提到的系統(tǒng)工作時鐘低時能正常工作,系統(tǒng)頻率高時MCU就扛不住了,出現(xiàn)HARDFAULT異常。

導致HARDFAULT異常的原因很多,還有比如時鐘超頻、數(shù)組越界、堆棧溢出、程序跑飛、非法指令等。有時原因并不太好找和跟蹤,平時多些方向性的原因積累對你的項目開發(fā)相信不無裨益。

相關話題:
STM32系列MCU芯片開關中斷的話題
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表