免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1974 | 回复: 3
打印 上一主题 下一主题

[内核模块] 内核模块中使用proc文件节点与驱动交互问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-21 11:25 |只看该作者 |倒序浏览
本帖最后由 feng5219 于 2014-06-21 12:37 编辑

在内核一个 i2c camera 设备驱动中,做了个proc节点接口,以方便调试。

    dir = proc_mkdir("camera_i2c_test", NULL);
    read_r = create_proc_entry("read_r", 0666, dir);
        if (read_r != NULL){
               
                read_r->write_proc = camera_i2c_test_proc_read;
        }

在实际进行测试的时候用echo 往/proc/camera_i2c_test/read_r/节点上写一个i2c地址,
camera_i2c_test_proc_read 中可以打印相应的寄存器信息,但是发现camera_i2c_test_proc_read
操作在一直被调用,即使我用ctrl + c 退出echo 操作,打印信息仍在继续跑。
想问下该怎么让这个打印信息停止下来,即让camera_i2c_test_proc_read这个调用次数可控。

目前没找到比较好的解决办法,请大家帮忙看看。
不胜感激。。
       

论坛徽章:
0
2 [报告]
发表于 2014-06-21 11:45 |只看该作者
已想到一个解决方式,就是kill掉执行echo 时 所在的执行shell PID,则可停下,
感觉有点繁琐,希望能有更简单方式,或者更好调试办法。

请大家多多指点。

论坛徽章:
0
3 [报告]
发表于 2014-06-21 11:58 来自手机 |只看该作者
函数返回值问题吧,是不是返回0了

论坛徽章:
0
4 [报告]
发表于 2014-06-21 12:34 |只看该作者
本帖最后由 feng5219 于 2014-06-21 12:36 编辑

回复 3# guobamantou

嗯,确实是那个读操作 camera_i2c_test_proc_read 返回值的问题,之前直接 return 0 了,修改后已解决。

谢谢


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP