版主,NetX Duo的重传间隔是由NX_TCP_MAXIMUM_RETRIES,NX_TCP_TRANSMIT_TIMER_RATE和NX_TCP_RETRY_SHIFT控制的。默认值是1秒重传一次,不进行指数退避,总共重传10次。因此当服务器不存在时,连接超时是10秒。
ThreadX的默认时钟是1个tick为10ms,很多应用程序会修改成1个tick对应1ms。这个时候NetX Duo也需要做相应的调整,否则整体速率会比预期的快10倍。从你的描述看起来很有可能是ThreadX时钟配置和NetX Duo没匹配上。可以参考下面链接检查一下NX_IP_PERIODIC_RATE的配置
https://github.com/azure-rtos/netxduo/blob/068a9493ecd5af0024005ce695b992c4b172d6aa/ports/linux/gnu/inc/nx_port.h#L75
[C] 纯文本查看 复制代码 #ifndef NX_IP_PERIODIC_RATE
#ifdef TX_TIMER_TICKS_PER_SECOND
#define NX_IP_PERIODIC_RATE TX_TIMER_TICKS_PER_SECOND
#else
#define NX_IP_PERIODIC_RATE 100
#endif
#endif |