原创 Contiki中Ctimer遗留的问题

2013-2-20 20:25 1486 11 12 分类: 消费电子

 

在Contiki中,
Ctimer
中使用的是etimer,
而etimer涉及到System_trick
其中,
这里的时钟,也是有
system_trick终端产生的。
 
到最后,
可能是对于M3的寄存器不熟悉,
没有找到,
具体设置时间的地方。
 
有几个问题
1、ctimer判断expire的方式,没有找到,
2、在ctimer中的几个函数指针,找不到源头,这个要留心。看看。
3、对于当前process的使用方式,没有理清楚。
 
关于问题1:
ctimer_expire()       //core/sys/ctimer.c
--etimer_expire()    //core/sys/etimer.c
----timer_expire()   //core/sys/timer.c

update_time(void)(//core/sys/etimer.c)函数寻找下一个将要expire的时间。

ctimer.c-->etimer.c-->timer.c-->clock.c

依次组成了Contiki中的时钟及时间函数的使用。

在etimer.c中的PT调用timer_expire()判断时间是否expire。

如果expire,则通过事件告知ctimer.c中的PT此etimer已经expire,

则ctimer.c中的PT找到包含相应的etimer的ctimer然后执行设置的回调函数。

 

关于问题3:

是以前没有弄清楚PT在Contiki中的机制,

现在明白了很多。

这里是在ctimer在使用前需要先初始化。这里的初始化,就在Contiki里添加了ctimer的PT。

etimer的PT是在系统启动时就已经添加的。

PT的调用机制参见《Protothread机制文档(contiki-2.6\doc\pt-doc.txt)》,

《Contiki:Protothread切换机制理解》

文章评论1条评论)

登录后参与讨论

用户1602177 2013-5-23 17:02

多谢分享

用户1568012 2013-1-12 21:34

TDK、MURATA一级代理,供应原装正品电容、电感
相关推荐阅读
catch2000 2015-07-19 11:44
信号线小电阻的作用
在一块新的PCB上,测试系统能否正常运行的时候,发现系统上电后没有正常启动。  系统框图如下:   在上电的时刻,CPU A(GPIO电平2.6V)会向串口发送启动日志数据,CPU A启动后,...
catch2000 2015-07-05 17:04
协议设计中ACK机制的影响
在TCP/IP中,延时ACK和Nagle算法。  TCP为了同时处理成块数据(通常为512字节的用户数据)和交互数据(通常用户数据比较少,例如不大于10个字节),采用了延时ACK和Nagle算法...
catch2000 2015-05-23 15:48
话说物联网操作系统
最近好多家都宣布推出自己的物联网操作系统。   1. Google将要在Google I/O大会发布的Brillo; 2. 三星推出的Artik芯片搭载Mentor Graphics的...
catch2000 2015-03-31 23:52
不要采用异或来交换两个变量
在进行两个变量的时候,经常会看到有些书误人子弟的推荐使用异或的方式: 方式一 {   x = x ^ y;   y = x ^ y;   x = x ^ y; } 而不是...
catch2000 2014-10-09 07:28
为什么要测试先行
在产品的研发过程中,测试一项至关重要。不论是软件还是硬件。   软件的测试先行,在研发过程中,就做到质量的保证,因为在出现Bug的时候,容易定位Bug,而且即使是在客户端出现Bug,也能够...
catch2000 2014-10-09 07:26
C语言的面向对象编程(一)
一、前言 对于编程而言,重要的是解决问题的方式,而不是语言本身。面向对象与面向过程是解决问题和思考问题的方式。C语言常说是面向过程开发的语言,因为其缺少很多对于面向对象特性的支持。但,这并不影...
我要评论
1
11
关闭 站长推荐上一条 /2 下一条