基于s3c2410led驱动

上传人:yh****1 文档编号:278314096 上传时间:2022-04-17 格式:DOC 页数:6 大小:23.50KB
返回 下载 相关 举报
基于s3c2410led驱动_第1页
第1页 / 共6页
基于s3c2410led驱动_第2页
第2页 / 共6页
基于s3c2410led驱动_第3页
第3页 / 共6页
基于s3c2410led驱动_第4页
第4页 / 共6页
基于s3c2410led驱动_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于s3c2410led驱动》由会员分享,可在线阅读,更多相关《基于s3c2410led驱动(6页珍藏版)》请在金锄头文库上搜索。

1、. .基于s3c2410的led驱动源码 环境:redflag6.0开发板:gec2410功能说明:实现对GPF4到GPF7的控制 /*名称:mygpio.c版本:v0.1-2013-04-21说明:基于gec2410开发板、linux2.6.31内核编写的gpio驱动,实现对GPF4到GPF7的控制 例程说明了linux内核字符驱动程序的根本写法。时间:2013年4月21日修订日期:*/#include#include#include#include#include#include#include#include#includemydef.hMODULE_LICENSE(GPL);#defi

2、ne my_S3C2410_GPF5_OUTP (0x110)#define my_S3C2410_GPF4_OUTP (0X18)#define my_S3C2410_GPF6_OUTP (0X112)#define my_S3C2410_GPF7_OUTP (0X114)#define GPF4 4 /约定的控制命令#define GPF5 5#define GPF6 6#define GPF7 7#define dev_cont 1/设备数量struct cdev *mygpio_cdev;static dev_t dev_id; /定义设备号,全局变量static int module

3、_use_count=0;/模块使用次数static int mygpio_ioctl(struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg)unsigned int swt=(unsigned int)arg;switch (cmd)case GPF4:s3c2410_gpio_setpin(S3C2410_GPF(4),swt);break;case GPF5:s3c2410_gpio_setpin(S3C2410_GPF(5),swt);break;case GPF6:s3c2410_gpio_s

4、etpin(S3C2410_GPF(6),swt);break;case GPF7:s3c2410_gpio_setpin(S3C2410_GPF(7),swt);break;default:printk(command erron);break;return 0;int set_mygpio_device()s3c2410_gpio_pullup(S3C2410_GPF(5),1);s3c2410_gpio_cfgpin(S3C2410_GPF(5),my_S3C2410_GPF5_OUTP);s3c2410_gpio_pullup(S3C2410_GPF(4),1);s3c2410_gpi

5、o_cfgpin(S3C2410_GPF(4),my_S3C2410_GPF4_OUTP);s3c2410_gpio_pullup(S3C2410_GPF(6),1);s3c2410_gpio_cfgpin(S3C2410_GPF(6),my_S3C2410_GPF6_OUTP);s3c2410_gpio_pullup(S3C2410_GPF(7),1);s3c2410_gpio_cfgpin(S3C2410_GPF(7),my_S3C2410_GPF7_OUTP);return 0;static int mygpio_open(struct inode *inode,struct file

6、*filp)if(!try_module_get(THIS_MODULE)return -ENODEV;set_mygpio_device();return 0;static int mygpio_release(struct inode *inode,struct file *filp)module_put(THIS_MODULE);return 0;struct file_operations mygpio_fops=.owner =THIS_MODULE,.ioctl=mygpio_ioctl,.open=mygpio_open,.release=mygpio_release,;stat

7、ic int _init mygpio_init(void)int ret;int dev_major=255; /默认主设备号int dev_minor=0; /默认此设备号int erro;if(static_registe) dev_id=MKDEV(dev_major,dev_minor);ret=register_chrdev_region(dev_id,dev_cont,mygpio);elseret=alloc_chrdev_region(&dev_id,dev_minor,dev_cont,mygpio);dev_major=MAJOR(dev_id);dev_minor=MI

8、NOR(dev_id);if(retops=&mygpio_fops;cdev_init(mygpio_cdev,mygpio_cdev-ops);mygpio_cdev-owner=THIS_MODULE;erro=cdev_add(mygpio_cdev,dev_id,1);if(erro)printk( add erro %dn,erro);return erro;return 0;static void _exit mygpio_exit (void)cdev_del(mygpio_cdev);unregister_chrdev_region(dev_id,dev_cont);prin

9、tk(mygpio unsitall);module_init(mygpio_init);module_exit(mygpio_exit);/*名称: mydef.h功能: 定义mygpio驱动的相关配置项时间: 2013-04-21修订日期:*/#ifndef _MYDEF_H#define _MYDEF_H#define static_registe 0 /默认定义为动态注册方式#endif / end _MYDEF_HMakfile文件内容:ifneq ($(KERNELRELEASE),)obj-m:=mygpio.oelseall:make -C $(KDIR) M=$(PWD) modulesclean:rm -f *.ko *.o *mod.c *.symvers *.orderendif. v . ./*名称:test.c说明:测试对应的驱动程序mygpio时间:2013年04月21日*/#include#include#include#includeint main()int fd;int num;fd=open(/dev/mygpio,O_RDWR);if(fd=-1)printf(open faile);write(fd,&num,4);printf(okn);return 0;. v .

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号