[发明专利]实时操作系统Tick时钟的实现方法及装置无效
申请号: | 201310071490.X | 申请日: | 2013-03-06 |
公开(公告)号: | CN103176841A | 公开(公告)日: | 2013-06-26 |
发明(设计)人: | 陈柳章 | 申请(专利权)人: | 深圳市文鼎创数据科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 518057 广东省深圳市南山区科丰*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实时 操作系统 tick 时钟 实现 方法 装置 | ||
技术领域
本发明涉及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 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;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市文鼎创数据科技有限公司,未经深圳市文鼎创数据科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310071490.X/2.html,转载请声明来源钻瓜专利网。