自己总结一些设备驱动开发的通用步骤和模式:
devfs:将设备虚拟化为文件,并将文件操作转化为设备操作。
例如linux操作系统中,所有的设备驱动都是注册一个devfs类型的对象,让设备以/dev/..的形式出现,用户只需要操作这个设备名字便可以实现一系列的开发,而驱动卸载就是把这个已经注册的devfs类型的对象进行反注册,即删除该对象即可。
一般来说:其函数模型如下所示:
而我们重点要实现的就是p_devfs_str结构体里面的操作成员,其结构体成员构造如下图所示:
实现这些函数方法后,再初始化devfs_obj_str结构体,就可以调用驱动注册函数进行注册了。因不同的操作系统而结构名字和类型以及成员数量等不同,但是整体驱动开发思路是如此。重点是掌握这种思维。