tcp.c文件中,tcp_poll()回调函数被周期性调用,每interval秒调用两次。
在Xilinx SDK TCP server demo中 interval最小值是1秒,即poll_callbak将被500ms调用一次。
poll函数在tcp.c文件被函数tcp_slowtmr()周期性调用,调用周期取决于协议栈定时器中断频率的设置。
定时器中断发生会调用platform_zynqmp.c中的timer_callbak回调函数,该函数会给调用标志位(TcpFasttmrFlag和TcpSlowtmrFlag)赋值,从而控制tcp_slowtmr()函数的调用周期。
如果需要更改poll回调函数或是LWIP协议栈周期性处理时间的频率可通过更改platform_zynqmp.c中PLATFORM_TIMER_INTR_RATE_HZ的宏定义值来调整。
对于一般以太网协议,LWIP通过tcp_write()函数发送数据,其中参数len的值应小于等于1460.
本文详细解析了LWIP协议栈中的定时器机制,包括tcp_poll()回调函数的工作原理及其调用周期,如何通过修改宏定义调整poll回调函数的频率,以及tcp_write()函数的数据发送限制。
1万+

被折叠的 条评论
为什么被折叠?



