问题标签 [irq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
669 浏览

linux - 中断处理程序能否写入 FIFO

我有一个线程正在等待在 FIFO 上接收到的事件。大多数事件是从同一进程中的另一个线程发送的配置事件。我希望线程也能够通过让中断处理程序写入 FIFO 来处理中断事件,这可能吗?

欢迎任何其他建议而不是使用 FIFO!

0 投票
1 回答
578 浏览

linux - __alloc_pages_slowpath() 是否可重入安全?

对 __alloc_pages_slowpath() 的调用能否在同时调用 __alloc_pages_slowpath() 的设备中断中幸存下来,或者第二次调用是否破坏了第一次调用?

我在 XFS 文件系统上看到一个常规文件的程序调用 read(2)。内核堆栈跟踪显示,最终调用了 __alloc_pages_slowpath(),然后发生了 e1000e IRQ,最终也调用了 __alloc_pages_slowpath(),然后几乎立即发生了日志消息“fooprog: page allocation failure.order:0, mode:0x4020”。

整个堆栈跟踪可以在这里看到:https ://gist.github.com/790577

0 投票
2 回答
5473 浏览

c - request_irq 和 __interrupt 的区别

从我读到的两者都用于注册中断处理程序。我在内核代码中看到了很多request_irq调用,但没有一个__interrupt调用。是否有__interrupt某种方法可以从用户空间注册处理程序?

0 投票
2 回答
5189 浏览

linux-device-driver - 基于 ARM 的嵌入式 Linux 上的 GPIO IRQ

我正在尝试在 AT91SAM9M10-EKES 评估板上编写一个 GPIO IRQ。我成功注册了 IRQ,并且 IRQ 正在工作。但是,会遗漏一些中断。我发送了 26 个,但我只收到了 22 个。

编码:

这不是整个驱动程序,但这是处理 IRQ 的实际部分。如果有人在代码中看到问题,或者可以提出一种方法来了解我为什么会丢失 4 个中断,请回复。我被困在这几个小时... :(

谢谢。拉蒙。

0 投票
2 回答
21085 浏览

kernel - 驱动中使用 request_threaded_irq() 为什么不用 request_irq()?两者有什么区别?

我发布了这是讨论 request_threaded_irq 的线程,但我没有得到任何回复。所以我是新鲜发布的。

我正在为电容式触摸屏开发触摸屏驱动程序。它使用 request_threaded_irq() 调用而不是 request_irq()。我无法理解两者之间的基本区别。它说 :-

姓名

request_threaded_irq — 分配中断线

概要

int request_threaded_irq (unsigned int irq, irq_handler_t handler,irq_handler_t thread_fn, unsigned long irqflags, const char *devname, void *dev_id);

论据

  1. irq - 要分配的中断线
  2. handler - 发生 IRQ 时要调用的函数。线程中断的主处理程序如果 NULL 和 thread_fn != NULL,则安装默认的主处理程序
  3. thread_fn - 从 irq 处理程序线程调用的函数 如果为 NULL,则不创建 irq 线程
  4. irqflags - 中断类型标志
  5. devname - 声明设备的 ascii 名称
  6. dev_id - 传回处理函数的 cookie

Handler 和 Thread_fn 参数是令人困惑的参数。驱动程序中也没有定义工作函数。

这是我所指的驱动程序。

有人可以帮助我理解这一点吗?

0 投票
1 回答
235 浏览

linux-kernel - 如何从 IRQ 处理程序中终止用户应用程序?

我正在开发一个嵌入式 Linux 系统,当一个特定的 IRQ 处理程序运行时,我需要关闭系统。我没有很多时间(几十毫秒)。我正在使用emergency_restart(),但我现在需要执行一些无法从中断上下文中完成的工作(将与关闭相关的信息写入闪存),因为闪存驱动程序不支持它。

谁能推荐一个好方法来完成这个?我很想通过向他们发送信号来正确杀死我的用户空间应用程序,以便他们可以进行闪存写入。我该怎么做呢?我想,作为替代方案,我可以有一个高优先级进程,等待我的中断生成的信号量......我有什么选择?提前致谢!

0 投票
1 回答
420 浏览

assembly - arm7tdmi IRQ 和 FIQ 优先级

您好,我目前正在使用在“裸机”上运行的 AT91SAM7X256。我已经彻底阅读了数据表和架构手册,考虑到这一点,我得出的结论是 FIQ 的优先级高于 IRQ,因此 FIQ 不应被 IRQ 抢占

但是在实践中,我注意到 IRQ 暂停了我的 FIQ 处理程序的执行,即使我没有触及 CPSR 中的 F 位。假设不应该暂停 FIQ 以服务 IRQ 是否不正确?

我需要做些什么来确保我的 FIQ 服务程序不会被中断?

谢谢

0 投票
3 回答
4824 浏览

c++ - 如何防止g ++优化由IRQ可以更改的变量控制的循环?

考虑以下代码:

global在由 IRQ 调用的函数中进行修改。但是,g++ 删除了“非零”测试并将 while 循环转换为无限循环。

禁用编译器优化可以解决问题,但是 C++ 是否提供了语言结构呢?

0 投票
1 回答
1621 浏览

linux - 如何从 IRQ 范围内的非单片内核模块软重启?

在内核域中处理 IRQ 后,我需要重新启动。

我想调用/sbin/reboot二进制文件,但由于 IRQ 范围而受到限制。

代码如下:

我可以看到printk(...)触发 IRQ 的时间,但我有一些错误,即使我替换/sbin/reboot/bin/rm /tmp/its-not-working.

我测试了其他重启方法,比如mvBoardReset(), machine_halt(), arm_pm_restart(), pm_power_off(), kill(1, SIGTSTP), reboot(), handle_sysrq('b'), 我总是遇到在 IRQ 范围之外没有的错误。

我真的很想打电话/sbin/reboot,因为它确实是干净的软重置。

感谢您的时间。

0 投票
1 回答
1101 浏览

c# - WMI 硬件地址和 IRQ

任何人都可以帮助我找到一种 WMI 方法来检索硬件地址和 IRQ 吗?

到目前为止,我查看的类似乎有点空洞,无法告诉您实际使用资源的设备 - 但如果它在 Windows 的“系统信息”工具下可用,则它必须是可能的。

最终,我想在我的 C# 应用程序中创建一个地址映射和一个 IRQ 映射。

我简要地查看了以下课程:

  • Win32_DeviceMemoryAddress
  • Win32_IRQResource

我就在这一秒看到了另一个,但我还没有真正研究过:

  • Win32_AllocatedResource

也许将它与 Win32_PnPEntity 配对?