- 13
- 0
- 约9.09千字
- 约 39页
- 2017-03-30 发布于湖北
- 举报
上章回顾
Linux下MTD驱动
第8章
预习检查
本章目标
掌握Linux下MTD驱动层结构
掌握NOR Flash或NAND Flash驱动程序的移植、开发
了解Flash文件系统
本章结构
Linux下MTD驱动
Linux MTD 系统层次
Linux MTD系统接口
Linux MTD 驱动结构
MTD NOR Flash驱动
MTD NAND Flash驱动
Flash文件系统建立
8.1 Linux MTD驱动结构
MTD(Memory Technology Device)
MTD(内存技术设备)是用于访问memory设备(比如NOR Flash、NAND Flash)的Linux的子系统。
MTD在硬件和上层之间提供了一个抽象的接口。目的是为了使新的memory设备的驱动更加简单。
MTD将文件系统与底层的Flash存储器进行了隔离,使Flash驱动工程师无须关心Flash作为字符设备和块设备与Linux内核的接口。
8.1.1 Linux MTD系统层次结构
Linux系统中的Flash设备驱动可将分为四层:
设备节点
MTD设备层
MTD原始设备层
硬件驱动层。
字符设备节点
MTD字符设备
MTD块设备
块设备节点
文件系统
根文件系统
MTD原始设备
FLASH硬件驱动
8.1.2 Linux MTD 系统接口
MTD设备层
mtd_notifier
mtd_fops
字符设备
(mtdchar.c)
mtd_notifier
mtd_fops
mtdblks
块设备
(mtdblock.c)
register_mtd_user() unregister_mtd_user()
put_mtd_device()
erase_info()
get_mtd_device() MTD原始设备层
mtd_notifier
mtd_table
(mtdcore.c) mtd_info
(mtdpart.c) mtd_part
add_mtd_partitions() del_mtd_partitions()
add_mtd_device() add_mtd_device()
mtd_partition() Flash硬件驱动层
(your-flash.c)
8.1.2 Linux MTD 系统接口
mtd_info 结构体主要成员(1)
u_char type; //内存技术的类型
u_int32_t flags; //标志位
u_int32_t size; //mtd设备的大小
u_int32_t erasesize; /*主要的擦除块大小(同一个mtd设备可能有数
*种不同的erasesize)*/
u_int32_t oobblock; //oob块大小
u_int32_t oobsize; //oob数据大小
u_int32_t ecctype; //ecc类型
u_int32_t eccsize; //ecc工作的范围
char *name;
8.1.2 Linux MTD 系统接口
mtd_info 结构体主要成员(2)
int (*erase)(struct mtd_info *mtd, struct erase_info *instr)?;
//此routine用于将一个erase_info加入erase queue
int(*read)(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen,
u_char *buf); //读F
您可能关注的文档
最近下载
- 九年义务教育控辍保学工作方案.doc VIP
- 2025年安徽中考语文试卷及答案出炉 .pdf VIP
- KA 25-2025 煤矿井下机电设备完好性要求.docx VIP
- 劳动合同中止期间的工资支付与社保缴纳义务.docx VIP
- T BALI 003—2023 节律照明灯具性能要求.pdf VIP
- 2012年江苏高考数学试卷真题及答案.doc VIP
- 高中地理野外实践活动与乡土文化传承的结合研究教学研究课题报告.docx
- 2025光伏电站光伏组件并网验收测试标准光伏组件安装质量检查标准.docx VIP
- 上汽通用五菱宝骏610_汽车使用手册用户操作图解驾驶车主车辆说明书pdf电子版下载.pdf VIP
- 运筹学题库及答案.doc VIP
原创力文档

文档评论(0)