码迷,mamicode.com
首页 > 其他好文 > 详细

第七章读书笔记

时间:2016-06-05 22:55:40      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

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状态下是无法直接被调用的。

第七章读书笔记

标签:

原文地址:http://www.cnblogs.com/ran702315/p/5561850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!