新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 關(guān)于調(diào)試STM32程序時,某些標(biāo)志位被調(diào)試軟件意外清除的問題

關(guān)于調(diào)試STM32程序時,某些標(biāo)志位被調(diào)試軟件意外清除的問題

作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
在調(diào)試的過程中,使用調(diào)試軟件的寄存器或存儲器顯示窗口,可以很方便地查看外設(shè)寄存器的狀態(tài)。

很多朋友都碰到過這樣的問題:在單步調(diào)試時始終不能在顯示窗口看到某些標(biāo)志位的變化,應(yīng)該設(shè)置這些標(biāo)志位的時候,窗口中卻顯示為0,不少人都錯誤地認(rèn)為這是芯片的問題。

我們知道,不少STM32外設(shè)的狀態(tài)寄存器位,可以通過對某些寄存器的讀操作而清除(例如I2C的I2C_SR1中的很多標(biāo)志位),在調(diào)試過程中,每當(dāng)程序停止在設(shè)置的斷點或單步停止時,調(diào)試軟件都會自動地讀出所有指定的寄存器和存儲器中的內(nèi)容,并刷新窗口的顯示,調(diào)試軟件的這個讀操作恰好清除了那些標(biāo)志位,造成了上面描述的現(xiàn)象。

有幾個簡單的辦法解決這個問題:

1)關(guān)閉寄存器或存儲器顯示窗口
2)在寄存器或存儲器顯示窗口中不顯示這些敏感的寄存器
3)不要把斷點放在對這些敏感的寄存器位操作的前面,以保證這些寄存器位不被調(diào)試軟件意外地操作。
4)看官自己添加~~~~~


評論


技術(shù)專區(qū)

關(guān)閉