Link_X
驱动牛犊
驱动牛犊
  • 注册日期2003-12-15
  • 最后登录2005-11-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1263回复:0

请问:为什么在rtl8139too.c中的read_eeprom函数中要用i = 4 + addr_len??

楼主#
更多 发布于:2004-01-29 22:34
我在读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不一样,还是因为别的什么原因????

感谢各位高手不吝赐教。

附件名称/大小 下载次数 最后更新
2004-01-29_93c46_good.pdf (115KB)  13
游客

返回顶部