RL-RTX os_dly_wait()延时不准的问题

        最近在LPC1788上使用RL-RTX遇到一例os_dly_wait()延时不准的问题,延时的时间比预想的差了十倍。

        systick设置了每tick为10ms,调用os_dly_wait(2)后发现task执行时候没有按预想的20ms延时,而是2ms。怀疑时钟问题,但也不可能差那么多,测试了timer0,timer1都是正常的。

        研究了好久最后发现是RTX的配置文件(RTX_Conf_CM.c)造成的,以前把这个文件放到了工程下而不是引用Keil MDK安装目录(C:\Keil\ARM\RL\RTX\Config)下的,后来MDK从v4.2一路升级到了v4.7了,这个文件没跟着更新。旧版的配置文件相对新版少了Hardware timer的选项导致出错

      

     选择Hardware timer,频率同CCLK(120MHz),每tick 10ms



RL-RTX os_dly_wait()延时不准的问题_第1张图片



    总结:针对类似问题,先确保RTX配置文件版本正确,然后选择RTX使用的Timer,根据时钟配置设置好相应的频率。如果还是有误差则要检查Clock相关配置(PLL0/1,分频系数等)。如果还是不行,则要从硬件(晶振)方面查了。

你可能感兴趣的:(rtx,不准,os_dly_wait)