实时操作系统Tick时钟的实现方法及装置制造方法及图纸

技术编号:8862195 阅读:308 留言:0更新日期:2013-06-28 01:26
本发明专利技术公开一种实时操作系统Tick时钟的实现方法,该方法包括以下步骤:初始化实时时钟,设定所述实时时钟的分频数和产生中断的计数值;根据所述分频数和计数值产生中断,调用实时操作系统的Tick时钟处理程序,设置所述实时操作系统的Tick时钟节拍,实现所述实时操作系统的任务调度;本发明专利技术还公开一种系统时钟的实现装置。本发明专利技术通过复用实时时钟,并通过引进实时时钟的唤醒中断作为实时操作系统Tick的方法,具有能够获取稳定且功耗低的RTOS?Tick时钟的有益效果,降低了耗电量且实现方式便捷,因摆脱了对systick?timer和通用定时器的依赖,可移植性也更强。

【技术实现步骤摘要】

本专利技术涉及RTOS (Real-Time Operating System,实时操作系统)
,尤其涉及一种实时操作系统Tick时钟的实现方法及装置
技术介绍
目前RTOS的系统ticks大都以系统时钟为时钟源,采用芯片自带的系统ticks定时器(systick timer)或者通用定时器实现,在具备多功能的产品的不同工作模式下,其系统时钟也不相同,因此导致每秒钟产生的ticks数不一致,这可能造成RTOS定时器定时的混乱或者定时产生严重误差,从而使RTOS时钟不稳定、不准确;若采用外围设备,则增加了产品的耗电量;且在某些芯片没有提供系统ticks定时器或者通用定时器不够用的情况下,进行RTOS移植也存在问题。
技术实现思路
本专利技术的主要目的是提供一种实时操作系统Tick时钟的实现方法及装置,旨在达到产生稳定且功耗低的RTOS Tick时钟。本专利技术实施例公开了一种实时操作系统Tick时钟的实现方法,包括以下步骤:初始化实时时钟,设定所述实时时钟的分频数和产生中断的计数值;根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,设置所述实时操作系统的Tick时钟节拍,实现所述实时操作系统的任务调度。优选地,所述根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,设置所述实时操作系统的Tick时钟节拍包括:根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,获取所述实时时钟产生中断频率Ticks Frequency为:Ticks Frequency = (RTC clk/div) / counter (Hz);其中,RTC clk 为所述实时时钟频率,div为所述实时时钟的分频数,counter为所述实时时钟产生中断的计数值;根据所述实时时钟产生中断频率Ticks Frequency,获取所述实时时钟产生中断周期 Ticks cycle 为:Ticks cycle = 1/Ticks Frequency ;根据所述实时时钟产生中断频率Ticks Frequency和产生中断周期Ticks cycle,获取所述实时操作系统每秒钟的ticks数Ticks Num为:Ticks Num = 1/Ticks cycle = Ticks Frequency = (RTC clk/div) / counter ;根据所述实时操作系统每秒钟的ticks数Ticks Num,即可获取所述实时操作系统的系统Tick时钟节拍。优选地,还包括:在所述实时操作系统进入休眠模式时,停止所述实时时钟作为实时操作系统Tick时钟源的应用;在所述实时操作系统退出休眠模式时,使能所述实时时钟作为实时操作系统Tick时钟源的应用。本专利技术实施例还公开了一种实时操作系统Tick时钟的实现装置,包括:参数设置模块,用于初始化实时时钟,设定所述实时时钟的分频数和产生中断的计数值;时钟获取模块,用于根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,设置所述实时操作系统的系统Tick时钟节拍。优选地,所述时钟获取模块还用于:根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,获取所述实时时钟产生中断频率Ticks Frequency为:Ticks Frequency = (RTC clk/div) / counter (Hz);其中,RTC elk 为所述实时时钟频率,div为所述实时时钟的分频数,counter为所述实时时钟产生中断的计数值;根据所述实时时钟产生中断频率Ticks Frequency,获取所述实时时钟产生中断周期 Ticks cycle 为:Ticks cycle = 1/Ticks Frequency ;根据所述实时时钟产生中断频率Ticks Frequency和产生中断周期Ticks cycle,获取所述实时操作系统每秒钟的ticks数Ticks Num为:Ticks Num = 1/Ticks cycle = Ticks Frequency = (RTC clk/div) / counter ;根据所述实时操作系统每秒钟的ticks数Ticks Num,即可获取所述实时操作系统的系统Tick时钟节拍。优选地,所述时钟获取模块还用于:在所述实时操作系统进入休眠模式时,停止所述实时时钟作为实时操作系统Tick时钟源的应用;在所述实时操作系统退出休眠模式时,使能所述实时时钟作为实时操作系统Tick时钟源的应用。本专利技术通过初始化实时时钟,设定所述实时时钟的分频数和产生中断的计数值;根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,设置所述实时操作系统的系统Tick时钟节拍的方法,实现了实时操作系统任务调度,具有能够获取稳定且功耗低的RTOS Tick时钟的有益效果,降低了耗电量且实现方式便捷,因摆脱了对systick timer和通用定时器的依赖,可移植性也更强。附图说明图1是本专利技术系统时钟的实现方法一实施例流程示意图;图2是本专利技术系统时钟的实现装置一实施例功能模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施例方式以下结合说明书附图及具体实施例进一步说明本专利技术的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。目前,采用RTC (Real-Time Clock,实时时钟)作为时间时钟源的具备多功能的电子产品,工作在不同功能模式时采用的系统时钟速率不同,在不同功能模式之间切换时,系统时钟就处在频繁的变频中,需要得到一个稳定的ticks,本专利技术实时操作系统时钟的实现方法及装置通过引进RTC的wakeup (唤醒)中断作为RTOS的ticks,即可达到较好的ticks稳定的目的。参照图1,图1是本专利技术实时操作系统时钟的实现方法一实施例流程示意图;如图1所示,本专利技术实时操作系统时钟的实现方法包括以下步骤:步骤S01、初始化实时时钟,设定所述实时时钟的分频数和产生中断的计数值;本方案复用RTC,既采用RTC作为时间的时钟源,同时又采用RTC作为RTOS的Tick时钟源,因此在初始化RTC时,直接将RTC作为时间的时钟源,设定RTC的中断模式为wakeup中断,并设定RTC的分频数和产生wakeup中断的计数值。进一步地,设定在RTOS进入休眠模式时,停止RTC作为RTOS的Tick时钟源的应用;在RTOS退出休眠模式时,使能RTC作为RTOS的Tick时钟源的应用。步骤S02、根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,设置所述实时操作系统的系统Tick时钟节拍。根据初始化时设定的RTC的分频数和计数值产生中断,调用RTOS的系统Tick时钟处理程序,设置所述RTC经所述分频和计数处理后的时钟作为RTOS的ticks。比如,具体地,可以在RTC的中断函数里,调用RTOS的系统Tick时钟处理程序SysTickHandler,设置所述实时操作系统的Tick时钟节拍,实现所述实时操作系统的任务调度。根据初始化时设定的时钟源的分频数和计数值产生中断,调用RTOS的系统Tick时钟处理程序,获本文档来自技高网...

【技术保护点】
一种实时操作系统Tick时钟的实现方法,其特征在于,包括以下步骤:初始化实时时钟,设定所述实时时钟的分频数和产生中断的计数值;根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,设置所述实时操作系统的Tick时钟节拍,实现所述实时操作系统的任务调度。

【技术特征摘要】
1.一种实时操作系统Tick时钟的实现方法,其特征在于,包括以下步骤: 初始化实时时钟,设定所述实时时钟的分频数和产生中断的计数值; 根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,设置所述实时操作系统的Tick时钟节拍,实现所述实时操作系统的任务调度。2.如权利要求1所述的方法,其特征在于,所述根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,设置所述实时操作系统的Tick时钟节拍包括: 根据所述分频数和计数值产生中断,调用实时操作系统的系统Tick时钟处理程序,获取所述实时时钟产生中断频率Ticks Frequency为: Ticks Frequency = (RTC clk/div) / counter (Hz);其中,RTC elk 为所述实时时钟频率,div为所述实时时钟的分频数,counter为所述实时时钟产生中断的计数值; 根据所述实时时钟产生中断频率Ticks Frequency,获取所述实时时钟产生中断周期Ticks cycle 为:Ticks cycle = 1/Ticks Fr equency ; 根据所述实时时钟产生中断频率Ticks Frequency和产生中断周期Ticks cycle,获取所述实时操作系统每秒钟的ticks数Ticks Num为:Ticks Num = 1/Ticks cycle = Ticks Frequency = (RTC clk/div) / counter ; 根据所述实时操作系统每秒钟的ticks数Ticks Num,即可获取所述实时操作系统的系统Tick时钟节拍。3.如权利要求1所述的方法,其特征在于,还包括: 在所述实时操作系统进入休眠模式时,停止所述实时时钟作为实时操作系统Tick时钟源的应用; 在所述实时操作系统退出休眠模式时,使能所...

【专利技术属性】
技术研发人员:陈柳章
申请(专利权)人:深圳市文鼎创数据科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1