Contiki中Ctimer遗留的问题

在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切换机制理解


转载于:https://my.oschina.net/u/859741/blog/279691

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值