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