第八章 Linux下MTD驱动课件.pptxVIP

  • 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

文档评论(0)

1亿VIP精品文档

相关文档