精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MMC中斷的特點及解決方案

STM32單片機 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2022-09-08 09:17 ? 次閱讀

1、前言

STM32H7 以太網的 MMC(MAC management counter)中斷是個有點特別的中斷。特殊之處在于它是默認使能。如果我們在代碼里不針對 MMC 進行相關處理,就會造成一些異常現象。我們先來看一個真實的客戶案例。

2、客戶案例

客戶使用 STM32H750 作為主控,與其他設備之間進行以太網通訊。

客戶在壓力測試中發現:

? 設備從第一次通訊開始,累計 7 到 8 天,就會發現 STM32H750 不再響應用戶的請求。

? 客戶通過使用 IDE 和添加輔助代碼可以發現,STM32H750 會不停地進入以太網中斷,導致所使用的操作系統無法進行有效的系統調度。

? 問題發生后,客戶無論拔下網線或者再次連上網線,STM32H750 依然會不停的進入以太網中斷。

? 客戶嘗試使用 IDE 查看所有以太網寄存器,會發現有時侯能夠讓系統恢復正常。

3、分析

系統不停的進入以太網中斷,說明某個中斷在被某種條件下被不停的觸發,或者中斷觸發后沒有被處理。進一步,當系統出現異常狀況后,拔掉網線,中斷依然不斷的進入,說明該異常并不需要外界不停的輸入,也就說明可能是中斷沒有被處理所導致。所以,客戶首先想到的是補全所有使能的以太網中斷的清除代碼。然而,客戶再次測試,卻發現累計 7 到 8 天,問題再次發生。

在這種情況下,為了深刻了解該狀況的原因,我們建議客戶,抓取異常時的寄存器現場,然后和正常狀態時的寄存器進行對比。我們在設備未發生異常前,抓取了以太網的三組寄存器 DMA、 MTL 和 MAC。同時,我們在發生異常后,在同一設備再次進行這三組寄存器的抓取。然后,我們使用文本比較工具,對兩次的寄存器進行比較。我們很快就可以發現,MAC 寄存器存在值得關注的差異。MAC 寄存器對比如下:

7b81958c-2f0e-11ed-ba43-dac502259ad0.png

我們可以看到在系統異常情況下下,MMCRXIS 和 MMCIS 被置位了。

我們從參考手冊 RM0433 (STM32H742, STM32H743/753 and STM32H750 Value line advanced Arm-based 32-bit MCUs)(直接搜索關鍵子 MMCRXIS)中可以看到 MMCRXIS 和 MMCIS 表示系統收到了 MMC 接收中斷。

7ba9f158-2f0e-11ed-ba43-dac502259ad0.png

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

7bd3d662-2f0e-11ed-ba43-dac502259ad0.png

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

4、MMC 中斷的特點

MMC 選項其實是默認使能。我們可以從參考手冊 RM0433 中看到這一點。

7bf72810-2f0e-11ed-ba43-dac502259ad0.png

在 MMC 默認使能的情況下,什么情況下會產生中斷呢?

讓我們在 RM0433 里搜索下兩次寄存器比較發現的 RXUCGPIS 寄存器:

7c22b836-2f0e-11ed-ba43-dac502259ad0.png

綜合這兩點,我們可以認為,在長時間以太網收發包之后,MMC 中斷幾乎一定會發生。這符合客戶案例的場景,例如,重現這個問題需要 7 到 8 天。當然從這里我們也可以推斷出,我們如果加快測試數據包收發的發送,MMC 中斷會發生更早。那么,如何避免在產品應用中這種問題發生呢?

5、解決方案

1.1. 使用 MMC 中斷

MMC 中斷是個有用的功能。如果我們要使用的話,可以參考 MMC Rx interrupt register (ETH_MMC_RX_INTERRUPT)和 MMC Tx interrupt register (ETH_MMC_TX_INTERRUPT)的描述。我們需要對 MMC 進行一個讀的操作。

7c4baf2a-2f0e-11ed-ba43-dac502259ad0.png

7c80bae4-2f0e-11ed-ba43-dac502259ad0.png

這也解釋了,客戶為什么發現,通過調試器一個一個去讀取以太網寄存器,會在某個操作時讓異常狀態恢復到正常。

1.2. 關閉MMC中斷

在很多情況下,MMC 中斷對實際產品沒有意義。例如,在這個案例中,我們可以選擇關閉 MMC中斷。這就需要用到 MMC 中斷的 mask 寄存器:

? MMC Rx interrupt mask register (ETH_MMC_RX_INTERRUPT_MASK)

? MMC Tx interrupt mask register (ETH_MMC_TX_INTERRUPT_MASK)

我們可以添加以下代碼到我們的應用代碼里

7cad0450-2f0e-11ed-ba43-dac502259ad0.png

客戶反饋找不到 ETH 的定義。其實在 STM32H7 的例程里,我們可以很容易發現 ETH 定義在

STM32CubeRepositorySTM32Cube_FW_H7_V1.8.0DriversCMSISDeviceSTSTM32H7xxIncludestm32h750xx.h:

7cc7c3c6-2f0e-11ed-ba43-dac502259ad0.png

也就是說,如果你的工程代碼源自 STM32Cube 例程,你應該能夠加入以上代碼并且能夠成功運行。

在加入上述代碼或者類似操作后,客戶反饋,再次進行超過 7 天以上的壓力測試,系統運行正常。

6、總結

STM32H7 的 MMC 中斷需要加以注意,如果不使用 MMC,需要確保它已經關閉;否則在經過長時間網絡收發后,系統會產生并非用戶所期望的中斷,導致系統假死。另外,我們也看到了調試STM32 以太網的常規方式,也就是借助工具而不需要寫代碼就可以進行寄存器的比較。這種方法值得使用 STM32 以太網的用戶進行調試時參考。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 以太網
    +關注

    關注

    40

    文章

    5288

    瀏覽量

    169663
  • STM32
    +關注

    關注

    2258

    文章

    10828

    瀏覽量

    352484
  • MMC
    MMC
    +關注

    關注

    0

    文章

    73

    瀏覽量

    30418
  • stm32h7
    +關注

    關注

    0

    文章

    36

    瀏覽量

    1753

原文標題:工程師筆記|STM32H7 以太網的 MMC 中斷

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    立體智慧倉儲解決方案.#云計算

    解決方案智能設備
    學習電子知識
    發布于 :2022年10月06日 19:45:47

    #硬聲創作季 #FPGA Xilinx入門-16 亞穩態現象原理與解決方案-1

    fpgaXilinx解決方案
    水管工
    發布于 :2022年10月09日 01:44:30

    #硬聲創作季 #FPGA Xilinx入門-16 亞穩態現象原理與解決方案-2

    fpgaXilinx解決方案
    水管工
    發布于 :2022年10月09日 01:45:00

    #硬聲創作季 #FPGA Xilinx入門-16 亞穩態現象原理與解決方案-3

    fpgaXilinx解決方案
    水管工
    發布于 :2022年10月09日 01:45:22

    #硬聲創作季 #FPGA Xilinx入門-16 亞穩態現象原理與解決方案-4

    fpgaXilinx解決方案
    水管工
    發布于 :2022年10月09日 01:45:54

    #硬聲創作季 #FPGA Xilinx入門-16 亞穩態現象原理與解決方案-5

    fpgaXilinx解決方案
    水管工
    發布于 :2022年10月09日 01:46:24

    #硬聲創作季 云計算基礎入門:18-rpm痛點及解決方案

    云計算解決方案
    Mr_haohao
    發布于 :2022年10月16日 01:50:33

    MMC卡靜電保護方案

    MMC
    上海雷卯電子科技有限公司
    發布于 :2023年04月17日 13:55:24

    MMC卡靜電保護方案

    靜電MMC靜電防護
    leiditechsh
    發布于 :2023年06月22日 20:55:54

    MMC卡有什么特點

    MMC卡是有由美國SANDISK公司和德國西門子公司在1997年共同開發研制的一種多功能存儲卡。MMC卡采用7針的接口,主要應用于數碼相機、手機和一些PDA產品上,價格相對較貴。
    發表于 04-06 09:02

    室內人員定位解決方案特點和應用

    室內人員定位解決方案特點及應用
    發表于 12-21 07:45

    TI的指紋鑒別開發解決方案有什么特點?

    MS320C55x具有什么特點?TI的指紋鑒別開發解決方案有什么特點?
    發表于 05-11 06:05

    MAXIM的MAX31865溫度檢測器解決方案有什么特點

    MAX31865的基本特性是什么MAXIM的MAX31865溫度檢測器解決方案有什么特點
    發表于 05-11 06:10

    多域SDON解決方案特點有哪些?

    SDON技術的主要優勢是什么?多域SDON解決方案特點有哪些?光網絡虛擬化作為SDON的關鍵技術,面臨哪些技術難點?
    發表于 05-21 06:10

    STM32H7以太網的MMC中斷

    電子發燒友網站提供《STM32H7以太網的MMC中斷.pdf》資料免費下載
    發表于 09-20 09:11 ?0次下載
    STM32H7以太網的<b class='flag-5'>MMC</b><b class='flag-5'>中斷</b>