Android深度探索第七章

控制发光二极管

创建LED驱动的设备文件

1.使用cdev_init函数初始化cdev

cdev结构体

struct cdev{

  struct kobject kobj;

  struct module *owner;

  const struct file_operations *ops;

  struct list_head list;

  dev_t dev;

  unsigned int count;

}

2.指定设备号

  直接在代码中指定:使用MKDEV宏将主次设备号组合成设备号,使用MAJOR和MINOR宏从设备号中获取主次设备号

  动态分配:alloc_chrdev_region函数

3.使用cdev_add函数将字符设备添加到内核中的字符设备数组中

  指定设备文件指针,设备号和设备文件数量。调用cdev_add函数

4.使用class_creat宏创建struct class

5.使用device_creat函数创建设备文件

卸载LED驱动的设备文件

  依次调用device_destroy,class_destroy和unregister_chrdev_region方法

设置寄存器与初始化LED驱动

控制LED

  1、通过字符串控制LED    2、通过I/O命令控制LED

posted @ 2016-06-06 13:01  浅愿芊荨  阅读(103)  评论(0编辑  收藏  举报