liulcyx
驱动牛犊
驱动牛犊
  • 注册日期2004-08-17
  • 最后登录2004-09-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1211回复:1

关于open函数的问题

楼主#
更多 发布于:2004-08-18 13:03
我编写了一个简单的驱动,通过动态分配(register_chrdev函数)major(254),在模块里面
我只有一个open函数。
insmod/rmmod都成功了,mknod也用了
在/proc/device里面能够发现我的major和设备名称(db_driver),
不过这个设备是不存在的
,我编写了一个用户程序,想试着用open打开这个设备,结果怎么也打不开!
我的思路是,不论这个设备是否存在,当用户程序通过open(设备名,0)打开这个设备时,都应该能够正确的调用驱动模块里面的open函数。我在驱动模块里面的open 函数里增加printk函数来跟踪,结果发现这个open没有被调用。
在insmod/rmmod时候,驱动模块的init/clean_up函数都调用了!
请大侠指教!
shownxu
驱动小牛
驱动小牛
  • 注册日期2002-02-05
  • 最后登录2008-04-25
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-20 10:40
proc文件系统是用来调试用的,真正的dev文件在/dev下,如果你使用register_chrdev,可能你就要用mknod自己建立一个设备节点,如果你使用devfs(2.4支持),系统可以动态帮你生成
游客

返回顶部