全部博文(395)
分类: 嵌入式
2011-04-19 18:28:42
操作步骤:
(1)、引脚功能设置位输出。
(2)、要点亮LED,令引脚输出0。
(3)、要熄灭LED,令引脚输出1。
1、LED驱动代码。
static init __s3c24xx_leds_init(void)
{
}
static void __exit s3c24xx_leds_eixt(void)
{
}
module_init(s3c24xx_leds_init);
module_exit(s3c24xx_leds_exit);
static struct file_operations s3c24xx_leds_fops={
};
static init s3c24xx_leds_open(struct inode * inode,struct file *file)
{
{
}
return 0;
}
static int s3c24xx_leds_ioctl(
{
switch(cmd)
}
}
最后将s3c24xx_leds.c 文件放到内核 /devers/char 子目录下,在drivers/char/Makefile 中增加如下一行:
obj -m += s3c24xx_leds.o
然后在内核根目录下执行make modules 就可以生成模块、drivers/char/s3c24xx_leds.ko。把它放到单板根目录/lib/modules/2.6.22.6/目录下,就可以用 insmod s3c24xx_leds 和 rmmod s3c24xx_leds命令进行加载和卸载了。
2、led.c 源码及驱动测试程序源码
#include
#include
#include
#include
#include
#include
#include
#include
#define
DEVICE_NAME
#define
LED_MAJOR
#define
IOCTL_LED_ON
#define IOCTL_LED_OFF
static unsigned long led_table [] = {
};
static unsigned int led_cfg_table [] = {
};
static int s3c24xx_leds_open(struct inode *inode, struct file
*file)
{
}
static int s3c24xx_leds_ioctl(
{
}
static struct file_operations s3c24xx_leds_fops = {
};
static int __init s3c24xx_leds_init(void)
{
}
static void __exit s3c24xx_leds_exit(void)
{
}
module_init(s3c24xx_leds_init);
module_exit(s3c24xx_leds_exit);
MODULE_AUTHOR("");
MODULE_DESCRIPTION("S3C2410/S3C2440 LED
Driver");
MODULE_LICENSE("GPL");
#include
#include
#include
#include
#define
IOCTL_LED_ON
#define IOCTL_LED_OFF
void usage(char *exename)
{
}
int main(int argc, char **argv)
{
err:
}