新手入门
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2013-2-28
- 在线时间
- 0 小时
|

楼主 |
发表于 2013-3-1 12:13:50
|
显示全部楼层
回复【3楼】正点原子:
加快arp应答,可以考虑加快轮询速度了。把循环的延时减少。 这个UDP时间我也不知道了,呵呵。
---------------------------------
1、原子哥所说的循环指的是UIP的主循环吗?
2、下面哪种方式的效率高些呢
a、直接赋值方式
// BUF->dhwaddr.addr[0] = BUF->shwaddr.addr[0];
// BUF->dhwaddr.addr[1] = BUF->shwaddr.addr[1];
// BUF->dhwaddr.addr[2] = BUF->shwaddr.addr[2];
// BUF->dhwaddr.addr[3] = BUF->shwaddr.addr[3];
// BUF->dhwaddr.addr[4] = BUF->shwaddr.addr[4];
// BUF->dhwaddr.addr[5] = BUF->shwaddr.addr[5];
//
// BUF->shwaddr.addr[0] = uip_ethaddr.addr[0];
// BUF->shwaddr.addr[1] = uip_ethaddr.addr[1];
// BUF->shwaddr.addr[2] = uip_ethaddr.addr[2];
// BUF->shwaddr.addr[3] = uip_ethaddr.addr[3];
// BUF->shwaddr.addr[4] = uip_ethaddr.addr[4];
// BUF->shwaddr.addr[5] = uip_ethaddr.addr[5];
//
// BUF->ethhdr.src.addr[0] = uip_ethaddr.addr[0];
// BUF->ethhdr.src.addr[1] = uip_ethaddr.addr[1];
// BUF->ethhdr.src.addr[2] = uip_ethaddr.addr[2];
// BUF->ethhdr.src.addr[3] = uip_ethaddr.addr[3];
// BUF->ethhdr.src.addr[4] = uip_ethaddr.addr[4];
// BUF->ethhdr.src.addr[5] = uip_ethaddr.addr[5];
//
// BUF->ethhdr.dest.addr[0] = BUF->dhwaddr.addr[0];
// BUF->ethhdr.dest.addr[1] = BUF->dhwaddr.addr[1];
// BUF->ethhdr.dest.addr[2] = BUF->dhwaddr.addr[2];
// BUF->ethhdr.dest.addr[3] = BUF->dhwaddr.addr[3];
// BUF->ethhdr.dest.addr[4] = BUF->dhwaddr.addr[4];
// BUF->ethhdr.dest.addr[5] = BUF->dhwaddr.addr[5];
b、memcpy方式
memcpy(BUF->dhwaddr.addr, BUF->shwaddr.addr, 6);
memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);
memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);
memcpy(BUF->ethhdr.dest.addr, BUF->dhwaddr.addr, 6);
3、如果CPU操作被DMA占有的描述符,会有什么结果呢
呵呵,多谢啦,问题比较多。 |
|