实验八定时器驱动程序实验.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档