linux-kernel - 如何调试中断处理程序

标签 linux-kernel linux-device-driver interrupt-handling

我正在做一项作业,我必须为键盘编写和中断处理程序。因此,在此作业中,我们必须记录击键,以便允许执行文件 I/O,并且我们为此使用工作队列。

我知道中断处理程序中不允许休眠,因此我们不能在中断处理程序中使用任何文件 i/o 或 printk。

那么在实际行业中如何调试和中断处理程序或者如果我想调试某些东西我可以做什么?

最佳答案

是的!这是正确的,我们不能在 ISR 中使用 printk。正如我在 RTOS(实时操作系统)中研究的那样,在中断处理过程中,它会创建消息日志并将所需信息保存在日志文件中,您稍后可以看到。

类似的东西也适用于最新的内核。使用 trace_printk 您可以调试时间关键的地方。我以前没有使用过这个,所以没有这方面的示例。您可以关注这个link了解有关 trace_printk 的更多信息。

关于linux-kernel - 如何调试中断处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20082098/

相关文章:

ubuntu - Lubuntu 内核开发 - sched_setaffinity 未定义

linux - 允许/sbin/init 被 SIGSTOP?

在 linux 内核中使用 sprintf 将字符串转换为 int

linux - ALSA ASoC 简单声卡驱动程序中的 DAPM 路由是什么意思?

linux - 为什么在中断中使用 mutex_trylock 不安全?

linux - 使用 gcc 编译 64 位 linux 内核

linux - 有没有办法让 Linux 内核重新运行它的 PCI 初始化代码?

linux - KFIFO API : Difference kfifo_put and kfifo_in (or kfifo_get and kfifo_out)

c - 中断服务例程不会跳回到 ARM Cortex M0 上的中断处理程序

c - STM32F4 中断处理程序用于捕获其未调用