zoukankan      html  css  js  c++  java
  • 第八章让开发版发出声音:蜂鸣器驱动

    第八章让开发版发出声音:蜂鸣器驱动

    第八章本章主要介绍蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动(可以打开和关闭蜂鸣器),以及把Linux驱动分成多个文件的方式。

           蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。

           PWM驱动不同于LED驱动,将由多个文件组成,这也是大多数Linux驱动的标准实现形式。也就是说一个复杂的驱动不太可能将所有的代码都放在一个文件中,最好将相关的代码放在相应的文件中,在编译Linux驱动的时候讲这些文件进行联合编译。这些文件的数据结构、函数的代码也可以被多个不同的驱动所使用,这也是代码重用的重要方法。

    第一节Linux驱动的代码重用

           Linux驱动的代码重用有两种方法。

    一个是采用标准C程序的方式,将要重用的代码放在其他的文件中。如果要使用某些功能,include相应的头文件即可。这个方法也被称为静态重用。

    一个是采用动态重用的方式,一个Linux驱动可以使用另外一个Linux驱动的资源。

    第二节强行卸载Linux驱动

           卸载驱动需要输入一堆命令查询module结构体的地址,安装和卸载force_kill_driver驱动,特别容易出错。为了使工作自动化,可以编写一个脚本文件来自动查找、截取module结构体首地址,自动完成其他所有的工作,我们只需指定模块名。

    第三节蜂鸣器(PWM)驱动

                  PWM驱动由:pwm.c(驱动主程序)、pwm_fun.h(引用相应的头文件)、pwm_fun.c(包含打开和停止PWM的函数)三个文件组成。

                 首先将pwm.c和pwm_fun.c文件编译成pwm.o和pwm_fun.o,然后再将这两个文件链接成pwm_driver.o,最后生成pwm_driver.ko。

  • 相关阅读:
    无语的Filezilla
    服务无法启动集中帖
    FileZilla Server-Can’t access file错误解决方法
    CCNA2.0笔记_OSPF v3
    CCNA2.0笔记_OSPF v2
    <转>32位移植到64位 注意事项
    异步设备IO 《windows核心编程》第10章学习
    关于自己五年来做出的选择分析
    2015过年之前计划
    关于同一线程两次调用EnterCriticalSection的测试
  • 原文地址:https://www.cnblogs.com/maxgty/p/5653937.html
Copyright © 2011-2022 走看看