你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【ST MCU实战经验】FreeRTOS定时器精度研究

[复制链接]
沐紫 发布时间:2016-5-17 17:10
背景介绍
. u, B3 L. Z4 P5 jFreeRTOS 以其移植方便,高度可定制,footprint 小,使其在嵌入式操作系统中的份额不容小觑!尤以免费license,颇受开发者青睐。! X, J. T5 j4 f
问题描述
# Y3 u6 t8 t- X. W1 P6 G客户在基于cortex-m3 的平台上使用FreeRTOS 系统提供的定时器功能时,意外发现定时器的精确度不够高。譬如,设置1 秒钟的定时器,理论上1 秒超时,并且执行相应的回调函数。但是调试却发现,有时回调函数是在1.4 秒后被执行!这对于精度要求较高的实时系统,是不能接受的!) ]2 L/ M; v! S! [+ S
问题复现与分析
& R4 Z" L6 _  Q7 f3 s6 g/ R  {) N首先在stm32f407-discovery 平台移植FreeRTOS,并创建一个定时器,在其回调函数里toggle led 灯,并测量被执行的时间。鉴于FreeRTOS 是一个多任务可抢占式系统,这个问题需要在多种情况下分析。
1 h+ {8 B  e* B( s4 C    Case 1 :- H, R/ k' Y* w" H3 p8 ]
单任务,即系统里仅有timer task 和idle task。整个系统最高优先级为4,Timer task 的优先级为默认优先级2。
1 G, y+ p, _5 }0 T4 i0 b$ H在这种环境下,回调函数能精确的以1 秒的时长超时执行回调函数。虽然此刻精度能满足要求,但是实际的系统一般会包含多个task。以下为测试的日志,显而易见,该定时器严格1 秒钟超时。! k# i5 W% `& [  ~3 K
( f# s; K$ D( s2 m8 z7 v

' Y5 @/ b4 P0 c详细专家解答请下载PDF文档:
' L7 g' B8 f% v- |, l2 g
FreeRTOS定时器精度研究
$ S/ D" _6 \. }( ~; K
5 Y5 |  e7 n! c' D' f更多实战经验请见:https://www.stmcu.org.cn/document/list/index/category-657- A+ e. i/ d- P8 f0 p

% f- X  q7 a1 T' k6 C; H+ [, |. X' y3 S1 |  G
; ~- u' v' O% o2 T  j/ U
赞 收藏 1 评论6 发布时间:2016-5-17 17:10

举报

6个回答
watershade 回答时间:2016-5-17 20:59:03
对,频率最高才1KHZ,看看专家的意见。
高二毛 回答时间:2016-8-26 17:17:28
学习了。
zhangguo 回答时间:2016-8-28 10:05:44
不知道有没有出Free RTOS的系列视频啊。以便大家学习呀。
wdshuang09 回答时间:2016-11-27 09:34:43
学习了               
ToddYam 回答时间:2017-8-9 13:48:42
freeRTOS 视频资料https://pan.baidu.com/s/1qXF2alQ?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0#list/path=%2F
; {1 q- A+ i6 v5 _# N2 n7 g7 ^! C7 e4 v4 Q' g
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版