【问题标题】:Linux Module Programming fails and caught in loopLinux 模块编程失败并陷入循环
【发布时间】:2012-12-11 04:37:52
【问题描述】:

好的,所以我正在为硬件任务编程,但可以使用一些帮助或洞察力。我知道我到处都读过你不应该在模块中打开文件,但这是我们的任务......

无论如何我的模块代码在这里: http://pastebin.com/LU8hWraL

我的用户级代码在这里: http://pastebin.com/RC0Zk1kQ

好的,我的问题是有时它可以工作,有时它不工作......大多数时候它不工作,它在内核上陷入循环,我不明白是什么导致了这个问题,我怎么能解决它。对于这种情况的任何帮助都将不胜感激,我只是对不断关闭并重新启动我的虚拟机感到沮丧。

即使有人告诉我当我的虚拟机这样循环时如何找到错误...?

【问题讨论】:

  • 您可能想尝试在内核上使用调试器。
  • 在内核中找不到很多关于调试的好资源...有什么建议吗?

标签: c linux-kernel kernel-module kernel


【解决方案1】:

首先,您可能想使用kernel_read(),不要自己做这些事情。

这里可能有两个问题

  • 您将&filpRead->f_pos 作为参数提供给readwrite,供内核内部使用。
  • 当您对数据进行加密或解密时,您读取的字节数可能不同。因此,写入与读取相同数量的数据也可能是个问题。

对两者都持保留态度,因为这是很久以前的事了,因为我已经研究过内核编程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    相关资源
    最近更新 更多