工具/软件:Code Composer Studio
您好!
我一直在处理 Hercules TMS570LC43x 开发套件上的应用。 我已经在应用程序中集成了 FreeRTOS、现在我希望创建一个任务、通过 UDP 发送一些数据、以及从 Flexray 和 CAN 读取数据以及通过队列进行相互通信的其他任务。
为 UDP 发送选择的库是 lwIP、这是一个我已经能够成功地与 Hercules TMS570LC43x 开发套件集成的库。
但是、这两者之间似乎不能协同工作、FreeRTOS + lwIP。 我已成功设置 EMAC 硬件,因为我可以在终端中看到这些配置消息:
如果我尝试通过 UDP 发送一些数据、则会发生以下情况:
lwIP 库尝试向给定的 IP 地址发送 UDP 包,但由于它不知道接收计算机的 MAC 地址,因此会发送 ARP 请求以查找 MAC 地址。
2.发送数据包、在 Hercules 电路板上没有错误信号、TXGOODFRAMES 寄存器递增。
3.在接收计算机上运行 tcpdump 以查看数据包,输出以下内容:
但是,这些应该是 ARP 软件包,但在某种程度上,数据似乎已损坏,因为在接收计算机上,找不到发送地址或接收地址。
我还尝试将 EMACCore0RxIsr 和 EMACCore0TxIsr 中断移至 FIQ 而不是 IRQ、并禁用通过 VIC 控制器进行的 IRQ 处理、但未成功。 我看到有很多功能可以弄清楚数据、也许这些功能会以某种方式破坏数据、但我还没有找到任何东西。
总之,有几个问题我希望得到答复:
FreeRTOS 会在某种程度上使 lwIP 库混乱,怎么办?
2.为了使库正常工作、我是否错过了任何额外的步骤?
3.是否有另一个用于发送 UDP 数据的库可与 FreeRTOS 可靠配合使用?
4.是否有人遇到此有效载荷:"[|LLC]",这意味着什么?
谢谢、
Adrian。

