对于Flash芯片的驱动,Linux提供了完善的驱动程序,只需要在内核配置里面选择好相应的类型即可。
在Linux中通过MTD子系统提供的抽象设备机制,来实现对Hash设备的管理控制和数据读写。MTD设备是一类特殊的存储设备,如常用的Flash芯片、CFI卡等。MTD同时提供通过字符设备方式和块设备方式来管理控制MTD设备的机制。
MTD层分为:用户模块接口层、MTD抽象层和MTD设备驱动模块层。MTD层通过设备驱动模块实现对存储设备的物理访问功能,通过用户模块提供用户空间直接访问的接口。
MTD的设备驱动模块层负责驱动Flash硬件,只需实现实际设备上的访问控制,与内核交互的复杂工作则由MTD抽象层完成。其中也对Nand-Flash的驱动进行了抽象,还实现了错误检测与纠错(ECO)和坏块处理等用户模块层提供从用户空间直接访问的接口,上层应用只需通过MTD抽象层提供的字符设备方式或块设备方式来访问MTD抽象设备,然后通过MTD的内部机制把这些请求交给实际的驱动模块去执行。MTD抽象层定义了抽象的MTD设备结构,对于具体设备的驱动模块,需要设计好公共函数的实际内容,并在检测到实际设备后注册一个MTD设备,然后就可通过MTD提供的字符设备访问方式或块设备访问方式直接使用具体的硬件设备。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。