zoukankan      html  css  js  c++  java
  • 控制发光二极管

    将驱动编译进Linux内核进行测试

    一个完整的linux驱动主要由内部处理和与硬件交互两部分组成。其中内部处理主要是指linux驱动的装载、卸载、与设备文件相关的动作处理以及业务逻辑等。与硬件交互主要是指通过ioweite、ioread32等函数与硬件中的寄存器进行数据的交互。Linux驱动在不同平台的移植也是处理这两部分。如果在不同Linux内核版本之间的移植,主要是移植第1部分,如果在不同硬件平台的移植,主要是移植第二部分。

    我们在控制LED亮、灭之前必须会寄存器了如指掌:包括LED有两个引脚线、控制LED需要通过3个寄存器来完成、每个寄存器可以使用4个字符、使用GPMDAT寄存器的低4位来控制4个LED灯的亮灭。

    LED驱动可以使用两种方法控制驱动:1、通过字符串控制LED;2、通过I/O命令控制LED

    卸载驱动的设备文件:依次调用device_destroy  class_destroy  unregister_chrdev_region方法

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

    执行ioctl命令的语法格式:ioctl <设备文件> <cmd> <arg>  (命令行参数必须至少有三个)

    一个完整的Linux驱动主要由内部处理和硬件交互两部分组成,其中内部处理只要指Linux驱动的装载卸载、与设备文件相关的动作处理。与硬件交互主要是指通过iowrite32、ioread32等函数与硬件中的寄存器进行数据交互。

  • 相关阅读:
    Nios学习笔记3——流水灯实验
    Nios学习笔记2——流水灯实验
    Nios学习笔记1——流水灯实验
    转:摄像头camera 7660/7670/7225/9650以及程序流程(一)
    fpga 扇入扇出
    门控时钟的使用
    门控时钟与多扇出问题解决方案
    为所欲为——教你什么才是真正的任意分频
    SDRAM时序--读高手进阶,终极内存技术指南
    FPGA你必须知道的那些事儿
  • 原文地址:https://www.cnblogs.com/sleepywei/p/5561509.html
Copyright © 2011-2022 走看看