Flash设备驱动
今天又看了一遍Flash驱动,以下是一些总结。
Flash 设备驱动 ? 一.MTD Linux系统中,用了MTD系统来建立flash对linux的接口。 MTD---memory technology device,内存技术设备。 ? MTD可以分为四个层: 1,? 硬件驱动层:最底层,负责flash硬件设备的读、写、擦除。 Nor flash 芯片驱动位于/driver/mtd/chips/下 Nand flash驱动程序位于/driver/mtd/nand/下 ? 2, MTD原始设备层:主要指mtdcore.c 。包含了通用代码和flash的分区情况。这里定义了分区情况mtd_table[]. ? 3.??????? MTD设备层: 指mtdchar.c 和 mtdblock.c 。MTD可以被定义成字符设备或块设 MTD字符设备,通过注册一系列file_opereation函数(lseek,open,close,read,write,ioctl ),可实现对MTD设备的读写和控制。 MTD块设备,定义了块设备结构,mtdblk_dev。并声明了一个mtdblk_dev 类型的指针 数组mtdblks。 ? 4.设备节点。 /dev/mtd0 等。 MTD字符设备主设备号:90 MTD块设备主设备号:31 ? 常用代码: mtd.h ????? struct mtd_info? 描述MTD原始设备的数据结构。--------- ? mtdparts.c struct mtd_part? 描述分区??? ????? add_mtd_partition() ?????? del_mtd_partition ? partition.h struct mtd_partition? 分区内容? -------------------------- ? mtdcore.c ? struct mtd_table[] 分区表。? ? add_mtd_device() ? del_mtd_device() ? mtdchar.c? mtdblock.c ? 二.NOR flash 驱动 ?map_info do_map_probe() ? 三. Nandflash 驱动? drivers/mtd/nand/nand_base.c? struct nand_chip (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |