硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1945|回复: 2
收起左侧

[RL-RTX] os_itv_set绝对延时函数的疑问

[复制链接]

27

主题

27

回帖

108

积分

初级会员

积分
108
发表于 2019-2-20 20:19:36 | 显示全部楼层 |阅读模式
eric大神:
  我写的程序中RTX任务中使用os_itv_set设置延时1s,使用os_itv_wait绝对延时函数,  通过keil的线程调试窗口,个别时候会出现在调用os_itv_set的这个函数等待很久(大概30s),相当于这段时间这个任务一直被阻塞了,非常奇怪,换成os_dly_wait就好了,不会出现这个问题,但是os_dly_wait不能实现准确的周期延时,我想问,假设在别的高优先级的RTX任务占用CPU时间过长(调度锁 互斥量等原因 ),超过了os_itv_set设定的延时时间,是不是就会出现这种情况
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106684
QQ
发表于 2019-2-21 00:43:17 | 显示全部楼层
别用调试组件,直接在此任务里面加个IO翻转,示波器看。
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2019-2-21 15:23:24 | 显示全部楼层
这很正常啊,就算os_itv_wait等待结束了,其他任务优先级高还是会出现这种问题的。不过你的问题很奇怪,os_dly_wait就没有问题了,os_itv_set性能再不济他也只是一个dly,它的实现很简单,和os_dly_wait意义基本一样
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 12:33 , Processed in 0.154487 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表