一般说来,编写一个linux设备驱动程序的大致流程如下
(1)查看原理图、数据手册、了解设备的操作方法。
(2)在内核中找到相近的驱动程序,以它为模板进行开发,有时候需要从零开始。
(3)实现驱动程序的初始化:比如向内核中注册这个驱动程序,这样应用程序传入文件名时,内核才能找到相应的驱动程序。
(4)设计所要实现的操作,比如open、close、read、write等函数。
(5)实现中断服务(这个不是必须的)。
(6)编译该驱动程序到内核中,或者用insmod命令加载。
(7)测试驱动程序。
编写字符驱动程序的过程大概如下
(1)编写驱动程序初始化函数
进行必要的初始化,包括硬件初始化、向内核注册驱动程序等。
(2)构造file_operations结构中要用到的各个成员函数