在Tricore上移植μC/OS-III——5.1 μC/OS实现多核任务调度的基础工作

前三章已经完整介绍了在Tricore系列单片机上运行单核RTOS的方法,本章中我们来研究一下扩展调用多核。关于这个问题能找到的资料不多,文中算法、策略等大部分东西是我自己定的,欢迎大家交流探讨。仍以TC265为例,这款单片机共有两个CPU。

本文先来做一些基础准备工作。

μC/OS-III上,与任务调度算法强相关的几个参数有:

OSPrioCur:当前任务优先级
OSPrioHighRdy:最高就绪任务优先级
OSTCBCurPtr:当前任务TCB指针
OSTCBHighRdyPtr:最高优先级任务TCB指针

要想调用多核,每个核就要分别存储自己的运行状态,也就是当前正在执行的任务和接下来要执行的任务,也就是上面四个参数,所以这四个参数要扩展为数组,数组大小就是核数。例如下图:

/*****************************************************************************************/
OS_EXT            OS_PRIO                   OSPrioCur[CPU_CORE_NUM];    /* Priority of current task           

你可能感兴趣的:(RTOS,Tricore,多核,uCOS,TC2)