zoukankan      html  css  js  c++  java
  • 深度探索android第七章

    LED 驱动是本书第一个真正和硬件打交道的Linux 驱动。虽然LED 驱动并不复杂,只是控制

    了4 个LED,"但LED 驱动已经包括了Linux 驱动所有必要的部分 一个完整的Linux 驱动主要由

    内部处理和与硬件交互降部分组成。其中内部处理主要是指Linux 驱动的装载、卸载、与设备文件

    相关的动作处理(读写设备文件、向设备文件发送νo 命令等动作〉以及业务逻辑等。与硬件交互

    主要是指通过i owrite32 、. ioread32 等函数与硬件中的寄存器进行数据交互。-Linux 驱动在不同平台

    的移植也是处理这两部分。如果在不同Lin肌肉核版本之间的移植,主要是移植第1 部分( Linux

    驱动的内部处理, γ般Linux 内核版本相差较大时, Linu叉’ 内核的APl 会有很大差别〉,如果在不

    同硬件平台(如7.4 节介绍的在不同开发板之间的移植〉的移植,主要是移植第2部分。当然, 在

    一些情况不, Linux 驱动的移植基本上相当于重新编写一遍Linux 驱动,在这种情况下,就要更好

    地了解Linux 驱动的高级技术.

    创建LED驱动的设备文件的步骤:

    1、使用cdev_init函数初始化cdev

    2、指定设备号

    3、使用cdev_add函数将字符设备添加到内核中的字符设备组中

    4、使用class_create宏创建struct class

    5、使用device_create函数创建设备文件

    卸载LED驱动的设备文件:

           void device_destory(sruct class *class,dev_t devt)

           void clss_dsetroy(struct class *class)

           void unregister_chrdex_region(dev_t from,unsigned count)

  • 相关阅读:
    Oracle Function REGEXP
    Asp.net 注册IIS
    SAP모듈
    C# 程序中,不使用TNS File 中的服务名进行数据库连接
    跟我一起学XNA(2)让物体动起来②(附源码)
    ubuntu显卡的几个帖子
    每秒改变一次背景颜色以及由此引发的一些有趣的小事情(.net方向)
    to myself
    vi编辑器上下左右键盘变成ABCD
    一个最简单的linux hello world模块
  • 原文地址:https://www.cnblogs.com/maoyuan/p/5561347.html
Copyright © 2011-2022 走看看