• 第七章读书笔记


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

  • 相关阅读:
    解决struts2在(IE,Firefox)下载文件名乱码问题
    Quartz 使用
    SpringBoot 全局异常处理器
    数据结构学习(五) Java链表实现队列
    数据结构学习(四) Java链表实现
    Linux 端口占用情况查看
    数据结构学习(三) 基于动态数组实现队列Queue
    数据结构学习(二)基于动态数组实现Stack(栈)
    SpringBoot 定时任务
    数据结构学习(一) Java中的动态数组实现
  • 原文地址:https://www.cnblogs.com/ran702315/p/5561850.html
Copyright © 2020-2023  润新知