【发布时间】:2019-11-16 19:17:55
【问题描述】:
我正在使用 Ravenscar 配置文件来构建一个使用任务的应用程序。
作为一个简单的例子,我有一个任务有一个障碍,它只在障碍为真时执行。
但是,我注意到,如果主控制线程正在执行,然后屏障设置为 true(从而释放),则任务会阻止主线程的执行,直到屏障再次关闭。
我正在开发 NRF52840 芯片。我应该注意,每当我将应用程序(没有修改)定位到 Native 时,这个问题都不会发生,并且任务不会阻止执行。
为了在嵌入式设备上启用 ravenscar(完整)RTS 的并行执行,我需要做些什么吗?
一些附加颜色:如果我在任务循环中添加延迟,它确实允许主控制线程运行。
这可能是优先级上限协议的问题吗?板上的处理器只有一个核心,所以我想知道这是否可能是问题所在——也就是说,除非它正在睡眠,否则该任务不允许主要任务抢占。
【问题讨论】: