STM32之option bytes踩坑记录
最近在做一個stm32項目,用的盜版jlink調(diào)試,突然某次下完程序,stm32竟然開始無限重啟了,量了一下復位腳,發(fā)現(xiàn)有周期性的重啟脈沖輸出,一開始我以為是硬件壞了,重新焊了一套硬件,發(fā)現(xiàn)新焊的是好的,但是原來那塊板子,檢查來檢查去感覺也不像是硬件和程序的問題。
后來我查了一些資料,想到去檢查復位后的RCC_CSR寄存器,這里會標識系統(tǒng)是由哪個信號引發(fā)的reset,看了以后才發(fā)現(xiàn)是由于看門狗引起的,但是看門狗我軟件上都一直沒開過,感覺非常奇怪。
后來查了些資料才發(fā)現(xiàn):
| STM32的獨立看門狗可以是硬件使能或軟件使能,硬件使能是通過option bytes配置,軟件使能是通過軟件設(shè)置寄存器位配置。 ? 硬件使能的看門狗,在系統(tǒng)上電之后就開始工作,一旦開始工作就沒有辦法讓它停止工作;而軟件使能的看門狗,只有在設(shè)置了相應(yīng)的寄存器位后才能開始工作,一旦開始工作,只有系統(tǒng)復位才能讓它停止工作。 如果啟用了硬件使能,必須通過擦除相應(yīng)的選擇字節(jié)位關(guān)閉硬件看門狗功能,這時看門狗的功能可以通過軟件使能。 |
原來那么高端的,竟然還有option bytes這種東西,再查閱了一些關(guān)于option bytes資料:
STM32 的 Flash information block 部分,包含有特殊的選項字節(jié),可以用于系統(tǒng)配置等信息, 其中還有兩個有效字節(jié)(實際四個字節(jié),兩個是校驗字節(jié))的用戶自定義數(shù)據(jù)字節(jié)。用ST-LINK可以直接配置這些特殊的配置位。
原來如此,STM32也有類似51/AVR之類的熔絲位,但是一般來說平時手動設(shè)置會比較少,所以不太注意這一點,用ST-LINK Utility可以直接使用ST-LINK來配置熔絲位:
打開以后界面如下:
可以看到WDG_SW位被清零了,這個位如果清零,看門狗上電就會由硬件使能,且關(guān)不掉,而另一塊板子,這個配置位是置1的。我這里把WDG_SW位勾選上,然后寫入,無限自動重啟問題就解決了。看來盜版jlink確實容易用出問題來,能用正版還是盡量用正版吧。
總結(jié)
以上是生活随笔為你收集整理的STM32之option bytes踩坑记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JFlash ARM对stm32程序的读
- 下一篇: STM32 Option Bytes位