Chinaunix

标题: 内核模块中使用proc文件节点与驱动交互问题? [打印本页]

作者: feng5219    时间: 2014-06-21 11:25
标题: 内核模块中使用proc文件节点与驱动交互问题?
本帖最后由 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这个调用次数可控。

目前没找到比较好的解决办法,请大家帮忙看看。
不胜感激。。
       
作者: feng5219    时间: 2014-06-21 11:45
已想到一个解决方式,就是kill掉执行echo 时 所在的执行shell PID,则可停下,
感觉有点繁琐,希望能有更简单方式,或者更好调试办法。

请大家多多指点。
作者: guobamantou    时间: 2014-06-21 11:58
函数返回值问题吧,是不是返回0了
作者: feng5219    时间: 2014-06-21 12:34
本帖最后由 feng5219 于 2014-06-21 12:36 编辑

回复 3# guobamantou

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

谢谢


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2