初级会员

- 积分
- 118
- 金钱
- 118
- 注册时间
- 2013-10-27
- 在线时间
- 23 小时
|
各位大神,最近用到LWIP协议栈来实现设备和上位机的以太网通讯,想请教下在原子 tcp_Client_demo.c中,定义了一个数据接收缓存: u8 tcp_client_recvbuf[TCP_CLIENT_RX_BUFSIZE];//数据接收缓存
在Lan8720.c中的定义的底层数据接收缓存:
uint8_t *Rx_Buff; //底层数据接收缓存
对于这两处缓存,一开始有些疑惑,思考了一些时间,决定运行代码,发送数据来跟踪调试代码。个人调试代码跟着程序运行,找到调用tcp_client_recvbuf的地方,
是在tcp_Client_demo.c接收数据的时候。tcp_client_recvbuf中存放的是上位机发送过来的数据,而在Rx_Buff中没发现接收数据。因此,我个人判断Rx_Buff并不是
真正经过LWIP所解析后的数据,而是MAC网卡接收到的原始数据,这个原始数据是从DMA描述符中读取到的,而tcp_client_recvbuf中数据,是经过LWIP协议栈处理
后的数据。不知道这样理解对不对。说的不对的地方请大家指正。
|
|