首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

块设备驱动和MMC子系统的关系

1 块设备驱动流程主要步骤

这里写下大概步骤

//注册块设备

register_blkdev()

...

//分配并初始化请求队列

xxx.queue = blk_init_queue(a(xx),xx)

...

//分配及注册gendisk结构体

xxx.gendisk->major = xxx.major; // 主设备号

xxx.gendisk->first_minor = 0; // 起始次设备号

xxx.gendisk->fops = &xxx; // 操作函数

xxx.gendisk->private_data = &ramdisk; // 私有数据

xxx.gendisk->queue = xxx.queue; // 请求队列

xxx.gendisk->disk_name, test=...; // 名字

...

add_disk(xxx.gendisk);

...

//编写请求队列里的相关函数

a(xx)

...

这样在add_disk操作后就注册了一个块设备驱动,运行后在驱动目录下(/dev/...)下就可以看到相关的设备了。

2 和MMC子系统的关系

上面的请求队列里的函数就是将进行具体读写操作的函数。肯定是要涉及到一些具体设备的读写协议和寄存器编写的。

块设备是一类设备,包括sd卡,emmc之类的设备。它们的读写协议有很多相近的地方,所以把它们独立提取出来。方便编写。所以MMC子系统是在普通块设备驱动之上继续封装开发的子系统。

处理顺序如下:

mmc子系统首先根据实际电路的芯片注册一些函数,当检测到实际设备存在时,再进行块设备驱动进行注册。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230404A05KLI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券