跳转到内容

D 编程/RTAI/用户空间中断

来自维基教科书,开放的书籍,开放的世界

RTAI 具有称为 RTAI USI 的用户空间中断。

让 Linux 为您的 PCI 设备分配 IRQ 号码

[编辑 | 编辑源代码]

但是在使用它们之前,必须将硬件中断映射到 Linux 中的中断。因此,有必要为 pci 设备构建一个内核模块,该模块注册中断。通过此操作,设备将获得一个新的中断号,该号可在 usi 中使用。

编写中断处理程序

[编辑 | 编辑源代码]

创建一个实时线程

在线程中创建一个循环,如下所示

public void run(){
  const int irqNum = 5;
  rt_request_irq_task( irqNum, null, RT_IRQ_TASK, 1 );
  rt_startup_irq( irqNum );
  rt_enable_irq( irqNum );
  while( true ){
    int overrun = rt_irq_wait( irqNum );
    if( overrun == RT_IRQ_TASK_ERR )
      break;
    // if program should quit, break here
    // Do the irq handling
    rt_ack_irq();
  }
  rt_release_irq_task( irqNum );
}
华夏公益教科书