我在我的定制板上使用 stm32f746ZGT + LAN8472A 和 lwip + freertos。我通过cubemx生成了默认的以太网项目。我设置了静态ip。
但是 ETH_IRQHandler 从未命中,因此它不会回答任何问题,例如 ping 请求。 (我在 lwIP 设置中启用了 ICMP)。我应该检查什么才能找到问题根源
我遇到了一个与您非常相似的问题。我还没有解决方案,但想分享一些我发现的东西,也许可以带你走向正确的方向。
我发现这似乎是 Micro 本身的问题。接下来,我向您发出两个链接,这些链接指向有关(我认为)同一问题的长时间讨论。
https://github.com/ARMmbed/mbed-os/issues/6262 STM 勘误表
他们似乎都指出了STM32F769(Rev.A)的特定硬件版本,并且似乎这个问题在Rev.Z中得到了解决......我使用了很多条件,我知道,但是直到我将能够使用正确的版本来测试 Micro,但我将无法确认问题/解决方案。
希望有帮助。
洛伦佐
编辑! 虽然我还没有答案,但我可以确认在 STM32F4 上,使用相同的软件,问题不会出现。
我建议你检查你的内存保护单元设置:ETH相关的内存应该允许通过DMA修改(默认情况下不允许)。 这不是勘误表中的问题。我过去看到过,解决方案是正确的 MPU 配置以及以太网 DMA 缓冲区的正确大小和对齐。