裸机开发的常见的三种开发模式
1. 轮询方式:轮流处理当前要处理的任务,即使前一个任务耗时很长,后面的任务也只能等待其处理完毕才能执行,因此使用轮询的方式无法及时的响应重要的任务。
2. 中断方式:假设任务A正在运行,此时有个高优先级的任务B需要处理,则保存当前任务A的状态先去处理完任务B,再回过头来处理任务A。
需要注意的是:
① 中断里的任务应尽快处理完。
② 两个中断优先级相同的任务同时触发时,会按照两个任务在中断向量表中的位 置,谁的中断号靠前,谁就先执行。
③ 定时器中断会发生冲突,要注意两个定时器的值处理。
3. 轮询和中断组合的方式:因为中高端服务函数中不可处理复杂事情的原则,往往会将中断服务函数中的处理提出来放到主程序中执行,一般是在中断中设置标识位,在主函数中轮询标志位处理任务。
引入Rtos的目的:虽然中断和轮询组合的方式已经可以解决大部分都问题,但是在多任务,耗时很长任务的复杂情况下,就不适用这种方式了,使用Rtos可以很大程度上的优化耗时长任务。
引入Rtos面临的难点:任务优先级的正确分配;临界资源如何进行保护;如何优化我们的程序结构。