• 第七章主要讲的是控制发光二极管的驱动程序,用来控制开发板上的4个led灯


    首先讲了led驱动的实现原理,linux驱动并不是直接向硬件的内存中写数据,而是与本机的i/o内存进行交互,每一个连接linux的硬件在i/o内存中都会有映射首地址。

    编写驱动程序,先创建led驱动的设备文件:

    1.使用cdev_init函数初始化cdev

    描述设备文件需要一个cdev的结构体,cdev的大多是成员变量并不需要我们去初始化,只要调用cdev_init函数就可以初始化大部分cdev的成员变量

    2.指定设备号

    Linux 的设备的文件号分为 主设备号和此设备号,设备号有两种指定方法:直接在代码中指定;动态分配。

    3.使用cdev_add函数将字符设备添加到内核中的字符设备数组中,调用cdev_add函数需要指定设备文件指针、设备号和设备文件数量。

    4.使用class_create宏创建struct class

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

    卸载led驱动的设文件需要依次调用device_destroy、class_destroy、unregister_chrdev_region方法。

    在控制led灯亮、灭之前必须要了解如何设置寄存器。

    Led驱动可以使用两种方式控制led灯:

    1.通过字符串控制led;

    2.通过i/o命令控制led。

    测试led驱动:

    1.使用NDK测试LED驱动

    2.使用java测试LED驱动

    控制LED灯的驱动是本书第一个和硬件结合的驱动,虽然程序不复杂,但是包括了linux驱动所有必要的部分。

  • 相关阅读:
    MySQL Stack Buffer Overflow Linux x86 32bits
    WordPress Browser Rejector 插件"wppath"远程文件包含漏洞
    JBoss Enterprise Application Platform安全绕过漏洞
    启动NDuiker项目
    java基础>Java常用类库 小强斋
    MyEclipse6.5安装SVN插件的三种方法 小强斋
    jsp>Jsp语法 小强斋
    java基础>Java常用类库 小强斋
    jsp>Jsp语法 小强斋
    java基础>正则表达式 小强斋
  • 原文地址:https://www.cnblogs.com/jinzekun/p/5560894.html
Copyright © 2020-2023  润新知