韦东山二期驱动视频-块设备驱动1

对于字符设备驱动程序:

1、确定主设备号

2、构造file_operations结构体

3、注册  register_chrdev

4、入口、出口、协议

对于块设备,由于有扇区的存在,读写方式不同,如果频繁的向字符设备一样读写,那么效率会降低——如写入前,会先备份整个扇区的数据,然后擦除,然后合并新数据和旧数据,再整体写入。

所以相比于字符设备驱动程序,

①先放入队列

②优化后再去执行

——————————————————————————————————————————

块设备驱动框架:

应用程序调用读写函数——>文件系统——>扇区的读写

函数为ll_rw_block,位于fs/buffer.c文件中

>>>>>>>>>>

通过分析框架,得出块设备驱动程序的编写步骤:

1、分配一个gendisk结构体,alloc_disk

2、设置这个结构体

2.1分配/设置队列:request_queue_t/blk_init_queue,该队列会提供读写能力

2.2设置gendisk结构体其他信息,包含一些属性:如容量等。

3、注册gendisk结构体,add_disk

 

使用内存模拟磁盘

代码分析:

/* 参考:
 * drivers\block\xd.c
 * drivers\block\z2ram.c
 */

#include <linux/module.h
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值