第七章简述了另外一个驱动程序: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控制命令都可以实现与设备文件的交互。
时间: 2024-10-01 07:18:07