第七章----pwm蜂鸣器
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命令的参数,可以正常发声。
第七章----pwm蜂鸣器的更多相关文章
- 精通Web Analytics 2.0 (9) 第七章:失败更快:爆发测试与实验的能量
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第七章:失败更快:爆发测试与实验的能量 欢迎来到实验和测试这个棒极了的世界! 如果Web拥有一个超越所有其他渠道的巨大优势,它就 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (38) ------ 第七章 使用对象服务之动态创建连接字符串和从数据库读取模型
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第七章 使用对象服务 本章篇幅适中,对真实应用中的常见问题提供了切实可行的解决方案. ...
- 《Entity Framework 6 Recipes》中文翻译系列 (41) ------ 第七章 使用对象服务之标识关系中使用依赖实体与异步查询保存
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-7 标识关系中使用依赖实体 问题 你想在标识关系中插入,更新和删除一个依赖实体 ...
- Java语言程序设计(基础篇) 第七章 一维数组
第七章 一维数组 7.2 数组的基础知识 1.一旦数组被创建,它的大小是固定的.使用一个数组引用变量,通过下标来访问数组中的元素. 2.数组是用来存储数据的集合,但是,通常我们会发现把数组看作一个存储 ...
- objective-c第七章课后练习2
题:改变第七章例子中print方法,增加bool参数,判断如果是YES则对分数进行约简 @interface Fraction : NSObject { //int num,den; } @prope ...
- 读《编写可维护的JavaScript》第七章总结
第七章 事件处理 7.1 典型用法 作者首先给了个我们一个处理事件的方法.看起来也没啥俩样,不过后来给出的优化方法很值得学习: // 不好的写法 function handleClick(even ...
- 第七章 LED将为我们闪烁:控制发光二极管
第七章 LED将为我们闪烁:控制发光二极管 本章我们将会看到一个完整的linux驱动程序,通过linux驱动程序控制LED的四个小灯,通俗的说就是通过向linux驱动程序来控制LED小灯的开关.用到 ...
- Getting Started With Hazelcast 读书笔记(第七章)
第七章 部署策略 Hazelcast具有适应性,能根据不同的架构和应用进行特定的部署配置,每个应用可以根据具体情况选择最优的配置: 数据与应用紧密结合的模式(重点,of就是这种) 胖客户端模式(最好用 ...
- apue第七章学习总结
apue第七章学习总结 1.main函数 程序是如何执行有关的c程序的? C程序总是从main函数开始执行.main函数的原型是 int main(int argc,char *argv[]); 其中 ...
随机推荐
- Ogre内部渲染流程分析系列
come from:http://blog.csdn.net/weiqubo/article/details/6956005 要理解OGRE引擎,就要理解其中占很重要位置的 Renderable接口, ...
- Uva_11722 Joining with Friend
题目链接 题意: 两个人坐火车, 在某个城市到站的时间段分别为[t1, t2] , [s1, s2],停在站台的时间均为w. 问, 若两人能见面的概率. 思路: 一道基础的几何概型, p = s(m) ...
- SVN ignores
在windows下面用SVN 用命令行不是很方便,dos很烦的,所以一般都会用tourist svn mac下牛人都喜欢直接敲命令行,比如svn co http:// 等等.. 不过为了看得清楚,有必 ...
- python functools模块
functools.partial 作用: functools.partial 通过包装手法,允许我们 "重新定义" 函数签名 用一些默认参数包装一个可调用对象,返回结果是可调用对 ...
- truncate 空间不释放问题
SQL> set linesize 200 SQL> select segment_name, sum(bytes / 1024 / 1024/1024) from dba_segment ...
- Unity 利用Coroutine实现跳动数字效果
纯粹转载:转载注明参考链接! 参考链接:http://xataxnova.blog.163.com/blog/static/236620063201451061738122/,作者:网易博客 xata ...
- C语言实现两栈空间共享
一个同学让我改一段两栈共享的C语言代码,实现进栈.出栈.输出栈里元素的功能. 代码如下: #include <stdio.h> #include <stdlib.h> #def ...
- Live555 Streaming from a live source
https://www.mail-archive.com/live-devel@lists.live555.com/msg05506.html-----ask--------------------- ...
- hdoj 3635 Dragon Balls【并查集求节点转移次数+节点数+某点根节点】
Dragon Balls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- 月見(つきみ) 夕(ゆう) SumiHui.墨虺
造影早迎中秋,自己通过word设计的