新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32H7以太網的MMC中斷

        STM32H7以太網的MMC中斷

        作者: 時間:2024-04-16 來源: 收藏

        的 MMC(MAC management counter)中斷是個有點特別的中斷。特殊之處在于它是默認使能。如果我們在代碼里不針對 MMC 進行相關處理,就會造成一些異?,F象。我們先來看一個真實的客戶案例。
        客戶案例
        客戶使用 50 作為主控,與其他設備之間進行通訊。客戶在壓力測試中發現:
        ? 設備從第一次通訊開始,累計 7 到 8 天,就會發現 50 不再響應用戶的請求。
        ? 客戶通過使用 IDE 和添加輔助代碼可以發現,STM32H750 會不停地進入中斷,導致所使用的操作系統無法進行有效的系統調度。
        ? 問題發生后,客戶無論拔下網線或者再次連上網線,STM32H750 依然會不停的進入以太網中斷。
        ? 客戶嘗試使用 IDE 查看所有以太網寄存器,會發現有時侯能夠讓系統恢復正
        常。
        分析
        系統不停的進入以太網中斷,說明某個中斷在被某種條件下被不停的觸發,或者中斷觸發后沒有被處理。進一步,當系統出現異常狀況后,拔掉網線,中斷依然不斷的進入,說明該異常并不需要外界不停的輸入,也就說明可能是中斷沒有被處理所導致。所以,客戶首先想到的是補全所有使能的以太網中斷的清除代碼。然而,客戶再次測試,卻發現累計 7 到 8 天,問題再次發生。
        在這種情況下,為了深刻了解該狀況的原因,我們建議客戶,抓取異常時的寄存器現場,然后和正常狀態時的寄存器進行對比。我們在設備未發生異常前,抓取了以太網的三組寄存器 DMA、MTL 和 MAC。同時,我們在發生異常后,在同一設備再次進行這三組寄存器的抓取。然后,我們使用文本比較工具,對兩次的寄存器進行比較。我們很快就可以發現,MAC 寄存器存在值得關注的差異。MAC 寄存器對比如下:

        本文引用地址:http://www.104case.com/article/202404/457678.htm

        1713244424973723.png

        我們可以看到在系統異常情況下下,MMCRXIS 和 MMCIS 被置位了。我們從參考手冊 RM0433 (STM32H742, STM32H743/753 and STM32H750 Value lineadvanced Arm?-based 32-bit MCUs)(直接搜索關鍵子 MMCRXIS)中可以看到 MMCRXIS 和MMCIS 表示系統收到了 MMC 接收中斷.

        1713244371251964.png

        在兩次三組寄存器的比較中,我們看到系統生成了 MMC 接收中斷(MMC_RX_INTERRUPT 中RXUCGPIS)。這個符合前文的 MMCRXIS 和 MMCIS 的狀態。

        1713244304573052.png

        從參考手冊 RM0433 中我們可以看到,只要 MMC 選項使能,該中斷標志就為有效。但是我們并沒有使能 MMC 選項,甚至我們都沒有使能 MMC 中斷,為什么還是有中斷產生呢?

        后續更多內容請您點擊下載全文



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 清流县| 汪清县| 广宗县| 泉州市| 肇庆市| 讷河市| 哈巴河县| 达孜县| 黑河市| 茶陵县| 邳州市| 垫江县| 静乐县| 沐川县| 台南县| 青川县| 扎兰屯市| 芮城县| 长治县| 麻城市| 克山县| 泰宁县| 台东市| 连江县| 汪清县| 东源县| 汉沽区| 马鞍山市| 广西| 林西县| 葫芦岛市| 志丹县| 乌兰县| 望都县| 乌拉特前旗| 周口市| 闽清县| 丰县| 昌黎县| 礼泉县| 重庆市|