⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 在ARM+Linux环境下
💻 TXT
字号:
***********************驱动设计&使用说明******************************
作者: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:   测试程序源文件


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -