嵌入式学习小组
直播中

李淑英

7年用户 222经验值
私信 关注

如何在ucosiii中执行某一段代码且不会进行任务切换?

ucosiii中怎样实现执行某一段代码,不会进行任务切换?我想在执行两个函数(函数里面有delay()延时)的时候,不会切换到其他任务中去,不然这两个函数执行的就会很慢,请问是使用OS_CRItiCAL_ENTER和OS_CRITICAL_EXIT吗?进入临界区会不会把中断服务程序也关了?

回帖(3)

王俊

2019-9-19 08:59:53
OS_CRITICAL_ENTER是关中断的方式,不会任务切换,也不会进入中断
如果想要进入中断,那么就用os上锁那个函数,函数名自己找。
举报

刘杰

2019-9-19 09:10:41
临界段代码保护有两种方式,一种是关中断,一种是关闭任务调度器
举报

云解相

2019-9-19 09:26:19
使用OS_CRITICAL_ENTER()函数,但是OS_CFG_ISR_POST_DEFERRED_EN定义为1 的时候,还是会关中断吗?我记得手册里写的是为1是调度器上锁,为0才是关中断哒
举报

更多回帖

发帖
×
20
完善资料,
赚取积分