1. 程式人生 > >ARM-Linux下的GPIO中斷程式

ARM-Linux下的GPIO中斷程式

        今日為了除錯ARM板上的GPIO引腳中斷效果,以便在後續專案使用ARM與ZLG7290按鍵LED中斷晶片連線中隨意選擇空閒的GPIO引腳來作為ZLG7290的中斷訊號線,特意編寫了一個小的Linux GPIO中斷驅動程式下載到開發板上做實驗。經驗證,這種軟體中斷方式也還差強人意。下面貼出自己編寫的不成熟的程式碼,見笑(<-_->)。

       實驗的硬體電路為ARM GPIO的PB17連線一個共陰LED,PB18與PB19連線,PB18由中斷驅動設定為低電平觸發,PB19由GPIO驅動程式控制,上層應用程式通過驅動控制PB19高低電平變化,從而引發PB18發生中斷,中斷程式中控制PB17的LED亮和滅。

      Linux中斷驅動部分:

     

        

    Linux上層應用程式:

     

     由上面的程式碼可以看出,Linux核心在中斷程式處理方面已經做了很多抽象,對於驅動程式編寫者只需要按照核心中斷構架去實現一定的控制函式就可以,以後有時間會專門撰文剖析還原Linux核心裡那些對中斷實現的抽象。