h9200_int
所属分类:处理器开发
开发工具:MultiPlatform
文件大小:10KB
下载次数:107
上传日期:2006-03-28 17:28:25
上 传 者:
ykyk
说明: Atmel公司的at91rm9200芯片的中断驱动例程。
(Atmel's chips at91rm9200 Interrupt-driven routines.)
文件列表:
leddrv_irq\leddrv.c (4252, 2006-01-05)
leddrv_irq\leddrv.o (3244, 2006-01-05)
leddrv_irq\Makefile (221, 2005-12-30)
leddrv_irq\test (13986, 2006-01-05)
leddrv_irq\test.c (556, 2006-01-05)
leddrv_irq (0, 2006-01-04)
***********************驱动设计&使用说明******************************
作者:flyerwing
硬件平台:h9200开发板(基于AT91RM9200)
操作系统:linux-2.4.27-vrs1-ATMEL
描述:定时点亮h9200开发板pc14&pc15的led
主要硬件模块:
1。定时器:采用9200 tc1,中断工作方式
2。led:工作在gpio模式的pc14&pc15
**********************************************************************
***驱动设计说明***
1。实现字符设备驱动
2。模块动态加载
3。实现的主要系统调用:
3.1 open
A:初始化tc1,tc1_init()
B:pc14&pc15的gpio模式配置
C:向内核申请中断
request_irq(AT91C_ID_TC1,tc1_irq_handler,SA_INTERRUPT,"tc1",NULL)
参数1:中断号(体系结构相关):定义在include/asm/arch/AT91RM9200.H,9200可以管理32个中断
参数2:中断向量入口函数指针
参数3:标志,SA_INTERRUPT表示独享中断
参数4:中断设备名,出现在/proc/interrupt中
3.2 close
A:关闭tc1中断
disable_irq(AT91C_ID_TC1);
B:释放中断
free_irq(AT91C_ID_TC1,NULL);
3.3 ioctl
A:实现点亮和熄灭led
B:打开和关闭tc中断
3.4模块的注册和注销
采用devfs文件系统注册方法,静态分配设备号,无需手动创建设备文件。注意
使用中需要内核在fs中支持devfs文件系统
3.5中断服务函数说明
中断中点亮led,并打印消息表示中断发生的次数。
***驱动使用说明***
step1: 启动目标板,进入系统shell
setp2:通过nfs方式或其它方式拷贝leddrv.o到/lib/modules/
step3:输入insmod leddrv.o
step4:运行测试程序 ./test 100000
效果:可以看到pc14&pc15的led在调试串口打印消息的同步下闪烁,ctrl+C退出
***特别说明***
test 的输入参数为定时器的定时值,该值没有经过换算,完全是为了演示中断的
使用和定时器的配置,因此输入值不代表实际的定时时间。
***文件说明***
leddrv.c:驱动源文件
leddrv.o:驱动模块
Makefile: 编译文件
test: 测试程序可执行文件
test.c: 测试程序源文件
近期下载者:
相关文件:
收藏者: