阅读:1276回复:0
请问:为什么在rtl8139too.c中的read_eeprom函数中要用i = 4 + addr_len??
我在读rtl8139too.c中的read_eeprom函数时对下面的代码不太明白:
/* Shift the read command bits out. */ for (i = 4 + addr_len; i >= 0; i--) { int dataval = (read_cmd & (1 << i)) ? EE_DATA_WRITE : 0; writeb (EE_ENB | dataval, ee_addr); eeprom_delay (); writeb (EE_ENB | dataval | EE_SHIFT_CLK, ee_addr); eeprom_delay (); } 假设这里的addr_len为6,则读93C46的指令为9位长,而这里为什么要循环11次呢???? 我觉得 i = 2 + addr_len 就可以了啊。 不知道是因为我看的关于93C46的硬件资料(见附件)与8139用的93C46不一样,还是因为别的什么原因???? 感谢各位高手不吝赐教。 |
|
|