相关疑难解决方法(0)

Linux中断与轮询

我正在开发一个带有DSP和ARM的系统.在ARM上有一个Linux操作系统.我有一个DSP向ARM(Linux)发送数据 - 在Linux中有一个内核模块,它读取从DSP接收的数据.内核模块正在唤醒以使用DSP与ARM之间的硬件中断来读取数据.

我想编写一个用户空间应用程序,每次有来自DSP的新数据时,它将从内核空间(内核模块)读取数据.
问题是:

有什么方法可以做到这一点,从内核到用户空间的软件中断,或者每隔10ms从用户空间轮询(用内核读取已知的内存地址).

知道:

  • 从DSP到内核的数据必须在很短的时间内到达 - 100us.
  • 从内核到用户空间的数据可能需要10ms到30ms.
  • 正在读取的数据被认为很小 - 大约100个字节.

c linux real-time interrupt linux-kernel

10
推荐指数
1
解决办法
3205
查看次数

IRQ Handling from User Space Linux

I'm writting a driver for a synthesized device in an FPGA. The device has several IRQs and have requested them on my driver:

irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
rc = request_irq(irq, &Custom_driver_handler,IRQF_TRIGGER_RISING , DRIVER_NAME, base_addr);
Run Code Online (Sandbox Code Playgroud)

My problem is that i want that the irq_handler calls a function of an user space application. Is there any way to call my user space application from the irq_handler of the driver on kernel space??

I know i could save a flag from the …

linux driver handler irq userspace

6
推荐指数
1
解决办法
9167
查看次数

在linux中断的上下文中运行用户线程

我正在编写一些自定义应用程序,并允许在linux内核中更改中断处理程序代码.

我有一个等待中断发生的用户线程.如果发生中断,那么我想要做的第一件事就是执行该用户线程.

有没有办法让它发挥作用.

谢谢

c linux kernel linux-device-driver linux-kernel

2
推荐指数
1
解决办法
831
查看次数