第19章Flash设备驱动之Nand Flash驱动

19.3 Nand Flash驱动

    如图 19.5 所示,Linux 内核在 MTD的下层实现通用的 NAND 驱动(主要通过 drivers/mtd/nand/

nand_base.c 文件实现),因此芯片级的 NAND 驱动不再实现mtd_info 中的 read()、write()、read_oob()、write_oob()等成员函数,而主体转移到 nand_chip 数据结构。


    MTD 使用 nand_chip 数据结构表示一个 NAND Flash 芯片,这个结构体中包含了关于 NAND Flash 的地址信息、读写方法、ECC 模式、硬件控制等一系列底层机制,其定义如代码清单 19.10所示。

代码清单 19.10 nand_chip 结构体

include/linux/mtd/nand.h

struct nand_chip {
        void  __iomem   *IO_ADDR_R;
        void  __iomem   *IO_ADDR_W;

        uint8_t         (*read_byte)(struct mtd_info *mtd);
        u16             (*read_word)(struct mtd_info *mtd);
        void            (*write_buf)(struct mtd_info *mtd, const uint8_t *buf, int len);
        void            (*read_buf)(struct mtd_info *mtd, uint8_t *buf, int len);
        int             (*verify_buf)(struct mtd_info *mtd, const uint8_t *buf, int len);
        vo

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值