问题标签 [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.
linux - 中断处理程序能否写入 FIFO
我有一个线程正在等待在 FIFO 上接收到的事件。大多数事件是从同一进程中的另一个线程发送的配置事件。我希望线程也能够通过让中断处理程序写入 FIFO 来处理中断事件,这可能吗?
欢迎任何其他建议而不是使用 FIFO!
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
c - request_irq 和 __interrupt 的区别
从我读到的两者都用于注册中断处理程序。我在内核代码中看到了很多request_irq
调用,但没有一个__interrupt
调用。是否有__interrupt
某种方法可以从用户空间注册处理程序?
linux-device-driver - 基于 ARM 的嵌入式 Linux 上的 GPIO IRQ
我正在尝试在 AT91SAM9M10-EKES 评估板上编写一个 GPIO IRQ。我成功注册了 IRQ,并且 IRQ 正在工作。但是,会遗漏一些中断。我发送了 26 个,但我只收到了 22 个。
编码:
这不是整个驱动程序,但这是处理 IRQ 的实际部分。如果有人在代码中看到问题,或者可以提出一种方法来了解我为什么会丢失 4 个中断,请回复。我被困在这几个小时... :(
谢谢。拉蒙。
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);
论据
- irq - 要分配的中断线
- handler - 发生 IRQ 时要调用的函数。线程中断的主处理程序如果 NULL 和 thread_fn != NULL,则安装默认的主处理程序
- thread_fn - 从 irq 处理程序线程调用的函数 如果为 NULL,则不创建 irq 线程
- irqflags - 中断类型标志
- devname - 声明设备的 ascii 名称
- dev_id - 传回处理函数的 cookie
Handler 和 Thread_fn 参数是令人困惑的参数。驱动程序中也没有定义工作函数。
有人可以帮助我理解这一点吗?
linux-kernel - 如何从 IRQ 处理程序中终止用户应用程序?
我正在开发一个嵌入式 Linux 系统,当一个特定的 IRQ 处理程序运行时,我需要关闭系统。我没有很多时间(几十毫秒)。我正在使用emergency_restart(),但我现在需要执行一些无法从中断上下文中完成的工作(将与关闭相关的信息写入闪存),因为闪存驱动程序不支持它。
谁能推荐一个好方法来完成这个?我很想通过向他们发送信号来正确杀死我的用户空间应用程序,以便他们可以进行闪存写入。我该怎么做呢?我想,作为替代方案,我可以有一个高优先级进程,等待我的中断生成的信号量......我有什么选择?提前致谢!
assembly - arm7tdmi IRQ 和 FIQ 优先级
您好,我目前正在使用在“裸机”上运行的 AT91SAM7X256。我已经彻底阅读了数据表和架构手册,考虑到这一点,我得出的结论是 FIQ 的优先级高于 IRQ,因此 FIQ 不应被 IRQ 抢占
但是在实践中,我注意到 IRQ 暂停了我的 FIQ 处理程序的执行,即使我没有触及 CPSR 中的 F 位。假设不应该暂停 FIQ 以服务 IRQ 是否不正确?
我需要做些什么来确保我的 FIQ 服务程序不会被中断?
谢谢
c++ - 如何防止g ++优化由IRQ可以更改的变量控制的循环?
考虑以下代码:
global
在由 IRQ 调用的函数中进行修改。但是,g++ 删除了“非零”测试并将 while 循环转换为无限循环。
禁用编译器优化可以解决问题,但是 C++ 是否提供了语言结构呢?
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
,因为它确实是干净的软重置。
感谢您的时间。
c# - WMI 硬件地址和 IRQ
任何人都可以帮助我找到一种 WMI 方法来检索硬件地址和 IRQ 吗?
到目前为止,我查看的类似乎有点空洞,无法告诉您实际使用资源的设备 - 但如果它在 Windows 的“系统信息”工具下可用,则它必须是可能的。
最终,我想在我的 C# 应用程序中创建一个地址映射和一个 IRQ 映射。
我简要地查看了以下课程:
- Win32_DeviceMemoryAddress
- Win32_IRQResource
我就在这一秒看到了另一个,但我还没有真正研究过:
- Win32_AllocatedResource
也许将它与 Win32_PnPEntity 配对?