驱动
文章平均质量分 65
L_D_D
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
从总线模型谈SD/MMC架构
mmc总线:mmc_bus_typemmc驱动结构体注册:mmc_register_driver函数。mmc设备结构体注册:mmc_alloc_card和mmc_add_card函数。1、匹配问题:由于总线的匹配函数mmc_bus_match直接返回1,根据总线模型知道,其实就是把驱动和设备的匹配任务扔给了驱动来完成:really_probe函数调用总线的probe函数,返回0就会原创 2013-09-29 17:03:59 · 1955 阅读 · 0 评论 -
详谈块设备的内部框架
块设备提出原因:对于块设备的操作:读取块->修改读出的数据-->擦除块-->把数据写入块。为了提高效率,我们对于块设备采取一种措施:先合并请求,然后在根据合并后的请求来操作块设备,这样可以使得块设备的操作次数降到最低。例如对同一块的不同扇区读取N此,通过和并就变为1次,那么对于前面提到的四个步骤可以得到很高的效率。块设备框架:用户层-->文件系统--->块设备驱动。基于块设备提原创 2013-10-01 15:40:29 · 1048 阅读 · 0 评论 -
从硬件层次驱动网卡
1、对于网卡命令可以直接使用drivers/net/dm9000.h文件,里面包含了各个寄存器。2、要确定板子和DM9000的接线,确定网卡寄存器的起始地址,我的是接在6410的静态存储区域的BANK2,端口起始地址为0x18000000,这样就可以度确定DM9000的地址端口是0x18000000,数据(地址)端口是0x18000004。对于DM9000寄存器操作就是基于这两个端口原创 2013-10-01 12:59:30 · 1298 阅读 · 0 评论 -
网卡如何和上层进行交互的
1、TCP/IP一般分为4层:应用层、传输层、网络层、网络接口层。网卡就属于最底层了(网络接口层,从七层协议就是物理层+数据链路层),那么网卡的上一层应该就是网络层,也就是IP层。2、我们知道上层会通过dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev)函数吧sk_buff 传给网卡驱动程序,那么这个函数怎么被调用的??原创 2013-10-01 12:01:39 · 1668 阅读 · 0 评论 -
从硬件操作到内核来谈网卡驱动
DM9000任务:1、把上层传下来的数据sk_buff,抽取有效数据通过DM9000转为二进制发送出去;2、接收来自其他设备的二进制数据,通过DM9000得到这些数据,然后封装为sk_buff格式,然后提交给上一层。我们需要对网卡驱动做的主要任务:1、网卡初始化,然网卡运行起来;2、注册接收中断函数,中断处理函数负责接收来自其他设备数据,以及当发送完成也会产生中断等。原创 2013-09-30 23:52:18 · 1202 阅读 · 0 评论 -
从总线模型看IIC架构
struct bus_type i2c_bus_type = {.name= "i2c",.match= i2c_device_match,.probe = i2c_device_probe,.remove = i2c_device_remove,.shutdown = i2c_device_shutdown,.pm = &i2c_device_pm_o原创 2013-09-29 21:03:38 · 1114 阅读 · 0 评论
分享