mtd框架

概述:

对于我们写驱动的来说,nand Flash、norFlash 等常见设备的驱动内核已经帮我们是实现好了,我们只需要在板级文件或平台文件中对分区表信
息进行修改(如arch/arm/match-s3c24xx/mach-jive.c)。
针对不同的CPU,根据nand控制器时序要求,微改一下最底层操作硬件的函数如(drivers/mtd/nand/s3c2410.c中的一些初始化函数)

层次:

norFlash驱动:

在mtd基础上又做了一层抽象,对于我们写驱动的,不用过分关心mtd的细节,只要定义一个map_info,再调用do_map_probe()即可。

重要的结构体:

实例:

内核源码drivers/mtd/maps/physmap.c

nandFlash驱动:

在mtd基础上又做了一层抽象,对于我们写驱动的,不用过分关心mtd的细节,只要定义一个nand_chip,
初始化其中的操作方法(当然,这些操作方法不赋值也是可以的将会使用默认的nand_base.c中的相应方法)。
将这个nand_chip作为mtd_info的私有数据域,最后调用nand_scan().

重要的结构体:

实例:

`内核源码 drivers/mtd/nand/s3c2410.c

posted @ 2017-02-20 17:07  云鹤比天  阅读(228)  评论(0编辑  收藏  举报