第七章主要讲的是控制发光二极管的驱动程序,用来控制开发板上的4个led灯

首先讲了led驱动的实现原理,linux驱动并不是直接向硬件的内存中写数据,而是与本机的i/o内存进行交互,每一个连接linux的硬件在i/o内存中都会有映射首地址。

编写驱动程序,先创建led驱动的设备文件:

1.使用cdev_init函数初始化cdev

描述设备文件需要一个cdev的结构体,cdev的大多是成员变量并不需要我们去初始化,只要调用cdev_init函数就可以初始化大部分cdev的成员变量

2.指定设备号

Linux 的设备的文件号分为 主设备号和此设备号,设备号有两种指定方法:直接在代码中指定;动态分配。

3.使用cdev_add函数将字符设备添加到内核中的字符设备数组中,调用cdev_add函数需要指定设备文件指针、设备号和设备文件数量。

4.使用class_create宏创建struct class

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

卸载led驱动的设文件需要依次调用device_destroy、class_destroy、unregister_chrdev_region方法。

在控制led灯亮、灭之前必须要了解如何设置寄存器。

Led驱动可以使用两种方式控制led灯:

1.通过字符串控制led;

2.通过i/o命令控制led。

测试led驱动:

1.使用NDK测试LED驱动

2.使用java测试LED驱动

控制LED灯的驱动是本书第一个和硬件结合的驱动,虽然程序不复杂,但是包括了linux驱动所有必要的部分。

转载于:https://www.cnblogs.com/jinzekun/p/5560894.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值