请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS570LC4357 主题中讨论的其他器件: HALCOGEN
您好!
我正在使用 TMS570LC4357微控制器(Hercules LaunchPad 开发套件 TMS570LC43x)。
我成功运行了 LwIP 演示、HTTP 服务器正在工作。
板连接到 LAN 并配置了静态 IP 地址。 在主板(192.168.0.101)和 PC (静态 IP 192.168.0.102)之间执行通信。
接收到过多的 UDP 封包(200字节有效载荷)时遇到问题。
我观察到的内容:
- 当主机发送数据包之间有10ms 延迟时、一切都运行良好、
- 当主机 以尽可能快的速度逐一发送数据包时、电路板在大约70个数据包之后会在 Rx 中断中挂起。
挂机后,我在调试器中按了 PAUSE,我看到变量 rxch->active_head 设置为 NULL。
软件没有任何防止从 NULL 指针获取数据并保持无限循环的机制。
我添加了"IF 防护"、这有助于应用程序不会挂起、但不再触发 EMAC Rx 中断。
这似乎是硬件功能问题。
问题:
- 是否有办法防止这种情况?
- 如果微控制器无法处理传入的封装、是否可以忽略这些封装?
此致、
Kamil Zorychta
,关于 EMAC 驱动程序,当主机发送太多数据包时,我很难挂起 RX 中断。