在前面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.csdn.net/sharecode/article/details/9151745