我正在学习SMSC smc91cx驱动程序代码,并且我学会了如何通过Application Note 9-6的指令为smc91c111 nic编写测试代码。我无法理解“传输数据包”下的以下说明:
Write the destination address (three successive writes: bytes 10, bytes 32, bytes 54)
Write 0xFFFF, 0xFFFF, 0xFFFF
Write the source address (three successive writes: bytes 10, bytes32, bytes 54)
Write 0x0000, 0x0000, 0x0000
我无法理解这些说明。我应该将10字节大小的0xFF加上32字节大小加上54字节大小写入缓冲区,还是只写第10字节位置,第32位,第54字节位置的0xFF?
但如果是这样,为什么要将0x0000写入同一位置?
答案 0 :(得分:1)
而不是分配几个不同的寄存器来写入,该芯片会连续写入相同的DATA
寄存器,直到您设置所有信息为止。 DATA
寄存器宽2个字节,但MAC地址为6个字节,编号为0-5。所以你必须一次写2个字节:首先是字节编号1和0,然后是字节编号3和2,然后是字节编号5和4.然后将0xFFFF写入DATA
寄存器3次,然后重复对于源地址和0x0000。