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