首页 技术 正文
技术 2022年11月17日
0 收藏 933 点赞 3,767 浏览 627 个字

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命令的参数,可以正常发声。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,104
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,580
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,428
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,835
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,918