#if OS_ARG_CHK_EN 0u if oldprio = OS_LOWEST_PRIO if oldprio != OS_PRIO_SELF return OS_ERR_PRIO_INVALID; if newprio = OS_LOWEST_PRIO return OS_ERR_
这段代码是一个操作系统的任务优先级检查函数。如果宏定义 OS_ARG_CHK_EN 大于 0,则会执行以下检查:
- 如果旧的任务优先级大于等于操作系统中最低优先级(OS_LOWEST_PRIO),并且不是自己的任务优先级(OS_PRIO_SELF),则返回优先级无效错误(OS_ERR_PRIO_INVALID)。
- 如果新的任务优先级大于等于操作系统中最低优先级(OS_LOWEST_PRIO),则返回优先级无效错误(OS_ERR_PRIO_INVALID)。
最后,它会进入关键性代码段(OS_ENTER_CRITICAL),即进入操作系统的临界区,以确保在操作系统修改任务优先级时不会发生竞争条件。
原文地址: https://www.cveoy.top/t/topic/bjrR 著作权归作者所有。请勿转载和采集!