问题标签 [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 回答
1148 浏览

multithreading - 从线程 ISR 交换数据的安全且简单的方法是什么?(树莓派)

我正在尝试在 Raspberry Pi 上开发一个 C/C++ 用户空间应用程序,该应用程序处理来自 SPI 设备的数据。我正在使用WiringPi库(函数WiringPiISR),它注册了一个函数(真正的中断处理程序),该函数将从 IRQ 事件的 pthread 中断处理程序中调用。

我听说 STL 容器不是线程安全的,但是在执行我的回调函数时拥有一个互斥锁就足够了,当然在访问那里的缓冲区/容器时在主线程中拥有一个锁就足够了吗?

我通过wiringPiISR注册的“真正的中断处理程序”看起来像这样

或者有没有更简单的方法来实现线程 ISR 和主线程之间的数据交换?

0 投票
0 回答
262 浏览

c++ - 在 IRQ 模式下初始化 AD 控制器

我试图了解在 Teensy 3.1 上初始化 ARM Cortex M4 MK20DX256VLH7 上的 ADC。我对以下符号的含义和相关搜索词感到好奇。&= ~(3<<18),我将其解释为按位非(3 位左移 18)上的按位与,对我来说意义不大。我将括号内的内容解释为BIN 11转换为BIN 11000000000000000000. 我知道 PINMODE1 发生了指针取消引用(这对我来说有点模糊)并且它正在将芯片上的引脚 25 初始化为 ADC 输入?我对自己的解析能力完全没有信心。请指教。感谢您的时间。

0 投票
2 回答
1283 浏览

linux-kernel - 调用 free_irq 时触发的中断处理程序

我的问题是:调用 free_irq 时会触发中断处理程序。我注意到在内核消息中调用了处理程序,但由于我们的设备没有请求中断,它提示没有收到中断。这是预期的行为吗?有人可以帮忙吗?

0 投票
1 回答
211 浏览

linux - linux kernel 2.6.11 for i386中这个内联汇编(:“0”(THREAD_SIZE - 1))的含义是什么

在 do_IRQ 你可以找到下面的代码!

我不明白这个 asm 程序集
asm _ volatile _("andl %%esp,%0" : "=r" (esp) : "0" (THREAD_SIZE - 1)); THREAD_SIZE - 1 是什么意思?我记得括号里的符号应该是像输出部分的esp一样的C变量,但是在输入部分它看起来像一个整数而不是C符号,请大家帮忙

0 投票
0 回答
86 浏览

windows - Windows 95/98 与 Windows 2000,XP+ 鼠标冻结

我回想起在旧计算机上安装 Windows 95 时,鼠标显示忙碌图标然后完全冻结的频率。我记得不知道我是否应该等待它,或者系统是否被永久锁定,我将被迫切断电源。

那时,我对真正解决问题的计算机知之甚少,但我现在进入计算机科学和编程领域,这让我思考了开发人员早年面临的问题以及他们如何解决这些问题。

话虽如此,我很想知道在早期版本的 Windows 中导致鼠标像这样冻结的主要因素是什么,以及现在使系统更加稳定的变化是什么?当硬件设备需要立即关注时,它们可以发送 IRQ,对吗?这些都在 Windows 95/98 中,不是吗?那么关于鼠标变得无响应的主要问题出在哪里,它是如何解决的呢?

0 投票
2 回答
11147 浏览

linux - 在linux内核中同时发生两个中断会发生什么

当 Linux 内核中同时发生两个中断时会发生什么..?

如果该处理器具有多个 CPU,则中断可以同时在不同的 cpu 内核上运行。

0 投票
2 回答
416 浏览

linux-kernel - 当 ISR 运行时,该特定 IRQ 线路上的中断会发生什么情况。它们会丢失或存储,以便以后处理

当处理中断服务程序时,特定的 IRQ 线路被禁用,那么当注册在同一 IRQ 线路上的设备引发中断时会发生什么?该中断是否丢失或存储,以便以后处理。

请有人解释。

提前致谢。

0 投票
1 回答
3716 浏览

linux-kernel - Linux 内核 ARM 异常堆栈初始化

我在 Freescale i.MX6 (ARM Cortex-A9) 上使用 Linux 内核 3.0.35。在遇到内核 OOPS 后,我试图了解异常堆栈初始化。这是我到目前为止所发现的。

arch/arm/kernel/setup.c的cpu_init()中,我看到异常堆栈被初始化:

我看到每个堆栈只有三个单词的空间。这就是arch/arm/kernel/entry-armv.S中的宏vector_stub使用它的方式。它将 R0、LR(父 PC)和 SPSR(父 CPSR)保存到这三个单词中。然后它跳转到__irq_svc。从创建堆栈帧的宏svc_entry开始

这也是我从 KGDB 中看到反汇编代码的方式:

在异常期间,SP 是存储的 R13。如果我遵循正确,则该堆栈上没有此框架的空间。这意味着我一定错过了什么。是否有其他地方初始化异常堆栈?

0 投票
1 回答
1459 浏览

linux-device-driver - 如何将平台数据从 OF 设备树传递到我的 i2c 驱动程序?

我正在为主要通过 i2c 通信但也使用 GPIO 引脚发送信号的芯片编写驱动程序。相关的设备树节点如下所示:

我希望能够从我的驱动程序中读取 irq_gpio 值,因此我可以请求一个 irq(通过 gpio_to(irq()) 并进行设置。我发现我需要访问 struct i2c_board_info 的 of_node 成员。但是,驱动的probe函数只获取i2c_client和i2c_device_id structs.如何从i2c_client或设备id开始到达期望的of_node?

0 投票
0 回答
322 浏览

c - 创建中断处理程序

我在 c 中为 QNX 操作系统创建了一个中断处理程序。我的任务:只要 udp 层上有数据,内核就应该调用这个中断处理程序。我正在计算上述代码中的中断延迟。客户端正在发送数据,服务器(上面的代码)正在从客户端接收数据并发送回响应。上面的代码每次都不会中断,只要它在 udp 层接收数据。以上可能是什么错误?有人可以帮我吗?