ucosii的os_task.c源码分析(一):OSTaskChangePrio()

本文详述了UCOSII操作系统中用于改变任务优先级的函数OSTaskChangePrio()的工作原理,分析了源码中的关键步骤,包括参数合法性检查、任务控制块的修改以及在就绪表和事件表中的更新操作,揭示了UCOSII任务调度的内部机制。
摘要由CSDN通过智能技术生成

      ucosii的os_task.c文件包含了一系列管理任务的函数,这篇文章主要是对改变任务优先级函数OSTaskChangePrio()做一个简单的分析,源码来自于2.92版本。

      函数的原型为

       INT8U在os_cpu.h头文件中有定义:

       函数有两个参数:oldprio和newprio。返回值为错误码,有五个,分别是OS_ERR_NONE,OS_ERR_PRIO_INVALID,OS_ERR_PRIO_EXIST,OS_ERR_PRIO,OS_ERR_TASK_NOT_EXIST。

       两个条件宏,定义了事件指针*pevent和事件组指针**pevents,注意这里是一个指向pevents指针地址的指针,即双重指针,OS_EVENT_EN和OS_EVENT_MULTI_EN在ucos_ii.h中定义。

       这段代码定义了一连串与优先级改变有关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值