免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 920 | 回复: 0
打印 上一主题 下一主题

ARM 2440 控制LED的驱动程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-08 10:22 |只看该作者 |倒序浏览
//myled.c
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define DEVICE_NAME "leds"
#define LED_MAJOR 251
static unsigned long led_table [] = {
S3C2410_GPB5,
S3C2410_GPB6,
S3C2410_GPB7,
S3C2410_GPB8,
};
static unsigned int led_cfg_table [] = {
S3C2410_GPB5_OUTP,
S3C2410_GPB6_OUTP,
S3C2410_GPB7_OUTP,
S3C2410_GPB8_OUTP,
};
static int sbc2440_leds_ioctl(
struct inode *inode,
struct file *file,
unsigned int cmd,
unsigned long arg)
{
switch(cmd) {
case 0:
case 1:
  if (arg > 4) {
   return -EINVAL;
  }
  s3c2410_gpio_setpin(led_table[arg], !cmd);
  return 0;
default:
  return -EINVAL;
}
}
static struct file_operations sbc2440_leds_fops = {
.owner = THIS_MODULE,
.ioctl = sbc2440_leds_ioctl,
};
static int __init sbc2440_leds_init(void)
{
int ret;
int i;
ret = register_chrdev(LED_MAJOR, DEVICE_NAME, &sbc2440_leds_fops);
if (ret
devfs_mk_cdev(MKDEV(LED_MAJOR, 0), S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP, DEVICE_NAME);

for (i = 0; i
printk(DEVICE_NAME " initialized\n");
return 0;
}
static void __exit sbc2440_leds_exit(void)
{
devfs_remove(DEVICE_NAME);
unregister_chrdev(LED_MAJOR, DEVICE_NAME);
}
module_init(sbc2440_leds_init);
module_exit(sbc2440_leds_exit);
///创建节点
//mknod myled c 251  0
ifneq ($(KERNELRELEASE),)
obj-m :=myled.o
else
KERNELDIR = /opt/FriendlyARM/QQ2440/kernel-2.6.13
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf *.o
endif
#include
#include
#include
#include
int main(int argc, char **argv)
{
int on;
int led_no;
int fd;
if (argc != 3 || sscanf(argv[1], "%d", &led_no) != 1 || sscanf(argv[2],"%d", &on) != 1 ||
     on  1 || led_no  3) {
  fprintf(stderr, "Usage: leds led_no 0|1\n");
  exit(1);
}
fd = open("/dev/myled", 0);
if (fd
CROSS=arm-linux-
all: led
led:
$(CROSS)gcc -o led main.c
clean:
@rm -vf led *.o *~


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68521/showart_680772.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP