zoukankan      html  css  js  c++  java
  • 第七章读后感

    linux驱动直接与硬件交互,但并不是linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。每一个连接Linux的硬件在I/O内存中都会有映射首地址。任何现代的操作系统主机插入硬件时都会检测到该硬件,但硬件被检测只能说明在内核空间中建立了I/O内存,要想用户空间的程序可以访问硬件,还必须安装可与I/O内存交互的驱动程序。

    一.进行编写LED驱动,首先要创建LED驱动设备文件:

    1步:使用cdev_init函数初始化cdev

    2步:指定设备号;

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

    4步:使用class_create宏创建struct class

    5步:使用device_create函数创建设备文件;

    二.设置寄存器和初始化LED驱动,在控制 LED 亮、灭之前必须要了解如何设置寄存器。ARM处理器有多个寄存器,通过设置不同寄存器的值,可以设置LED引脚的状态、打开或禁止上拉(pull-up)电路以及控制LED的亮和灭。然后控制LED灯,LED 驱动可以使用如下两种方式控制 LED

    1.通过字符串控制LED

    2.通过I/O命令控制LED

    要想使用上述两种方式控制LEDLED驱动必须要接收相应的数据,如果通过字符串控制LED,需要使用fif.e_operations.write函数,如果通过 I/0命令控制LED,需要使用file__operations.iocd函数。

    最后进行LED驱动的测试,可以编写测试I/O控制命令的通用程序测试,也可以使用NDK测试LED驱动,还可以使用Java测试LED驱动。

    一个完整的Linux驱动主要由内部处理和与硬件交互降部分组成。其中内部处理主要是指Linux驱动的装载、卸载、与设备文件相关的动作处理(读写设备文件、向设备文件发送I/O命令等动作〉以及业务逻辑等。与硬件交互主要是指通过iowrite32ioread32等函数与硬件中的寄存器进行数据交互。 

     http://i.cnblogs.com/EditPosts.aspx?opt=1

  • 相关阅读:
    使用POI读写Word doc文件
    用纯css改变下拉列表select框的默认样式
    深入探究JFreeChart
    arcgis api for javascript中使用proxy.jsp
    【Itext】7步制作Itext5页眉页脚pdf实现第几页共几页
    iText5报表_页眉与页脚
    JFreeChart柱状图单组柱子的不同颜色显示
    如何自定义FusionCharts图表上的工具提示?
    span 文本内容超过宽度自动换行
    JS正则表达式验证账号、手机号、电话和邮箱
  • 原文地址:https://www.cnblogs.com/zhangyuye/p/5560994.html
Copyright © 2011-2022 走看看