embedded - freeRTOS:关于 API“vTaskPrioritySet”行为的问题
问题描述
在 API 中vTaskPrioritySet
:
#if ( configUSE_MUTEXES == 1 )
{
/* Only change the priority being used if the task is not
currently using an inherited priority. */
if( pxTCB->uxBasePriority == pxTCB->uxPriority )
{
pxTCB->uxPriority = uxNewPriority;
}
else
{
mtCOVERAGE_TEST_MARKER();
}
/* The base priority gets set whatever. */
pxTCB->uxBasePriority = uxNewPriority;
}
#else
......
我注意到一旦priority inheritance
发生,将不会设置 uxPriority。我的问题是:如果设置的优先级vTaskPrioritySet
高于继承的优先级,为什么不使用更高的优先级?
像这样:
if( pxTCB->uxBasePriority == pxTCB->uxPriority || uxNewPriority > pxTCB->uxPriority )
{
pxTCB->uxPriority = uxNewPriority;
}
否则,设置的优先级vTaskPrioritySet
在发生之前不会生效disinheritance
。
解决方案
推荐阅读
- javascript - 无法使用自定义令牌访问 firebase 数据库
- r - R闪亮和rscript.exe
- android - 有没有办法强制 Android 为特定的屏幕尺寸选择特定的布局?
- javascript - 数据表不加载嵌套对象 Ajax
- c# - 从存储过程调用之前缺少选择
- seal - 在同态加密中使用伽罗瓦自同构
- android - Firebase 存储查询是否存在图像文件
- powershell - Get-SPWeb 无法找到具有 ID 或 URL 的对象
- swift - 除非滚动,否则 UICollectionViewCells 不会加载
- mongodb - $max 如何作用于对象数组?