原帖 | Jack | 2024-12-04 10:11 | 👍1 | 阅读约1
一般控制任务启动顺序要怎么做呢?我现在把很多初始化都放在任务函数的循环之前,OS会按优先级从高到低逐个执行循环之前的代码吗?
1.创建任务时,每创建一个任务,这个任务就会立马进入就绪态。
2.启动调度器后,所有你在这之前创建的任务都开始参与调度,因此,这时候如果你是抢占式调度,则高优先级任务先获得执行。
3.任务的启动顺序往往按照他们之间彼此的进行,比如,APP一般都是在对应的BSP驱动程序之后运行。
4.我们写BSP,写APP等程序,很少寄希望于外部能够有符合我们要求的线程启动顺序,而是通过检查函数调用情况(判断对象是否实例化,函数指针是否为空)来确保启动顺序符合依赖顺序,另外,还可以使用互斥锁来加速某些前置依赖线程的启动。
相关笔记