创建任务函数
在我们创建任务中,会有几个比较神奇的参数,例如函数名称,以及栈大小。在我们创建任务时,也相应的要为每一个任务创建栈。这里面的栈除了用于任务数组开辟的空间外,还可以用于保存现场,例如有SP,LP,PC以及R0等寄存器用于保存当前栈顶,返回地址,当前指令。当切换任务时,CPU寄存器的所有数据都会保存到栈中。
任务调度机制
当有多个任务都想运行时,这时候就要依靠各种链表来实现任务的调度。每个任务在被创建时,要使用prvAddNewTaskToReadyList()根据其优先级被分配到不同的就绪列表中。
注意:
在有多个任务创建时,最先执行的任务永远是优先级最高,且最晚被创建的任务。