35.驱动--MTD子系统

目录

nand_flash:

nor_flash:


linux设备驱动(32)MTD子系统详解 - Action_er - 博客园MTD子系统分析(一)——MTD——简介 - 程序员大本营linux mtd 块设备,基于块设备子系统的MTD子系统(2.6.26)_寅成的博客-CSDN博客

nand_flash例子

24.Linux-Nand Flash驱动(分析MTD层并制作NAND驱动) - 诺谦 - 博客园

nor_flash例子

25.Linux-Nor Flash驱动(详解) - 诺谦 - 博客园

写写加深印象。

MTD(Memory Technology Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框架中的设备驱动层,可以说,MTD就是针对Flash设备设计的标准化硬件驱动框架。使用MTD子系统写flash设备驱动,非常快捷

MTD子系统驱动主要曾为两层:

1.MTD块设备层,这部分负责设备的建立,数据的读/写、优化处理等,这跟传统的块设备驱动类似。设备的建立,gendisk结构体的分配设置,队列的设置等,内核都会自动完成。这层使用mtd_info结构体描述分区

在/dev下创建字符设备节点(主设备号90)以及块设备节点(主设备号31), 用户通过访问此设备节点即可访问MTD字符设备或块设备。

mtd_info 结构体描述原始设备层的一个分区的结构, 描述一个设备或一个多分区设备中的一个分区。定义位于:include\linux\mtd\mtd.h

2.协议相关硬件层。nand_flash和nor_flash有不同的协议和硬件细节,这部分知道发什么,如发送什么命令可以识别、读写、擦除等操作,以及硬件该怎么发。

nand_flash有nand的协议,nor_flash有nor_flash的协议。用户得配置好这块,nor_flash使用map_info结构体,nand_flash使用nand_chip结构体,不同协议有不同的函数。通过对应的结构体和函数构造对应的操作环境。

MTD子系统的写法:

用户只需要完成协议相关硬件层的相关结构体的分配设置注册,并和mtd层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值