多任务系统
单任务系统,也称作前后台系统,中断服务函数作为前台程序,大循环 while(1)作为后台程序
前后台系统的实时性差
任务调度器决定 那个任务先执行,后执行。
FreeRTOS 是一个抢占式的实时多任务系统, 任务调度器也是抢占式。
抢占式多任务系统的基本原理 : 高优先级的任务 可打断 低优先级任务 的运行而取得 CPU 的使用权,高优先级的任务执行完成后,重新把 CPU 的使用权归 给 低优先级的任务
任务与协程
任务(Task)的特性
任务切换时将上下文环境保存在堆栈,当任务再次执行时,从堆栈中取出上下文环境, 任务恢复运行。
任务特性 : 简单,没有使用限制,支持抢占,支持优先级,每个任务都有堆栈导致RAM使用量大,使用抢占时需考虑重入问题
协程(Co-routine)的特性
堆栈使用,调度器和优先级,宏实现,使用限制
任务状态
运行态
当前正在使用处理器的任务
就绪态
就绪态的任务还没有运行
堵塞态
挂起态
任务优先级
任务实现
任务控制块
任务堆栈