对“三连续写入:字节10,字节32,字节54”感到困惑?

时间:2011-12-21 04:11:43

标签: linux linux-device-driver embedded-linux

我正在学习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写入同一位置?

1 个答案:

答案 0 :(得分:1)

而不是分配几个不同的寄存器来写入,该芯片会连续写入相同的DATA寄存器,直到您设置所有信息为止。 DATA寄存器宽2个字节,但MAC地址为6个字节,编号为0-5。所以你必须一次写2个字节:首先是字节编号1和0,然后是字节编号3和2,然后是字节编号5和4.然后将0xFFFF写入DATA寄存器3次,然后重复对于源地址和0x0000。