定时器驱动程序实验.docVIP

  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文档。上传文档
查看更多
定时器驱动程序实验

实验 定时器实验 一、实验目的 1、学习Linux下定时器的编写方法; 2、学习定时器应用程序的编写方法; 3、进一步学习Linux模块的编译方法; 4、学习Linux模块的载、调用、卸载方法。 二、实验内容 1、编写定时器定时器应用程序; 2、对程序交叉编译成内核模块交叉编译成; 3、通过网络将内核模块下载到实验箱上; 4、在实验箱上对进行载卸载实验。 三、实验操作方法 1、编写程序和程序 定时器程序程序内容如所列。 2、编译程序和程序 (1)复制一些头文件 将/usr/include/linux”下的文件version.h,复制到“/usr/local/arm/2.95.3/arm-linux/include/linux”下面。修改文件version.h,将“2.4.20” 修改为 #define UTS_RELEASE “2.4. 18-rmk7-pxa1” 使编译环境操作系统的版本号实验箱上操作系统的版本号”2.4.18-rmk7-pxa1”中的“1”,为数字1,而不是字母L的小写。(2)编译编译命令如下: arm-linux-gcc –DKERNEL__ -D MODULE –I/usr/local/arm/2.95.3/arm-linux/include –O2 -Wall –O –c timer.c –o timer.ko 正确编译后会产生在ARM上运行的内核模块“time.ko”。 (3)编译定时器程序 编译命令如下: arm-linux-gcc –I/usr/local/arm/2.95.3/arm-linux/include timetest.c –o timertest 正确编译后会产生在ARM上运行的程序“timetest”。 3、通过超级终端下载程序 (1)复制下载文件到“windows-Linux共享目录”下 windows操作系统与Linux操作系统的共享目录为: Windows下:e:\VMware\share Linux下:/mnt/hgfs/share 在PC机端的Linux操作系统下执行: cp timer.ko /mnt/hgfs/share ↙ # cp timertest /mnt/hgfs/share ↙ (2)下载文件 通过超级终端对目标板进行操作,下载文件。首先转到下载欲保存文件的目录“/tmp”。在超级终端执行如下命令: cd /tmp ↙ 然后利用超级终端下载文件。在超级终端进行操作: 点击“传送”主菜单、“发送文件”,在弹出的“发送文件”对话框选择“e:\VMware\share”下的“time.ko”、“timertest”文件,点击“发送”,即可就文件传送到目标板的“/tmp”目录下。 4、挂载(1)挂载内核模块 在目标板上执行如下操作: # cd /tmp ↙ # insmod timer.ko ↙ 正确后会显示出: # timer module ! (2)在目标板上的/tmp目录下执行如下操作: # /dev/timer c 231 0↙ 5、()测试程序在目标板上的/tmp目录下timertest”的权限,执行如下操作: # timertest ↙ ()运行测试程序 按下实验箱上直流电机的电源按钮,在目标板上的/tmp目录下执行如下操作: # ./timertest n ↙ n可以取值:0数字0使电机停止转动数字1是控制直流电机运转,数字1使电机,数字使电机速转,数字使电机。 反复操作,观察情况。 6、卸载执行如下操作: # rmmod time.ko ↙ 正确卸载后会显示出: # timer module exit! 四、实验参考程序 1、定时器程序timer.c #include linux/kernel.h //在 /usr/local/arm/2.95.3/arm-linux/include 目录下 #include linux/init.h #include linux/module.h #include linux/.h #include linux/dev_fs_kernel.h #include linux/miscdevice.h #include asm/arch-s3c2410/hardware.h #include asm/arch-s3c2410/S3C2410.h #define DEVICE_NAME timer //设备名 #define TIMER_MAJOR 231 //主设备号 //()系统入口函数 static int timer_init(void) { int ret; /*注册设备*/ ret = register_chrdev(T

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档