第七章读书笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七章读书笔记相关的知识,希望对你有一定的参考价值。
LED驱动实现原理是Linux驱动与本机的I/O内存进行交互,连接到主机的硬件在主机内存的映射。
编写驱动程序,先创建led驱动的设备文件:
创建LED驱动的设备文件:
1.使用cdev_init函数初始化cdev;
struct cdev {
Struct konject kobj;
Struct module *owner;
Const struct file_operation *ops;
Strust list_head list;
Dev_t dev;
Unsigned int count;
};
2. 指定设备号;
Linux设备文件的设备号分为主设备号和次设备号。设备号有两种指定方法:
(1).直接在代码中指定(硬编码)
(2).动态分配
3. 使用 cdev_add函数将字符设备添加到内核中的字符设备数组中;
4. 用 class_create 宏创建 struct class;
5. 使用device_create函数创建设备文件;
卸载 LED 驱动的设备文件;
卸载Linu驱动的设备文件,需要依次调device_destroy、class_destroy和unregister_ chrdev _region方法。
void device_destroy(struct class *class, dev_t devt)
void class_destroy(struct class *cls)
void unregister_chrdev_region (dev_t from, unsigned count)
设置寄存器与初始化 LED 驱动;
Led驱动可以使用两种方式控制led灯:
1.通过字符串控制led;
2.通过i/o命令控制led。
测试led驱动:
1.使用NDK测试LED驱动
2.使用java测试LED驱动
控制LED灯的驱动是本书第一个和硬件结合的驱动,包括了linux驱动所有必要的部分。NDK程序测试和可执行程序测试差不多。NDK Library可以被Java程序调用,而在android系统中的可执行程序在非root状态下是无法直接被调用的。
以上是关于第七章读书笔记的主要内容,如果未能解决你的问题,请参考以下文章