日期:2014-05-16  浏览次数:20603 次

初学linux设备驱动,菜鸟级问题,请指教,感激不尽
刚开始接触linux设备驱动,大致浏览了《linux设备驱动第三版》,编写第一个设备驱动程序,感觉入门很难,请问,写驱动的时候,必须要写的几个设备方法有哪些(open,release,read,write),如果要编写对设备的某些操作的函数,写在哪里面?

------解决方案--------------------
我的一点看法,看有没有帮助:
对字符设备,有一个设备操作函数的结构体,就是3楼说的struct file_operations,这个结构体中的函数可以直接和用户交互,即:应用层的程序是可以直接使用这些函数的。这其中有一个函数为ioctl(),这个函数是接收一个命令,然后根据该名利做相应的动作,其实就是一个switch()函数。那么你就可以设定几个命令,比如说:INSNODE,DELNODE等等,然后再写好每个命令的操作(就是你说的插入删除节点等)。既然这个函数是用户可以直接调用的,那么在应用程序中,调用该函数,参数为你要做动作的对应命令,应该就可以了吧
------解决方案--------------------
ioctl()
http://hi.baidu.com/shixying/item/e711c5dd937ff5f593a974cf