嵌入式Linux之我行——LED驅動(dòng)在2440上的實(shí)例開(kāi)發(fā)
- 主
機:VMWare--Fedora 9 - 開(kāi)發(fā)板:Mini2440--64MB Nand
- 編譯器:arm-linux-gcc-4.3.2
二、實(shí)現步驟
本文引用地址:http://dyxdggzs.com/article/201611/319004.htm1. 硬件原理圖分析。由原理圖得知LED電路是共陽(yáng)極的,并分別由2440的GPB5、GPB6、GPB7、GPB8口控制的
2. 去掉內核已有的LED驅動(dòng)設置,因為IO口與mini2440開(kāi)發(fā)板的不一致,根本就不能控制板上的LED。
#gedit arch/arm/plat-s3c24xx/common-smdk.c |
static |
void |
3. 編寫(xiě)適合mini2440開(kāi)發(fā)板的LED驅動(dòng),代碼如下,文件名稱(chēng):my2440_leds.c
|
4. 把LED驅動(dòng)代碼部署到內核中去
#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. 編譯內核并下載到開(kāi)發(fā)板上,查看已加載的設備:#cat /proc/devices,可以看到my2440_leds的主設備號為231
7. 編寫(xiě)應用程序測試LED驅動(dòng),文件名:leds_test.c
|
8. 在開(kāi)發(fā)主機上交叉編譯測試應用程序,并復制到文件系統的/usr/sbin目錄下,然后重新編譯文件系統下載到開(kāi)發(fā)板上
#arm-linux-gcc -o leds_test leds_test.c |
9. 在開(kāi)發(fā)板上的文件系統中創(chuàng )建一個(gè)LED設備的節點(diǎn),然后運行測試程序,效果圖如下,觀(guān)測開(kāi)發(fā)板上的LED燈,可以看到每一步的操作對應的LED會(huì )點(diǎn)亮或者熄滅
評論