驱动模块间的依赖关系是怎么产生的
我写了linux下两个设备模块的驱动程序,自己开发的,包括按键key模块和语音处理部分dsp模块。insmod key.o ,insmod dsp.o后,用cat modules 查看,却发现dsp依赖于key模块,为什么会有这种情况呢,是驱动程序的哪部分造成了这样的结果。irq?io?内存?望指教,谢谢.
而且有一个问题,就是加载两个模块后,有时候无法继续执行linux命令,比如:ls,cat ,......会产生错误,说malloc:block on free list clobberd.之后就退出shell,不知怎么会事,(是不是因为依赖的问题呢,怎么解决呢)请教!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
没有人知道吗,顶一下
cat modules怎么发现依赖关系? 还是lsmod?
key模块export symbol,然后dsp模块调用了该symbol,就会造成依赖关系
在/proc目录下用cat modules 和lsmod效果是一样的,都可以看出系统所加载的模块
“key模块export symbol,然后dsp模块调用了该symbol,就会造成依赖关系”
symbol是什么概念,key模块为什么会export symbol,是内核版本的问题吗
看完下面两篇,你应该能明白
http://www.linuxforum.net/forum/ ... d&sb=5&o=31
http://blog.chinaunix.net/u/8862/showart_229041.html
谢谢谢谢,明白了不少。
一个模块被编译后,对系统提供一些接口,类似一个函数库,其中的函数或变量可以被其他模块调用,这是一个机制,提高了代码利用率,应该不会产生什么后果。
可是我的两个模块加了以后,shell就不能操作了,无法执行命令,提示什么malloc:block on free list clobberd,之后就退出shell,实在难解
[ 本帖最后由 lihonggang 于 2007-3-14 17:14 编辑 ]