Linux-中斷和中斷處理

      網友投稿 1024 2025-03-31

      1.中斷


      #中斷使得硬件得以發出通知給處理器,本質上是一種電信號

      #中斷隨時可以產生,內核隨時會被打斷

      #不同設備的中斷不同,每個中斷都通過一個唯一的數字標識,稱為IRQ(中斷請求)

      2.中斷處理程序

      Linux-中斷和中斷處理

      #響應中斷的時候,內核會執行一個函數(中斷處理程序或中斷服務例程)

      #在Linux中,中斷程序為普通的C函數

      3.上半部和下半部的對比

      #中斷處理分為兩部分:上半部和下半部

      #上半部:中斷處理程序,接收到一個中斷,立刻執行

      #下半部:允許稍后完成的工作

      4.注冊中斷處理程序

      #中斷處理程序是硬件驅動程序的組成部分,如果設備使用中斷,那么相應的驅動就注冊一個中斷處理程序

      #驅動程序通過request_irq()函數注冊一個中斷處理程序,并激活給定的中斷線

      requset_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev)

      1.中斷處理程序標識

      #第一個參數irq表示要分配的中斷號

      #第二個參數handler是一個指針,指向處理這個中斷的實際中斷處理程序

      #第三個參數flags可以為0,也可以為:

      -IRQF_DISABLED:該標志被設置后意味著處理中斷處理程序本身之間期間中斷所有其他中斷

      -IRQF_SAMPLE_RANDOM:此標志表明這個設備產生的中斷對內核熵池有貢獻,內核熵池負責從各種隨機事件導出真正的隨機數

      -IRQF_TIMER:該標志是特別為系統定時器的中斷處理準備的

      -IRQF_SHARED:此標志表明可以在多個中斷處理程序之間共享中斷線

      #第四個參數name是與中斷相關的設備的ASCII文本表示

      #第五個參數dev用于共享中斷線

      #request_irq()成功執行會返回0,如果返回非0,則有錯誤

      #request_irq()函數可能會睡眠,因此,不能在中斷上下文或其他不允許阻塞的代碼中調用該函數

      2.一個中斷例子:

      request_irq():

      if(request_irq(irqn, my_interrupt, IRQF_SHARED, "my device", my_dev)){

      printk(KEEN_ERR, "my_device: cannot register IRQ %d\n", irqn);

      return -EIO;

      }

      3.釋放中斷處理程序

      #卸載驅動程序時,需要注銷相應的中斷處理程序,并釋放中斷線,調用:

      void free_irq(unsigned int irq, void *dev)

      如果這條中斷線不是共享的,則函數刪除中斷處理程序并禁用中斷線

      如果這條中斷線是共享的,則只刪除*dev對應中斷處理程序,只要在刪除了該中斷線上的所有中斷處理程序后,才會禁用中斷線

      5.編寫中斷處理程序

      Linux

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel2016怎么設置工作簿的保存類型?
      下一篇:這個是怎么樣出來的?(這是咋樣的)
      相關文章
      日本亚洲精品色婷婷在线影院| 亚洲Av无码乱码在线观看性色 | 亚洲中文字幕久在线| 国产亚洲精品自在线观看| 456亚洲人成在线播放网站| 亚洲国产午夜精品理论片| 亚洲精品午夜久久久伊人| 亚洲AV电影院在线观看| 亚洲精品无码AV人在线播放| 永久亚洲成a人片777777| 亚洲成AⅤ人影院在线观看| 一本色道久久88综合亚洲精品高清| 亚洲AV成人精品日韩一区| 亚洲AV无码AV日韩AV网站| 精品亚洲av无码一区二区柚蜜| 国产精品亚洲一区二区在线观看| 日韩欧美亚洲中文乱码| 亚洲av无码片vr一区二区三区| 久久精品国产亚洲av瑜伽| 综合一区自拍亚洲综合图区 | 亚洲AV永久无码精品一福利| 亚洲Av无码国产一区二区| 国产成人+综合亚洲+天堂| 亚洲乱码中文字幕手机在线| 久久亚洲AV永久无码精品| 亚洲日韩精品一区二区三区| 亚洲精品成人无限看| 亚洲电影国产一区| 亚洲国产综合精品| 亚洲最大的成人网| 国产精品自拍亚洲| 中文字幕亚洲专区| 亚洲精品无码久久久久去q| 亚洲国产成人久久综合碰碰动漫3d| 亚洲美女免费视频| 最新亚洲春色Av无码专区| 亚洲成av人片在www鸭子| 亚洲一区二区精品视频| 亚洲国产精品嫩草影院在线观看 | 亚洲黄片手机免费观看| 亚洲日产无码中文字幕|