• 第八章、让开发板发出声音:蜂鸣器驱动


    通过对这一章节的学习我学到了如下知识:

     一、蜂鸣器的知识:蜂鸣器也称为PWM(脉冲宽度调制),其基本原理是通过脉冲来控制蜂鸣器的打开和关闭,定时器的输出引脚与蜂鸣器的三极管相连,此电路的三极管是PNP性,当引脚是高电平时,此三极管处于饱和状态,电路导通,电流流过蜂鸣器,此时蜂鸣器发声,反之,当引脚是高电平时,此三极管处于截止状态,电路关断,蜂鸣器停止发声。       蜂鸣器驱动由三个文件组成:pwm_c.pwm_fun.h、pwm_fun.c。其中pwm.c是驱动主程序。pwm_fun.h引用了相应的头文件,以及定义了一些宏。pwm_fun.c文件则包含了打开和停止pwm的两个函数。      

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

          对实验的学习:     将 3 个.c 文件分别编译成 3 个.0 文件,并将这3 个.0 文件链接生成.ko 文件。 1.编写main.c文件,以及fun.c、product.c和product.h文件。 2.编写makefile文件   obj-m := main.o  multi_file_driver-y := fun.o  product.o 

    二、代码重用: 1、静态重用 :将要重用的代码放在其他的文件中,如果要使用某些功能,用include相应的头文件即可 2、动态重用:一个Linux驱动可以使用另外一个Linux驱动中的资源 三、卸载由于异常情况而导致的Linux驱动模块无法卸载有如下两种情况:

    1、初始化函数崩溃:将当前的Linux驱动模块的引用计数器清零即可

    2、卸载函数被阻塞:将原来的卸载函数替换成一个空的卸载函数即可

  • 相关阅读:
    BIOS详解:什么是BIOS ?BIOS的作用?CMOS及其与BIOS的关系?
    随机数不随机
    解决hexo神烦的DTraceProviderBindings MODULE_NOT_FOUND
    保护模式特权级别DPL,RPL,CPL 之间的联系和区别
    Linux内核 hlist_head/hlist_node结构解析
    x86中的页表结构和页表项格式
    Linux下/proc目录简介
    bdev文件系统
    X86 IO端口和MMIO
    Mac OS Alfred 2 tips
  • 原文地址:https://www.cnblogs.com/liang123456/p/5640127.html
Copyright © 2020-2023  润新知