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

    尽管Linux驱动直接与硬件打交道,但并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存(I/O Memory,位于内核空间)进行交互。所谓IO内存是通过各种接口(PCI,USB,蓝牙,以太网接口等)连接到主机的硬件在主机内存中的映射。

    Linux内核提供了多个与I/O内存交互的函数。Linux内核的内存管理模块杜泽同步I/O内存与硬件中的数据。

    每一个连接Linux的硬件在I/O内存中都会有映射首地址。在使用ioread32,等函数时需要制定这些首地址。

    LED灯驱动以动态驱动模块的(.KO文件)的形式提供。

    我们创建一个设备文件需要以下步骤,

    1,使用cdev_init函数初始化cdev

    2,制定设备号

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

    4,使用class_create红创建struct class

    5,使用device_creatr函数创建设备文件

    控制LEDLED驱动可以使用如下两种方式控制LED

    通过字符串控制LED,使用I/O命令控制LED

    一个完整的Linux驱动程序主要由内部处理和硬件两部分组成,其中内部处理主要是指Linux驱动的装载,卸载,与设备问价相关动作的处理以及业务逻辑等。与硬件交互主要是指通过函数等与硬件中的寄存器进行数据交互。Linux在不同的平台上移植也是这两部分。

  • 相关阅读:
    URL参数加密专用
    错误
    js学习类
    .net第一个服务器控件
    javascript中的call()和apply()方法 原创实例
    FIS使用技巧
    自定义参数表单URL参数处理
    避免编写解决"不存在"问题的代码
    从 1.1.0 升级到 1.2.0 的注意事项
    jquery常用插件,应用解析
  • 原文地址:https://www.cnblogs.com/sun-123/p/5560962.html
Copyright © 2011-2022 走看看