首页 理论教育 Contiki操作系统中各类定时器模块及其应用

Contiki操作系统中各类定时器模块及其应用

时间:2023-11-20 理论教育 版权反馈
【摘要】:Contiki 操作系统具有时钟模块和一系列定时器模块,定时器模块包括timer、stimer、ctimer、etimer 和rtimer 等。这些定时器模块用途各异,一些定时器模块提供低粒度、较长时间运行的定时,一些定时器模块提供小范围、高粒度的定时,一些定时器模块,如rtimer定时器可用于中断上下文,而其他定时器模块则不能。ctimer库提供回调定时器,用于在一个时间周期后调度回调函数。与事件定时器类似,它们也被用于等待一段时间,同时系统其余部分可以工作或进入低功耗模式。

Contiki操作系统中各类定时器模块及其应用

Contiki 操作系统具有时钟模块和一系列定时器模块,定时器模块包括timer、stimer、ctimer、etimer 和rtimer 等。这些定时器模块用途各异,一些定时器模块提供低粒度、较长时间运行的定时,一些定时器模块提供小范围、高粒度的定时,一些定时器模块,如rtimer定时器可用于中断上下文,而其他定时器模块则不能。时钟模块提供了处理系统时间和短时间内阻塞CPU 的功能,时钟模块的功能是定时器库实现的基础。

timer 库和stimer 库提供了最简单的定时器形式,并且用于检查某个时间周期是否已过,应用程序需向定时器询问时间周期是否已到期。timer 库和stimer 库在时间分辨率上有所差异:timer 库以系统时钟滴答(clock ticks)为单位,而stimer 库以秒为单位,所以stimer 库允许使用更长的时间周期。与其他定时器不同的是,timer 库和stimer 库可以在中断中安全使用,这使它们在底层驱动程序中特别有用。etimer库提供事件定时器,用于在一个时间周期后将事件安排进Contiki 进程,在Contiki 进程中它们被用于等待一个时间周期,同时系统其他部分可以工作或进入低功耗模式。

ctimer库提供回调定时器,用于在一个时间周期后调度回调函数。与事件定时器类似,它们也被用于等待一段时间,同时系统其余部分可以工作或进入低功耗模式。由于回调定时器在定时器到期时调用回调函数,因此它们在任何没有显式Contiki 进程的代码(如协议实现)中特别有用,回调定时器被用于整个Rime协议栈中以处理通信超时。(www.xing528.com)

rtimer 库提供了实时任务调度功能,rtimer 库可抢占任何正在运行的Contiki 进程的控制权,以便在预定时间执行实时任务。实时任务用在时间要求严格的代码中,如X-MAC 的实现,它需要在预定的时间无延迟地打开或关闭无线电。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈