了解contiki进程调度之前有必要先了解下它的定时器使用。因为作为轮询方式执行的函数,除了外部中断,其他事件中断可触发一些任务外,只有了解了才能明白系统是如何进行任务调度的。
Contiki有5种定时器:
- clock : 用于处理系统时间,是下面集中timer的基础;而这个是需要platform提供的。
- timer : 以clock的tick为单位进行计时,精度最高;
- stimer: second timers,秒计时器,比timer计时时间长;timer和stimer库函数可以在中断中调用。
- etimer: event timers,事件定时器,定期进行进程的事件调度;被用来上电时等待系统稳定,或进入低功耗模式;
- ctimer: callback timers,回调定时器,定期执行进程回调函数,和etimer一样可被用于等待系统稳定和进入低功耗模式;但是更实用的是用在协议栈之类的非进程函数中。
- rtimer: real-time timers,实时时钟定时器,用于实时任务的调度,rtimer优先级高于其它任何进程,以保证实时任务被及时调用。
本文参考Contiki的Timers