《Android》深度探索第七章心得体会

第七章简述了另外一个驱动程序:LED灯的控制

1.创建LED驱动的设备文件:

第1步:使用cdev_init函数初始化cdev;

第2步:指定设备号,分为两种指定方法

第3步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中;

第4步:使用class_create宏创建struct class;

第5步:使用device_create函数创建设备文件。

2.卸载LED驱动的设备文件

关键代码:

void device_destory(sruct class *class,dev_t devt)

  void clss_dsetroy(struct class *class)

void unregister_chrdex_region(dev_t from,unsigned count)

 

1. 控制LED,LED驱动可以通过字符串和I/O命令两种方式控制LED。

LED有两个引脚:GPB0和GPB1。其中一个引脚连接到了ARM处理器的GPI0端口,另一个引脚经过一个限流电阻连接到电源。控制LED需要通过3个寄存器来完成,分别为GPMCON、GPMDAT、GPMPUD。每一个寄存器可以使用4个字节。使用GPMCON寄存器的低16位将LED两个端口的属性设置为Outpt。使用GPMDAT寄存器的低4位控制4个LED的亮、灭。

  与硬件打交道,需要把程序写入I/O内存,由I/O内存负责与主机的各个硬件进行交互。在led驱动中,直接写入字符串数据和I/O控制命令都可以实现与设备文件的交互。

posted on 2016-06-10 05:57  maam  阅读(98)  评论(0编辑  收藏  举报