mini2440上LEDS的驱动程序(含测试程序)_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、mini2440上leds的驱动程序(含测试程序)ls_drv.h ifndef _memdev_h_ define _memdev_h_ ilude linux/ioctl.h /* 定义幻数 */ define memdev_ioc_magic 'k' /* 定义 */ define memdev_ioc_on _io(memdev_ioc_magic, 1) define memdev_ioc_off _io(memdev_ioc_magic, 2) define memdev_ioc_maxnr 2 define led_on 0 define led_off 1 en

2、dif /* _memdev_h_ */leds_drv.c include linux/misevice.h include linux/delay.h include asm/irq.h include mach/regs-gpio.h include mach/hardware.h include linux/kernel.h include linux/miscdevice.h include linux/delay.h include asm/irq.h include mach/regs-gpio.h include mach/hardware.h include linux/ke

3、rnel.h include linux/mole.h include linux/init.h include linux/mm.h include linux/fs.h include linux/types.h include linux/delay.h include linux/moduleparam.h include linux/slab.h include linux/errno.h include linux/ioctl.h include linux/cdev.h include linux/sing.h include linux/list.h include linux

4、/pci.h include linux/gpio.h include asm/uaccess.h include asm/atomic.h include asm/unistd.h include leds_drv.h define device_name leds ic unsigned long led_table = s3c2410_gpb(5), s3c2410_gpb(6), s3c2410_gpb(7), s3c2410_gpb(8), static unsigned int led_cfg_table = s3c2410_gpio_output, s3c2410_gpio_ou

5、tput, s3c2410_gpio_output, s3c2410_gpio_output, static int s3c2440_leds_ioctl(struct inode *inode, struct *file, unsigned int cmd, unsigned long arg) /* 检测指令的有效性 */ if (_ioc_type(cmd) != memdev_ioc_magic) return -einval; if (_ioc_nr(cmd) memdev_ioc_maxnr) return -einval; /* 按照指令,执行相应的操作 */ switch (c

6、md) case memdev_ioc_off: s3c2410_gpio_pin(led_tablearg, led_off); return 0; case memdev_ioc_on: s3c2410_gpio_setpin(led_tablearg, led_on); return 0; default: return -einval; /*文件操作结构体*/ static struct file_operations dev_fops = .owner = this_module, .ioctl = s3c2440_leds_ioctl, static struct miscdevi

7、ce misc = .minor = misc_dynamic_minor, .name = device_name, .fops = dev_fops, static int _init dev_init(vo) int ret; int i; /*设置gpio控制寄存器,gpio设置为输出模式,默认下灯全灭 */ for (i = 0; i i+) s3c2410_gpio_cfgpin(led_tablei, led_cfg_tablei); s3c2410_gpio_setpin(led_tablei, 1); /*注册混杂型字符设备驱动 */ ret = misc_register(

8、 misc); printk(device_name tinitializedn return ret; static void _it dev_exit(void) /*注销混杂型字符设备驱动 */ misc_deregister( misc); module_init(dev_init); module_exit(dev_exit); module_author( cried devil module_license( gpl app-leds.c include stdio.h include stdlib.h include unistd.h include sys/ioctl.h i

9、nclude leds_drv.h /* 包含指令定义 */ int main(int argc, char *argv) int on; int fd; int num; if (argc != 3 | sscanf(argv1, %d , num) != 1 | sscanf(argv2, %d , on) != 1 | on 0 | on 1 | num 0 | num 3) fprintf(stderr, usage: %s led_num off|onn , argv0); fprintf(stderr, usage: %s 0|1|2|3 0|1n , argv0); fprint

10、f(stderr, ex : %s 0 1n , argv0); exit(1); fd = open( /dev/leds , 0); if (fd 0) perror( open device leds exit(1); if (on) / printf( turn on led %d!n , num); ioctl(fd, memdev_ioc_on, num); ee / printf( turn off led %d!n , num); ioctl(fd, memdev_ioc_off, num); close(fd); return 0; makefile ifneq ($(ker

11、nelrelease),) obj-m := leds_drv.o kdir := /home/youshan/linux- myapp := app-leds make -c $(kdir) m=$(pwd) modules arch=a cross_compile=arm-linux- arm-linux-gcc $(myapp).c -o $(myapp) clean: rm -f *.ko *.o *.mod.o *.mod.c *.syers modul* rm -f $(myapp) endif 编译结果: rootshiguang leds rootshiguang leds make make -c /home/youshan/linux- m=/home/my_project/temperature/leds modules arch=arm cross_compile=arm-linux- make1: 进入名目“/home/youshan/linux-” cc m /home/my_project/temperature/leds/leds_drv.o building modules, stage 2. modpost 1 modules cc /home/my_project/te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论