我正在使用ZYNQ(Picozed devboard)一个项目的操作。在应用程序运行裸金属,使用了lwIP TCP在RAW模式和主要表现这样的:暂停LWIP的原始API
- 经由以太网,其被存储在RAM中接收一批数据。
- 处理该批数据。
- 通过以太网发送回处理的数据。
的问题是,我需要测量处理部的执行时间。但是,在RAW模式下运行lwIP会强制我每250/500 ms调用一次tcp_fasttmr()和tcp_slowtmr(),这使得精确的测量非常困难。每当我没有调用tcp_tmr()函数一段时间时,我开始通过UART重复接收错误消息(“无法在recv_handler中分配pbuf”)。看起来这是从一些与错误处理相关的ISR调用的,但我无法真正找到确切的位置。
我的问题是,我该如何暂停网络功能,所以我并不需要定期调用tcp_tmr()?我尝试关闭连接并禁用接口(netif_set_down())并禁用定时器中断,但它似乎仍然对我的问题没有影响。