首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

请问Linux下dm9000网卡驱动程序有关问题

2012-03-01 
请教Linux下dm9000网卡驱动程序问题应用程序网络编程是基于socket接口的,好像完全屏蔽了底层,不能像字符设

请教Linux下dm9000网卡驱动程序问题
应用程序网络编程是基于socket接口的,好像完全屏蔽了底层,不能像字符设备那样应用程序可以调用open、read、write等

驱动函数,请问系统是在哪里调用了驱动程序里的函数,什么时候调用?比如dm9000_open,dm9000_ioctl,

dm9000_phy_read,dm9000_phy_write等函数我想用它,怎么调用?

请高手指点

[解决办法]

探讨
应用程序网络编程是基于socket接口的,好像完全屏蔽了底层,不能像字符设备那样应用程序可以调用open、read、write等

驱动函数,请问系统是在哪里调用了驱动程序里的函数,什么时候调用?比如dm9000_open,dm9000_ioctl,

dm9000_phy_read,dm9000_phy_write等函数我想用它,怎么调用?

请高手指点

[解决办法]
探讨

多谢指点,我看见网络应用程序编程都是用socket,没见有直接调用的,系统肯定调用了这些函数,不知道在哪里调用了?

[解决办法]
驱动属于设备层的,与块和字符设备属于同级别,但的确没有这些设备的这样上层函数,这是个主要区别。
如果能使网卡,系统会自动调用这些函数,包括事件的处理。 至于socket网络层函数属于上层函数,可以认为没有直接的控制关系,只有是在查找路由等时候,才要查找相应的设备接口和调用收发函数。
[解决办法]
socket发送数据,会查找相应的interface,并调用发送函数,当然不是socket直接调,要用过tcp/ip协议栈去调。
接收函数是自动发送给tcp/ip栈,然后socket可以读。 至于初始化和配置函数,是网卡自动加载时候进行的,属于设备自身的管理,跟socket没关

热点排行