主题中讨论的其他器件:TMDSHSECDOCK、 TMDSCNCD28388D、 C2000WARE
工具与软件:
尊敬的专家:
我将面临以下问题。 您能否告诉我们、SW 如何避免意外的重新传输。
有时、CM 上的 lwip (2.1.2)在 之前非常关闭的传输(少于)时执行"TCP 重传" 1毫秒)
电流环路
TI 评估板(192.168.1.100) - PC (192.168.1.11)
TMDSCNCD28388D (CM)和 TMDSHSECDOCK - PC
软件
它基于 C2000ware 示例(enet_lwip_tcp)
C:\ti\c2000\C2000Ware_4_01_00_00\libraries\communications\Ethernet\third_party\lwip\examples
e2e.ti.com/.../enet_5F00_lwip_5F00_tcp.c
INTERRUPT_ENABLE (INT_EMAC_TX0);
INTERRUPT_ENABLE (INT_EMAC_RX0);
INTERRUPT_ENABLE (INT_EMAC);
lwIPTimer()在 SysTickIntHandler 上调用
tcp_write()和 tcp_output()在主级别上调用(不在中断例程上调用)
我在 tcp_write()起始和 tcp_output()结束之间禁用中断 TX、RX 和 SysTick
以避免出现如下所示的上下文切换问题
并将相关中断设置在相同的优先级、以避免出现多个中断问题。
Interrupt_setPriority (INT_EMAC_TX0、3);
Interrupt_setPriority (INT_EMAC_RX0、3);
Interrupt_setPriority (INT_EMAC、3);
Interrupt_setPriority (FAULT_SysTick、3);
但是、TCP 重新传输执行的间隔时间是关闭的(距离上一次传输小于1毫秒)。
我 找不到此行为的代码。
我认为以下代码用于发送重新传输数据包、但当线鲨鱼日志中发生这种行为时、不会命中 BP。
tcp_slowtmr()
if (pcb->rtime >= pcb->RTO ){
/*重新传输的时间。 */
此致、
Hidehiko