Android深度探索(卷1)HAL与驱动开发 第七章 LED将为我闪烁:控制发光二极管 读书笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android深度探索(卷1)HAL与驱动开发 第七章 LED将为我闪烁:控制发光二极管 读书笔记相关的知识,希望对你有一定的参考价值。
本章的实验将会实现真正意义上的Linux驱动,会实现直接与硬件的交互。需要控制4个LED灯。
7.1LED驱动的实现原理
事实上并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。I/O内存是通过各种接口连接到主机的硬件在主机内存中的映射。
7.2编写LED驱动
1.创建LED驱动的设备文件
(1).使用cdev_init函数初始化cdev
(2).指定设备号
(3).使用cdev_add函数将字符设备添加到内核中的字符设备数组中。
(4)使用class_create宏创建struct class
(5)使用device_create函数创建设备文件
2.卸载LED驱动的设备文件
3.设置寄存器与初始化LED驱动
4.控制LED
7.4LED驱动的移植
由于LED驱动并未调用太多的Linux内核API,而这些API丢失的可能性也不大,因此移植到内核只需要重新编译即可。移植Linux驱动有一条非常重要,就是在修改Linux驱动的源代码时,应尽量不修改Linux驱动的接口。
在一个完整的Linux驱动中,主要由内部处理与硬件交互两部分组成。如果在不同版本之间的Linux间移植,主要移植第一部分,在不同硬件平台上,则主要第二部分。
软件1308班31号 张帆 博客园地址: http://home.cnblogs.com/u/sxauzzz/
以上是关于Android深度探索(卷1)HAL与驱动开发 第七章 LED将为我闪烁:控制发光二极管 读书笔记的主要内容,如果未能解决你的问题,请参考以下文章
Android深度探索(卷1)HAL与驱动开发 第六章 第一个Linux驱动程序:统计单词个数