stm32 ETH_IRQHandler 从未命中

问题描述 投票:0回答:2

我在我的定制板上使用 stm32f746ZGT + LAN8472A 和 lwip + freertos。我通过cubemx生成了默认的以太网项目。我设置了静态ip。

  1. 连接电缆后,Link LED 看起来不错。黄色的是 稳定且绿色的闪烁。
  2. 在调试中我可以看到 netif 已完全配置并且链接已启动。
  3. 进入 MCU 的 RXD0 和 RXD1 引脚有信号(我可以在 示波器屏幕)。
  4. 时钟很好(我用示波器测试过)。

但是 ETH_IRQHandler 从未命中,因此它不会回答任何问题,例如 ping 请求。 (我在 lwIP 设置中启用了 ICMP)。我应该检查什么才能找到问题根源

stm32 ethernet freertos lwip
2个回答
0
投票

我遇到了一个与您非常相似的问题。我还没有解决方案,但想分享一些我发现的东西,也许可以带你走向正确的方向。

我发现这似乎是 Micro 本身的问题。接下来,我向您发出两个链接,这些链接指向有关(我认为)同一问题的长时间讨论。

https://github.com/ARMmbed/mbed-os/issues/6262 STM 勘误表

STM 勘误表

他们似乎都指出了STM32F769(Rev.A)的特定硬件版本,并且似乎这个问题在Rev.Z中得到了解决......我使用了很多条件,我知道,但是直到我将能够使用正确的版本来测试 Micro,但我将无法确认问题/解决方案。

希望有帮助。

洛伦佐

编辑! 虽然我还没有答案,但我可以确认在 STM32F4 上,使用相同的软件,问题不会出现。


0
投票

我建议你检查你的内存保护单元设置:ETH相关的内存应该允许通过DMA修改(默认情况下不允许)。 这不是勘误表中的问题。我过去看到过,解决方案是正确的 MPU 配置以及以太网 DMA 缓冲区的正确大小和对齐。

© www.soinside.com 2019 - 2024. All rights reserved.