算起来学写驱动也有段时间了,不过一直感觉学的很缓慢,甚至都感觉自己还像没入门一样,这几天在搞i2c驱动,其实去年就在这方面学过段时间,只是那时候刚接触,糊里糊涂也看不明白,后来又换其他方面了,现在重新拿起感觉还是很陌生,今天看了一下午源码,参考了几个i2c从设备的驱动实例,忽然对驱动编写有点小认识,不知道是否正确,先还是写出来。
我觉得写Linux驱动首先要确定其框架,当然这也就要求先对这方面的相关知识有所了解了,就以i2c的驱动为例吧,我个人觉得,首先要明白那些是属于你要做的,那些是有现成的可以用的,由于我的开发板已经做好了i2c core那部分,其实现在的Linux系统对这部分都已经做好了,我们所要做的也就是i2c设备驱动和文件操作那部分,下面也就是我的一点见解:(还是以i2c为例)
写驱动最主要就是打好框架:i2c设备驱动与i2c_driver接口,另外一个就是字符设备的基本结构---文件操作。
1、i2c设备驱动与i2c_driver接口:
换言之即填充i2c_driver结构体-----》也即attach_adapter、detach_client、command等函数实现。
2、文件操作:
file_operation--->open、close、read、write、ioctl、llseek等
3、设备注册、注销等
modul_init、module_exit
如此以来,脑袋里对i2c的驱动就会很明亮,也就知道自己接下来要做什么了。
全是本人想法,也许有误,有误之处还望高人指示,先谢了!
阅读(1210) | 评论(0) | 转发(0) |