STM32简单多任务调度.docxVIP

  • 78
  • 0
  • 约3.94千字
  • 约 6页
  • 2022-03-18 发布于天津
  • 举报
PAGE PAGE # STM32简单多任务调度 STM32的开发目前大多数还开处于裸奔”的阶段,处于开发成本的考虑,可能还未嵌入任何的RTOS系统,由于没有操作系统的支持,因而不能方便的对多任务进行调度和管理, 在main函数中你可能会写成如下方式: [cpp]viewplaincopy 1. int main(void) 2. { 3. while(1) 4. { 5. Task1(); //调用任务1 6. Task2(); //调用任务2 7. } 8. } 但简单这样写的话会存在一个问题,假如任务1是一个很紧急的任务,如AD采样任 务,需要不断的去执行,而任务2是一个不太紧急的任务,只要保证一段时间执行一次就 行(如控制LED灯闪烁,只需要每1s钟闪烁一次),这样的话一是频繁的调用任务2占 用了任务1执行的时间,二是任务2根本不需要这样频繁的执行,白白耗费了CPU的处理。 因此可以考虑实现一个调度策略来解决这个问题。对于每个任务,我们可以定义这样一个结 构: [cpp]viewplaincopy typedefstruct{ void(*fTask)(void); int64uuNextTick; int32uuLenTick; }sTask; 其中fTask为任务指针,指向具体的任务,uNextTick为该任务下一次执行的时间, uLenTick为任务的调度周

文档评论(0)

1亿VIP精品文档

相关文档