以下程序是设置网卡的地址,只有符合这个地址的数据包才接收.
void writemynodeid()
{ page(1);
reg01=mynodeid[0].bytes.high; //PAR0
reg02=mynodeid[0].bytes.low; //PAR1
reg03=mynodeid[1].bytes.high; //PAR2
reg04=mynodeid[1].bytes.low; //PAR3
reg05=mynodeid[2].bytes.high; //PAR4
reg06=mynodeid[2].bytes.low; //PAR5
}
又用到几个新的寄存器,是页1的几个寄存器:
PAR0,PAR1, PAR2, PAR3,PAR4,PAR5
这几个寄存器是网卡的工作时候用的地址,只有符合这个地址的数据包才接收,这个地址是可以设置为其他的值,不一定设置为网卡的物理地址,为了不跟别的网卡地址冲突,最好设置为网卡的地址,(如果用户需要设置为其他的值,也是可以的).
博客给出了设置网卡地址的程序writemynodeid(),该程序将特定值赋给页1的几个寄存器PAR0 - PAR5。这些寄存器是网卡工作时使用的地址,只有符合该地址的数据包才会被接收,地址可按需设置,为避免冲突,最好设为网卡物理地址。
1万+

被折叠的 条评论
为什么被折叠?



