Linux代码的重用:

在头文件中加载即可使用到原来所有的功能,还有动态方式就是一个驱动使用另一个驱动的资源。

对于像蜂鸣器这样的实验,它的内部文件有很多,所有要有很多的源代码以用于妥善管理。

有多个文件的话,module-y指定所有的文件,然后将会生成一个build.sh脚本,使用sh执行,使用dmesg查看日志信息。

代码重用分为静态和动态的。静态重用是生成.ko内核,动态重用是模块依赖,一个驱动使用另一个驱动模块里导出的符号。

重启开发板或者模拟器.ko文件就会自动消失。使用异常情况卸载:1.初始化函数卸载。2.卸载函数被阻塞

卸载一个驱动,需要输入一堆命令查询module结构体的首地址,安装和下载force_kill_driver驱动。

蜂鸣器的驱动实现原理与LED基本相同,但是实现方式不同,因为PWM是由多个文件组成的。

PWM基本原理是通过脉冲来控制蜂鸣器的打开和停止。GPFCON只用了最高的两位来控制PWM。

静态函数结构体,PWM设备文件open函数,使用信号量控制在同一时刻 只能打开PWM设备文件,然后close函数释放信号量,ioctl()函数处理I/O命令,设置文件设备file_operation设备,最后在最开始初始化信号量,移除信号量。在pwm.h文件PWM_IOTCL_START打开,PWM_IOTCL_STOP停止,这里在Linux底层驱动中有详解,生成.ko文件,编译成功。

测试蜂鸣器一般使用I/O命令的参数,可以正常发声。

linux pwm控制蜂鸣器 滴滴_第七章----pwm蜂鸣器相关推荐

  1. ArcGIS for Desktop入门教程_第七章_使用ArcGIS进行空间分析 - ArcGIS知乎-新一代ArcGIS问答社区...

    原文:ArcGIS for Desktop入门教程_第七章_使用ArcGIS进行空间分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 使用ArcGIS进行空间分析 1.1 GIS分析基础 G ...

  2. java程序设计基础_陈国君版第五版_第七章例题

    java程序设计基础_陈国君版第五版_第七章例题 class Cylinder {private double radius;private int height;private double pi ...

  3. linux pwm控制蜂鸣器 滴滴_兴安盟KOBISHI电磁蜂鸣器BZ-21BLAC24V保证

    兴安盟KOBISHI电磁蜂鸣器BZ-21BLAC24V保证日本KOBISHI蜂鸣器.jjb器 .蜂鸣器BZ-35VR DC24V.济南千斗工业出售,货期短.价格低.保证 这里只对必须用1/2duty的 ...

  4. 松下伺服电机pwm控制连线_从零打造树莓派家庭监控 (一): 伺服电机控制

    本文首发自我的博客 MikeTech 现在很多家庭喜欢购买一个摄像头来监控家里的情况,但是往往却无法了解购买第三方摄像头的安全性,摄像头泄露的新闻也每过一段时间就会出现在人们的视野当中.如果购买的摄像 ...

  5. 鸟哥Linux私房菜_基础篇(第二版)_第七章学习笔记

    第七章 Linux文件和目录管理 绝对路径:以"/"开始 相对路径:以非"/"开始 其中,"."代表当前目录,".."代 ...

  6. 松下伺服电机pwm控制连线_漫谈“独臂神通”PWM(4):驱动伺服电机

    今天我们用一些图片来看看PWM在驱动伺服电机中的应用. 几种常用的马达 很多工程师和高校的学生对于伺服电机已经非常熟悉了,它一般由马达.变速器.传感器组成,经常用于遥控设备来进行转向.调整角度等. 通 ...

  7. Linux内核分析 读书笔记 (第七章)

    第七章 链接 1.链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储器并执行. 2.链接可以执行于编译时,也就是在源代码被翻译成机器代码时:也可以执行于 ...

  8. 高项_第七章项目成本管理

    第七章项目成本管理 上午.案例分析.论文写作都会进行考察.项目成本管理一本上午考察3分,非常重要,要是成本控制的不好,直接关乎项目的质量,因此成本管理次张杰非常重要,案例分析可能会出案例分析计算,主要 ...

  9. STM32Cube的PWM控制基础篇(一)一路PWM设置

    以下是有关STM32cube的PWM的花式操作,大佬们在看下面链接之前建议先看完本博客,个人觉得写的比较详细,欢迎大佬之指正! STM32Cube的PWM控制基础篇(二)多路占空比不同的PWM STM ...

最新文章

  1. 同一Linux下起两台Mysql Server
  2. HATEOAS REST Service
  3. kafka消费的三种模式_快速认识Kafka
  4. [转]expect的安装
  5. python2与python3共存_【python】--python2与python3 共存
  6. C++常见面试题-30道
  7. c:forTokens
  8. python修改wav文件声音大小_如何用python批量调整视频声音
  9. linux u盘 修复工具,在Linux终端中修复U盘驱动器问题
  10. 制作好的种子怎么上传服务器,用BT如何上传自己的文件?
  11. unity车漆模拟ASE
  12. idea报Establishing SSL connection without server‘s identity verification is not recommended.
  13. sd和sem啥区别_标准差SD和标准误sem的区别
  14. 【柒穆雨】什么是平面设计,学习平面设计需要具备什么条件?
  15. 语雀 | markdown文档编写常用快捷键
  16. 地图制图基础(三):地图制作要求
  17. SVN更新或提交时出现冲突该如何解决
  18. Windows 11 移动文件夹错误 0x800700E1 无法成功完成操作
  19. 什么人不在生死簿_高人亲眼所见的“地狱、生死簿、三世因果”(转)阴间一直是世...
  20. HTML5支持服务器发送事件

热门文章

  1. 苏黎世联邦理工学院计算机博士去向,2019年5月31日学术报告(李文 研究员,瑞士苏黎世联邦理工学院)...
  2. java swing实训项目(图书管理系统)
  3. AI遮天传 DL-深度学习在计算机视觉中的应用
  4. android的启动动画,Android系统开机动画的一生
  5. ad账户与linux集成,Ubuntu 通过ldap集成AD账号登录(nslcd方式)
  6. pycharm无法识别turtle库中函数名的解决方法
  7. Android 拨打电话各安卓版本适用
  8. 小试牛刀—猜数字游戏
  9. leetcode题解-647. Palindromic Substrings 5. Longest Palindromic Substring
  10. 新⼀代USDP开源套件,可替代CDH的免费大数据套件平台及架构选型