免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1539 | 回复: 6
打印 上一主题 下一主题

关于加载驱动的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-25 17:25 |只看该作者 |倒序浏览
首先向论坛里的大虾们致敬:
  本人初步接触LINUX,有许多问题不是很清楚。最近编写一个S3C2440的简单的字符驱动程序,就是利用S3C2440的定时器1产生时钟中断,闪烁一个LED灯。生成相应的驱动内核后,用insmod这个命令驱动模块加载到内核。lsmod之后,可以看到这个驱动模块已经加载到内核,我想知道的是这个定时器1驱动模块加载到内核之后,是否定时器1已经开始工作?还是必须写一个应用程序调用这个驱动之后,定时器1才开始工作?

论坛徽章:
5
2 [报告]
发表于 2009-05-25 17:29 |只看该作者
看你的驱动怎么实现.

如果初始化过程中, 就打开timer, 那只要insmod, 就开跑了.
你也可以创建应用程序的访问节点, 通过应用层来控制什么时候启动timer.

论坛徽章:
8
2015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2015-02-04 12:00:07羊年新春福章
日期:2015-02-04 11:57:56双子座
日期:2014-12-02 11:44:59金牛座
日期:2014-10-08 16:47:08狮子座
日期:2014-08-29 13:37:46巳蛇
日期:2014-08-26 17:32:29NBA常规赛纪念章
日期:2015-05-04 22:32:03
3 [报告]
发表于 2009-05-26 11:33 |只看该作者

回复 #1 eagle_hs79 的帖子

你可以在驱动中直接进行循环操作,也可以留出接口,通过应用程序来操作

论坛徽章:
5
4 [报告]
发表于 2009-05-26 11:37 |只看该作者

回复 #3 zhj1011 的帖子

较好的办法, 是不要用循环操作. 在timer ISR中来处理LED, 并再次设置timer.

论坛徽章:
0
5 [报告]
发表于 2009-05-26 11:37 |只看该作者

回复 #2 yidou 的帖子

谢了。。。

论坛徽章:
0
6 [报告]
发表于 2009-05-26 17:01 |只看该作者
简单说,就是如果你是在init或者probe函数里面就执行timer1了,那么insmod 的之后就开始了。
如果是在open函数里面执行的,那么就是你在上层用 应用程序访问的时候,才开始执行timer1。

预留接口的方法,可以实现驱动的ioctl函数,然后写应用程序去操作对应的东西。

论坛徽章:
0
7 [报告]
发表于 2009-07-03 16:49 |只看该作者

回复 #6 crifan 的帖子

差不多就是这样了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP