老师,我这里有个问题:如果5号任务只运行了0.5个tick就执行到delay()了,是继续等待tick中断才阻塞吗,还是立马就阻塞了哈;高优先级的任务是不是不能执行太久哈,执行太久会影响低优先级任务执行的话该怎么办哈?
记住“实时操作系统”的“实时”,1个tick对于计算机来说也是很漫长的。所以:它执行了0.5个tick就调用vTaskDelay(),会立马阻塞。高优先级的任务不要执行太久,否则低优先级的任务无法执行。机制就是这样:高优先级的任务,用于先于低优先级的任务执行。在这个机制下编程时就要考虑:高优先级的任务采用事件来驱动,比如发生了某个中断会唤醒高优先级任务执行一会;或者高优先级任务主动调用vTaskDelay()放弃运行。