歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux環境下的LED驅動[圖文]

Linux環境下的LED驅動[圖文]

日期:2017/2/28 16:52:28   编辑:Linux教程

最近的時間了,本人都在從事軟硬件間的程序設計,雖然我懂得不多,但是經過一段時間的摸索之後也找到了一些解決問題的方法。雖然從前的我,只會寫軟體程序,也從來沒有想到我會接觸到這個領域的東西,但是經過這幾個月的努力終於有了一些小小的收獲。

我所使用的實驗平台是S3C2440A開發板,外觀如下圖:


這篇文章主要針對如何在Linux環境下驅動LED燈號做一個簡單的說明,內容包含如何撰寫一個Linux的module、如何使用module、如何測試module。在嵌入式系統中最常碰到的事情就是要控制周邊的裝置,例如燈號、蜂鳴器等等,這些裝置可以通過GPIO來做控制,GPIO到底是什麽東西呢?你可以把GPIO當作是一堆可以控制周邊裝置的暫存器,每個暫存器都會有他對應的實體位置,對這些暫存器設定一些數值就可以控制周邊的裝置。我們先從最簡單的LED控制開始研究,其他的裝置都是大同小異,我也會在後面的文章中陸陸續續的說明這些裝置如何來實作。我們假設已經可以正常的從S3C2440實驗版上通過boot loader正常開機,並且載入Linux作業系統。如果我們能在Linux作業系統下控制LED燈號的亮或暗,就完成本文章的目的。

目前開發板上所使用的作業系統為Linux 2.4.18,所以該模組是針對2.4.18所撰寫的,所以必須在編輯環境(我們所使用的開發環境是Dev-C++,請參考之前的文章)中include到2.4.18的kernel,設定的方法:「專桉(p)」->「專桉選項」,會彈出如下圖的視窗,請設定「檔桉/目錄」->「引入標頭檔目錄」,加入Linux 2.4.18中的include的目錄。


接下來我們必須先了解一下燈號的接線,了解燈號到底使用到哪些GPIO,你可以去翻閱你手邊所擁有的線路圖,應該能找到一份有關Led的訊號接線方式,如下圖所示:


從圖中你可以了解到控制第一個Led是由EINT4/GPF4來做控制的,有些線路圖可能不會直些寫出是哪個GPIO,你可能要去找找這個符號對應到2440A處理器的哪一個接腳以得知是由哪個GPIO控制。這張圖顯示第一個燈號是由GPF4所控制,當你知道是由GPF4所控制你可以從S3C2440A的規格書中得知對應的Address,如下圖所示:

當你已經得知這些基本的資料後可以開始撰寫Linux的驅動程序。

Copyright © Linux教程網 All Rights Reserved