关于定时器的问题

15 views
Skip to first unread message

loveQ

unread,
Aug 4, 2009, 7:02:14 AM8/4/09
to RTEMS Chinese User Group
看到RTEMS中定时器部分的代码,其中有在中断中执行的定时器服务例程,还有在任务中执行的服务例程,只是该任务的优先级比较高。这个在
任务中执行的看门狗服务例程有什么特别的用处么?都用在些什么地方?

谢谢各位

julyon

unread,
Aug 4, 2009, 9:33:36 AM8/4/09
to RTEMS Chinese User Group
兄弟,能不能说清楚点啊?最好把代码什么贴出来啊,哪个文件都写出来啊。这样人家才好找出你说的重点啊。
强烈建议看看ray的发帖技巧!

冯强

unread,
Aug 4, 2009, 10:31:39 AM8/4/09
to RTEMS Chinese User Group
rtems_timer_fire_after()指定的定时器,其服务例程在ISR中被调用
rtems_timer_initiate_server()函数创建和启动server任务,通过rtems_server_fire_after
()指定的定时器,其服务例程在server任务中被调用。
不明白的地方是在中断中被调用的定时器服务例程和任务中被调用的定时器服务例程有什么区别?
任务中调用的定时器服务例程有什么特别的用途?
具体代码位置在 /cpukit/Rtems/Include/Rtems/Rtems/Timer.h
不知道这样说你明白否

> > 谢谢各位- Hide quoted text -
>
> - Show quoted text -

julyon

unread,
Aug 5, 2009, 3:55:42 AM8/5/09
to RTEMS Chinese User Group
RTEMS为用户提供了两种定时器实现机制,我觉得主要从以下几个方面来考虑的:
1.中断处理的定时器服务例程能很快得到执行,所以相对来说可以处理比较紧要的事情。
2.中断处理中,是不能处理过多的事情的,不然的话,会影响系统的性能,所以要是大一点的事情可以放到任务中去处理。
3.中断处理过程中,有些事情是不能做的,譬如调用某些系统函数,这样的话,就必须把这些事情放到任务中去了。

总之,在ISR还是在任务中,主要是看定时器的服务例程要做什么事情,大还是小,紧要还是不紧要......
以上为个人见解,希望对你有用。

冯强

unread,
Aug 5, 2009, 4:16:08 AM8/5/09
to RTEMS Chinese User Group
谢谢,最近看RTEMS代码看的都陷进去了,一些简单的问题都想不到。
还请问下,细读RTEMS代码,这样在以后的RTEMS的开发中帮助大么?
最近越来越觉得这样没有必要了

> > > - Show quoted text -- Hide quoted text -

excalibur.wu

unread,
Aug 5, 2009, 4:24:39 AM8/5/09
to rtems-chinese-user-group
觉得这个论坛挺好的,一直有人在回复。我最近也想学Rtems,因为这方面的资料感觉不太多,需要自己去看代码吗?
感觉直接看代码挺虚的,希望有过来人能指点一下迷津~
 
 
2009-08-05

excalibur.wu

发件人: 冯强
发送时间: 2009-08-05  16:16:19
收件人: RTEMS Chinese User Group
抄送:
主题: Re: 关于定时器的问题

julyon

unread,
Aug 5, 2009, 5:41:38 AM8/5/09
to RTEMS Chinese User Group
看系统内核代码是学习OS必经的一个过程,最好就是能把理论和具体实现双结合起来。看书能学到的都只是理论的东西,要真正弄懂还是得跟实际实现相结合
的。
至于你说细读RTEMS代码有没有用?那肯定有用啊。我觉得把一个OS的实现弄懂了,以后要是用其他OS的话,你会觉得上手快很多,因为很多东西都是大
同小异的。
基础打好了,其他东西也就不难了。一个东西,知道怎么用和知道怎么用而且知道它的原理,这两个是不同的层次。应用到工程中的时候,不同层次的人想到问题
还是会有区别的。所以,我觉得看代码还是很有用的。除此以外,内核的代码实现,对以后的编程设计,还是有好处的。

"感觉直接看代码挺虚的"??? 我觉得看代码才不虚,看书才虚呢!!

我觉得看代码,可以先宏观来看,首先弄清楚,系统启动到跳到任务中,是怎么一个过程,做了什么事情,然后,一个模块一个模块来看,从内核开始,任务管
理,互斥.....


On 8月5日, 下午4时24分, "excalibur.wu" <excalibur...@gmail.com> wrote:
> 觉得这个论坛挺好的,一直有人在回复。我最近也想学Rtems,因为这方面的资料感觉不太多,需要自己去看代码吗?
> 感觉直接看代码挺虚的,希望有过来人能指点一下迷津~
>
> 2009-08-05
>

> excalibur.wu

excalibur.wu

unread,
Aug 5, 2009, 5:49:15 AM8/5/09
to rtems-chinese-user-group
谢谢指点,坚定了我看代码的信心。其实我之前的表达有点问题,我说觉得看代码很虚是因为自己一直在看,没能够尝试去编去写去调试,所以觉得不踏实。
后面自己还是加强实践才行,非常感谢~~
 
 
2009-08-05

excalibur.wu

发件人: julyon
发送时间: 2009-08-05  17:41:47

xu ray

unread,
Aug 5, 2009, 9:17:47 AM8/5/09
to rtems-chines...@googlegroups.com
2009/8/5 julyon <jul...@126.com>:

> 看系统内核代码是学习OS必经的一个过程,最好就是能把理论和具体实现双结合起来。看书能学到的都只是理论的东西,要真正弄懂还是得跟实际实现相结合
> 的。
> 至于你说细读RTEMS代码有没有用?那肯定有用啊。我觉得把一个OS的实现弄懂了,以后要是用其他OS的话,你会觉得上手快很多,因为很多东西都是大
> 同小异的。
> 基础打好了,其他东西也就不难了。一个东西,知道怎么用和知道怎么用而且知道它的原理,这两个是不同的层次。应用到工程中的时候,不同层次的人想到问题
> 还是会有区别的。所以,我觉得看代码还是很有用的。除此以外,内核的代码实现,对以后的编程设计,还是有好处的。
>
RTEMS的代码,也算是比较稳定的,而且小而全。无论是BSP设计还是内核代码的设计都有很多可以学习和借鉴的地方。

> "感觉直接看代码挺虚的"??? 我觉得看代码才不虚,看书才虚呢!!
>
嗯,这一点我也很有同感。

> 我觉得看代码,可以先宏观来看,首先弄清楚,系统启动到跳到任务中,是怎么一个过程,做了什么事情,然后,一个模块一个模块来看,从内核开始,任务管
> 理,互斥.....
>

此外的建议就是,多跑跑testcase里面的例子,理论和实践结合。这些测试用例其实写的也很不错。

--
Thanks & Best Regards!

Ray, Xu

Reply all
Reply to author
Forward
0 new messages