驱动模块间的依赖关系是怎么产生的

发布于 2022-09-28 18:15:24 字数 295 浏览 10 评论 0

我写了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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

妄想挽回 2022-10-05 18:15:25

没有人知道吗,顶一下

め可乐爱微笑 2022-10-05 18:15:25

用cat modules 查看,却发现dsp依赖于key模块,为什么会有这种情况呢,是驱动程序的哪部分造成了这样的结果

cat modules怎么发现依赖关系? 还是lsmod?

key模块export symbol,然后dsp模块调用了该symbol,就会造成依赖关系

ゞ记忆︶ㄣ 2022-10-05 18:15:25

在/proc目录下用cat modules 和lsmod效果是一样的,都可以看出系统所加载的模块
“key模块export symbol,然后dsp模块调用了该symbol,就会造成依赖关系”

symbol是什么概念,key模块为什么会export symbol,是内核版本的问题吗

风流物 2022-10-05 18:15:25

谢谢谢谢,明白了不少。
一个模块被编译后,对系统提供一些接口,类似一个函数库,其中的函数或变量可以被其他模块调用,这是一个机制,提高了代码利用率,应该不会产生什么后果。
可是我的两个模块加了以后,shell就不能操作了,无法执行命令,提示什么malloc:block on free list clobberd,之后就退出shell,实在难解

[ 本帖最后由 lihonggang 于 2007-3-14 17:14 编辑 ]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文