分类:
2012-07-17 18:36:02
原文地址:linux设备驱动之一:led驱动 作者:FreedomXura
移植步骤:
1. 由原理图得知LED电路是共阳极的,并分别由2440的GPF0、GPF1、GPF2、GPF3口控制的.
2. 去掉内核已有的LED驱动设置,因为IO口与mini2440开发板的不一致,根本就不能控制板上的LED。
#gedit arch/arm/plat-s3c24xx/common-smdk.c |
#if 0 |
/* devices we initialise */ |
void __init smdk_machine_init(void) |
3. 编写适合mini2440开发板的LED驱动,代码如下,文件名称:mxh2440_led.c
/*
*在应用/用户层将通过 ioctl 函数向内核传递参数,以控制 LED的输出状态 */ /* //这里初始化为1,不让LED点亮 /* |
4.接下来,我们添加LED设备的内核配置选项,打开 drivers/char/Kconfig文件,添加如
下红色部分内容:
config MXH2440_LED |
5.接下来,再根据该驱动的配置定义,把对应的驱动目标文件加入内核中,打开drivers/char/Makefile文件,添加如下红色部分内容:
obj-$(CONFIG_MXH2440_LED) += mxh2440_led.o |
6. 配置内核,选择LED设备选项
#make menuconfig |
Device Drivers ---> |
#mknod /dev/mxh2440_led c 231 0 |
8. 编写应用程序测试LED驱动,文件名:led_test.c
/* |
#arm-linux-gcc leds_test.c -o led_test |
10.将生成的led_test通过串口,网络,或者usb下载到开发板。运行:
./led_test on 1 |
则开发板上对应的LED1点亮。