- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 1
实验 8 Linux 下定时器驱动程序实验
一、实验目的
1、学习 Linux 下定时器驱动程序的编写方法;
2、学习定时器应用程序的编写方法;
3、学习 Linux 模块的装载、调用、卸载方法。
二、实验内容
1、编写 Linux 下定时器 T0 的驱动程序,使 T0 的输出控制直流电机运转,改变 T0 的初值、比较值,就改变了电机的转速;
2、编写定时器 T0 控制电机转速的测试程序,从命令行输入数值,控制电机转速。
3、对驱动程序和测试程序分别进行交叉编译,使其生成内核模块和可执行文件;
4、通过串行口将内核模块和测试程序下载到实验箱上;
5、在实验箱上对内核模块进行装载、测试和卸载实验。
三、实验操作方法
1、编写定时器内核模块程序和测试程序
其程序名分别为 timer.c 和 timertest.c ,具体源程序内容如最后所列。
2、编译内核模块和测试程序
复制一些头文件
将“/usr/include/linux ”下的文件 version.h ,复制到“/usr/local/arm/2.95.3/arm-linux/include/linux ” 下面。修改文件 version.h 的内容,将操作系统的版本号改为实验箱上操作系统的版本号,如改为: 2.4.18-rmk7-pxa1 。
编译内核模块编译命令如下:
arm-linux-gcc –D KERNEL -D MODULE –I/usr/local/arm/2.95.3/arm-linux/include –c timer.c –o timer-arm.o ↙
正确编译后会产生在 ARM 上运行的内核模块“ timer-arm.o ”。
编译定时器测试程序编译命令如下:
arm-linux-gcc –I/usr/local/arm/2.95.3/arm-linux/include timetest-arm.c –o timertest-arm ↙ 正确编译后会产生在 ARM 上运行的程序“ timertest-arm ”。
3、下载内核模块到实验箱
复制下载文件到“ windows-Linux 共享目录”下
windows 操作系统与 Linux 操作系统的共享目录为: Windows 下:e:\VMware\share
Linux 下:/mnt/hgfs/share
在 PC 机端的 Linux 操作系统下执行:
# cp timer-arm.o /mnt/hgfs/share ↙
# cp timertest-arm /mnt/hgfs/share ↙
下载文件
通过超级终端对目标板进行操作,下载文件。首先转到下载欲保存文件的目录“ /tmp ”。在超级
终端执行如下命令:
# cd /tmp ↙
然后利用超级终端下载文件。在超级终端进行操作: 点击“传送”主菜单、“发送文件”,在弹出的“发送文件”对话框,点击“浏览”按钮,选择“……\VMware\shar ”下的驱动程序“timer-arm.o ” 文件,对“协议”选择“ Zmodem”或“Zmodem 与崩溃恢复”,然后点击“发送”,即可将文件传送到目标板的“/tmp ”目录下。
用同样的方法,将测试程序“ imertest-arm ”文件,发送到目标板的“ /tmp”目录下。
4、安装、测试、卸载驱动程序
安装驱动程序
在超级终端下进入“ tmp”目录下安装驱动程序,对目标板执行如下操作: # cd /tmp ↙
# insmod timer-arm.o ↙
如果测试程序出现不可运行,修改文件属性,使其能够执行:
# chmod a+x timertest-arm ↙
运行测试程序
在目标板上的/tmp 目录下执行如下操作:
# ./timertest-arm n ↙
n 可以取值:0、1、2、3、4、5,15 是控制直流电机运转,数字 1 使电机转速最低,数字 5
使电机转速最高,数字 0 使电机停止转动。反复操作,观察实验情况。
(3)卸载内核模块执行如下操作:
# rmmod timer-arm.o ↙ 正确卸载后会显示出:
# timer module exit!
四、实验参考程序
1、定时器驱动源程序 timer.c
#include linux/kernel.h #include linux/init.h #include linux/module.h #include linux/miscdevice.h
//在 /usr/local/arm/2.95.3/arm-linux/include 目录下
#define rTCFG0 #define rTCFG1 #define rTCON
(*(volatile unsigned *)0x5100
您可能关注的文档
最近下载
- 中级财政税收-中级经济师《财政税收实务》押题密卷2.docx VIP
- 统编版六年级道德与法治上册第5课《国家机构有哪些》课件.pptx VIP
- 高中政治选择性必修一全册知识点填空练习(分单元课时编排,附参考答案)(2023秋最新版).pdf VIP
- (整理版)哈三中高一上学期期中考试(数学).pdf VIP
- 《SPSS培训教程》课件.ppt VIP
- 气球广告公司合伙协议书.docx VIP
- 2025届高考语文专题复习:文言文复习之实词推断.pptx VIP
- 职业生涯人物访谈报告(采访教师)汇编.pdf VIP
- QmlBook中文手册[有书签].pdf VIP
- PMC生管物控基础知识培训.pptx VIP
原创力文档


文档评论(0)