在之前學習驅動自己寫過led的驅動程式,其實s3c2440對於驅動已經支援得非常好,核心裡面已經有了led的驅動程式,我們要使能led驅動只需要稍作修改。
device drivers --->
[*] led support --->
[*] led class support
led support for samsung s3c24xx gpio leds//新增led支援
s3c24xx系列的晶元的led硬體資訊基本一致,因此核心將led的硬體裝置資訊原始碼放在了 arch/arm/plat-s3c24xx/common-smdk.c,對照晶元手冊,我們要把led0~led3的相關gpio分別配置成pb5,pb6,pb8,pb10
vim arch/arm/plat-s3c24xx/common-smdk.c
/* led devices */
static
struct s3c24xx_led_platdata smdk_pdata_led4 = ;
static
struct s3c24xx_led_platdata smdk_pdata_led5 = ;
static
struct s3c24xx_led_platdata smdk_pdata_led6 = ;
static
struct s3c24xx_led_platdata smdk_pdata_led7 = ;
對於向led這樣的裝置模型,系統認為所有的裝置都是掛接在匯流排上的,而要使裝置工作,就需要相應的驅動。裝置模型會產生乙個虛擬的檔案系統——sysfs,它給使用者提供了乙個從使用者空間去訪問核心裝置的方法,它在linux裡的路徑是/sys。如果要寫程式訪問sysfs,可以像讀寫普通檔案一樣來操作/sys目錄下的檔案。
進入到led0目錄下,可以看到brightness 等檔案
其中brightness就是控制等亮滅的檔案,max_brightness可以控制亮滅程度的最大值假如設定是100就是0到100代表不同的亮度(需要單板硬體的支援)。
- 向brightness檔案中寫入1控制燈亮
- 向brightness檔案中寫入0控制燈亮
cat > brightness //向brightness寫入資料
可以看到,寫入1時,led0點亮;寫入0時,led0熄滅。對於其他的led燈也是同樣的操作。
fl2440 驅動學習 LED測試程式
前面已經記錄學習了led驅動程式的 分析,並且成功將驅動模組載入到了開發板,現在就可以進行led應用程式的測試啦!測試 如下 led流水燈測試程式 include include include include include include include define led cnt 4 def...
fl2440按鍵中斷驅動
include include include include include include include include include include include copy to user include 核心時鐘 include atomic t include s3c2410 gpf...
控制fl2440開發板led燈亮滅,蜂鳴器發聲
led燈亮滅,蜂鳴器發聲是通過設定相應暫存器的值來控制的,主要有gpbcon gpbdat gpbup等,gpbcon有gpb0 10,每乙個gpbi設定不同的值來表示輸入輸出等,設定gpbdat的每一位表示高低電平,gpbup設定gpbi是否有效,通過對這三個暫存器的設定則可實現led燈和蜂鳴器。...