在前面Linux面向对象中大概提到了一些概念。
然后最近在看mtd时候又学到了一些东西,记下来。
其实一个驱动开发,其实就是子类对象的填充。
比如fsl_ifc_nand.c
初始化了mtd对象和nand_chip对象,完成ByteRd、ByteWr,BufWrite以及BufRead。实现了真正的驱动。
nand flash驱动编写,只需要实现与硬件相关的驱动层的结构体(nand_chip),块设备系统内核已经实现了mtd原始设备层与mtd字符设备。
mtd的read是如何实现的,这个是我比较在意的东西。
nand_scan函数中完成了Mtd_info的read等函数的赋值,
/* Fill in remaining MTD driver data */
mtd->read = nand_read;
mtd->write = nand_write;
参考文章:http://blog.youkuaiyun.com/sharecode/article/details/9151745
本文介绍了在Linux环境下NAND Flash驱动的开发过程,重点讲解了如何通过填充子类对象实现驱动,包括初始化mtd和nand_chip对象,实现读写操作。并通过具体代码示例展示了mtd读操作的实现。
1541

被折叠的 条评论
为什么被折叠?



