嵌入式Linux之我行——LED驅動在2440上的實例開發
- 主
機:VMWare--Fedora 9 - 開發板:Mini2440--64MB Nand
- 編譯器:arm-linux-gcc-4.3.2
二、實現步驟
本文引用地址:http://www.104case.com/article/201611/319004.htm1. 硬件原理圖分析。由原理圖得知LED電路是共陽極的,并分別由2440的GPB5、GPB6、GPB7、GPB8口控制的
2. 去掉內核已有的LED驅動設置,因為IO口與mini2440開發板的不一致,根本就不能控制板上的LED。
#gedit arch/arm/plat-s3c24xx/common-smdk.c |
static |
void |
3. 編寫適合mini2440開發板的LED驅動,代碼如下,文件名稱:my2440_leds.c
|
4. 把LED驅動代碼部署到內核中去
#cp -f my2440_leds.c /linux-2.6.30.4/drivers/char |
#gedit /linux-2.6.30.4/drivers/char/Kconfig |
config MY2440_LEDS |
#gedit /linux-2.6.30.4/drivers/char/Makefile |
obj-$(CONFIG_MY2440_LEDS) |
5. 配置內核,選擇LED設備選項
#make menuconfig |
Device Drivers ---> |
6. 編譯內核并下載到開發板上,查看已加載的設備:#cat /proc/devices,可以看到my2440_leds的主設備號為231
7. 編寫應用程序測試LED驅動,文件名:leds_test.c
|
8. 在開發主機上交叉編譯測試應用程序,并復制到文件系統的/usr/sbin目錄下,然后重新編譯文件系統下載到開發板上
#arm-linux-gcc -o leds_test leds_test.c |
9. 在開發板上的文件系統中創建一個LED設備的節點,然后運行測試程序,效果圖如下,觀測開發板上的LED燈,可以看到每一步的操作對應的LED會點亮或者熄滅
評論