跳轉到內容

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 );
}
華夏公益教科書