zoukankan      html  css  js  c++  java
  • Android深度探索-卷1第七章心得体会

    创建LED驱动的设备文件

    第一步:使用cdev_init函数初始化cdev

    第二步:指定设备号。直接在代码指定或动态分配

    第三步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中

    第四步:使用class_create宏创建struct class

    第五步:使用device_create函数创建设备文件

    卸载LED驱动的设备文件

    需要依次调用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

    一.通过字符串控制LED。

    二.通过I/O命令控制LED。

    原理:Linux的内核虽然直接与硬件打交道,但并不是Linux驱动直接向硬件内存中写数据,而是与本机的io内存进行交互。一个完整的驱动主要有内部处理和硬件交互俩部分组成。其中内部处理只要值Linux的驱动装载、卸载、与设备文件的相关的动作处理以及业务逻辑等,与硬件交互主要是与版中的寄存器交换数据。

    注意:移植linux有一条非常重要,就是在修改Liunx驱动的源代码时应尽量不 修改linux驱动接口。

  • 相关阅读:
    select/poll/epoll 对比
    I/O Mutiplexing poll 和 epoll
    Socket 编程IO Multiplexing
    ubuntu12.04 lts 安装gcc 4.8
    time since epoch
    ceph-RGW Jewel版新概念
    支持向量机(svm)
    MachineLearning之Logistic回归
    ML之回归
    ML之监督学习算法之分类算法一 ——— 决策树算法
  • 原文地址:https://www.cnblogs.com/for-dream/p/5561967.html
Copyright © 2011-2022 走看看