zoukankan      html  css  js  c++  java
  • 第七章

    一、LED驱动实现原理:

                      Linux驱动与本机的I/O内存进行交互,连接到主机的硬件在主机内存的映射。

             二、编写LED驱动:

                      1. 创建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:

                      1.通过字符串控制LED;

    2.通过I/o命令控制LED;

             六、测试LED驱动:

                      1. 编写测试 f/0 控制命令的通用程序:

    LED驱动有两种与设备文件交互的方式:直接写入字符串数据和I/O控制命令。直接向设备文件写入数据可以使用命令行方式来完成,也可以通过write函数来完成。

                      2.使用NDK测试LED驱动:

                              NDK程序测试和可执行程序测试差不多。只不过NDK Library可以被Java程序调用,而在Android系统中的可执行程序在非root状态下是无法直接被调用的。所以如果想在Android应用程序中测试Linux驱动,最直接的方法就是使用NDK。

  • 相关阅读:
    java.lang.UnsupportedClassVersionError: action/Login : Unsupported major.minor version 52.0 (unable to load class action.Login)异常
    main方法和args参数
    建立maven工程pom.xml报错:web.xml is missing and <failOnMissingWebXml> is set to true
    遍历js中数组或者对象
    setAttribute设置无效
    javascript中用setAttribute给元素添加colspan属性无效
    ssm回顾笔记(一)
    struts2学习笔记(一)
    esay-ui学习笔记(一)
    农银电商项目学习笔记(一)
  • 原文地址:https://www.cnblogs.com/homwok/p/5561513.html
Copyright © 2011-2022 走看看