分类: 嵌入式
2010-07-30 22:46:36
一、实现步骤
1. 硬件原理图分析。由原理图得知LED电路是共阳极的,并分别由2440的GPB5、GPB6、GPB7、GPB8口控制的
2. 去掉内核已有的LED驱动设置,因为IO口与mini2440开发板的不一致,根本就不能控制板上的LED。
|
|
|
|
3. 编写适合mini2440开发板的LED驱动,代码如下,文件名称:my2440_leds.c
|
4. 采用动态方式把LED驱动代码加载到内核中去
5. 查看已加载的设备:#cat /proc/devices,可以看到my2440_leds的主设备号为231
[root@FriendlyARM driver]# cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
14 sound
29 fb
81 video4linux
89 i2c
90 mtd
116 alsa
128 ptm
136 pts
180 usb
188 ttyUSB
189 usb_device
204 s3c2410_serial
231 my2440_leds
253 usb_endpoint
254 rtc
6. 编写应用程序测试LED驱动,文件名:leds_test.c
|
7. 在开发主机上交叉编译测试应用程序
|
8. 在开发板上的文件系统中创建一个LED设备的节点,然后运行测试程序,效果图如下,观测开发板上的LED灯,可以看到每一步的操作对应的LED会点亮或者熄灭