dm9000读写寄存器的问题
时间:10-02
整理:3721RD
点击:
最近在看dm9000的驱动程序,发现读dm9000的寄存器有两种方式:
1 往网卡基址0x20000000写入寄存器地址后,直接读0x20000000
2 把寄存器地址和0x40进行或运算后,写入地址0x0C(该写入方法用的是第一种方式,只不过读0x20000000换成了写),然后通过0x0B地址选择操作方式,比如说读或写,操作完之后延迟一段时间,再读(或写)0x0d和0x0e获得寄存器值(或写入值)
方式2的函数名为phy_read,估摸着意思是读网卡芯片的寄存器,但我看DM9000的时候只看到一类寄存器,并没有分成两类,那么这两种读取方式有什么区别?
1 往网卡基址0x20000000写入寄存器地址后,直接读0x20000000
2 把寄存器地址和0x40进行或运算后,写入地址0x0C(该写入方法用的是第一种方式,只不过读0x20000000换成了写),然后通过0x0B地址选择操作方式,比如说读或写,操作完之后延迟一段时间,再读(或写)0x0d和0x0e获得寄存器值(或写入值)
方式2的函数名为phy_read,估摸着意思是读网卡芯片的寄存器,但我看DM9000的时候只看到一类寄存器,并没有分成两类,那么这两种读取方式有什么区别?
往网卡基址0x20000000写入寄存器地址后,直接读0x20000000