中级会员
- 积分
- 404
- 金钱
- 404
- 注册时间
- 2014-3-6
- 在线时间
- 41 小时
|
1金钱
先上图:
图1
第一次02:00:00:2a:00:2a
dierci 02:00:00:42:00:42
用的原子的历程,起初是发现udp服务端(原子历程),在接收的时候要在板子上电后等一段时间,后来观察板子上电后会发出俩次arp requset,且mac不同,网络助手发送udp数据包先针对一个mac,不行的话在广播请求。这样会等好久。具体不知道为什么会有两次arp requset,又大神们解答一下吗。另外 我确保etharp_gratuitous(netif);只执行了一次。而在
u8 ETH_Tx_Packet(u16 FrameLength)
{
if((DMATxDescToSet->StatusÐ_DMATxDesc_OWN)!=(u32)RESET)return ETH_ERROR;
DMATxDescToSet->ControlBufferSize=(FrameLengthÐ_DMATxDesc_TBS1);
DMATxDescToSet->Status|=ETH_DMATxDesc_LS|ETH_DMATxDesc_FS;
DMATxDescToSet->Status|=ETH_DMATxDesc_OWN;
if((ETH->DMASRÐ_DMASR_TBUS)!=(u32)RESET)
{
ETH->DMASR=ETH_DMASR_TBUS;
ETH->DMATPDR=0; //只要一过这里,就发出两次arp requset。
}
DMATxDescToSet=(ETH_DMADESCTypeDef*)(DMATxDescToSet->Buffer2NextDescAddr);
return ETH_SUCCESS;
}
|
最佳答案
查看完整内容[请看2#楼]
这个目的是刷新存在感,同时也清除交换机缓存,告诉交换机我换位置了。
你确认一下你所使用设置的MAC地址是多少,为什么广播出去的是两个,或两个都是错的。
|