工具与软件:
大家好!
我使用的是 AM64 MPU 和 DP83822 PHY、并且我要将 PHY 中断引脚配置为触发 IRQ。 根据 DP83822数据表:
'当这个引脚被配置为一个中断引脚时、这个引脚在一个中断条件出现时被置为低电平。 该引脚有一个带弱内部上拉电阻的开漏输出。 某些应用可能需要外部上拉电阻器。"
在 MPU 端、GPIO 控制器文档说明:
"中断可以由上升沿和/或下降沿触发、为每个可中断的 GPIO 信号指定。"
由于 GPIO 限制、我只能将中断配置为下降沿。 我还注意到、在 Linux 中、drivers/net/phy/phy.c 文件将中断模式设置为 IRQF_OneShot
我的问题是、在 读取 PHY 的 MICR 寄存器(这将清除中断)和返回 IRQ_HANDLED (这将重新启用中断)之间、drivers/net/phy/dp83822.c dp83822_handle_interrupt 可能存在竞态条件。
请注意、应如何正确处理此问题以避免这种情况? 我们可以触发 EN 级别的中断吗? 我使用 GPIO1_28。
提前感谢您的任何见解!
