系列文章目录
Linux驱动学习(4)
文章目录
目录
目录
系列文章目录
文章目录
前言
一、MTD是什么?
二、MTD子系统架构
1.Linux文件存储基本架构:
2.MTD子系统基本架构:
总结
前言
MTD设备在嵌入式设备中时常被用到,linux系统到底如何使用MTD设备是每个嵌入式开发者必须要弄清楚的一门技术。
一、MTD是什么?
根据百科解释,MTD是Memory Technology Device的缩写,指的是一类提供类似文件系统的访问接口的非易失性存储设备,例如闪存、EEPROM和NAND Flash等。MTD设备可以通过一组访问接口(如mtdchar、mtdblock和JFFS2等)与内核交互,从而提供高效的文件系统支持和数据存储服务。在Linux系统中,MTD设备被广泛用于嵌入式系统中,如路由器、智能家居、可穿戴设备等。
从这里我们知道,MTD主要是非易失性存储设备,常见的是flash,和内核交互通过字符设备或者块设备的形式。
二、MTD子系统架构
1.Linux文件存储基本架构:
Linux主要通过块设备的形式访问磁盘等设备,但是不仅仅是块设备,也可以通过字符设备访问存储设备,字符设备的驱动程序相对于块设备驱动程序更简单,常常可以用在嵌入式设备分区升级等不需要随机访问的功能当中,而对于小文件的创建,需要文件系统进行复杂的管理,这个时候就需要使用块设备驱动对存储设备随机f的功能
2.MTD子系统基本架构:
mtd虽然叫做子系统,但是内部没有subsys_init宏,所以我的理解是mtd就是有数个模块组合的子系统,主要包含mtd字符设备驱动,mtd块设备驱动,nand flash驱动,nor nand驱动。
参考:Linux MTD架构下的nand flash驱动详解_nand_to_mtd 信息不对_Golden_Chen的博客-CSDN博客
总结
mtd主要包含mtd字符设备驱动和mtd块设备驱动,接下来写驱动demo和示例demo。