-
在嵌入式方面,很多人都知道裸机开发(也就是普通的单片机开发),也知道实时操作系统,但是大家都搞不懂他们到底有什么区别,使用实时操作系统到底有什么样的优势?
在日常的单片机开发中我们一般使用轮询系统或者前后台系统,轮询系统可以理解为一个while(1)那种死循环,一直循环执行很多的任务
例如while(1)
{
//点亮LED
//判断按键是否按下
//摄像头接收数据
//接收温湿度数据
//等等等
}
- 但是我们在执行点亮LED的时候,如果此时按下按键,那么就检测不到按键按下。所以这样是不好的。
前后台系统是什么呢,就是把按键作为中断来处理,然后while循环的就后台系统,作为中断的按键叫前台系统,如果执行到LED,但是按键按下了,就会触发中断,这样相比于轮询系统是好的,而且单片机几乎都是使用前后台系统。
那么为什么要引入前后台系统呢,因为执行的任务也是有重要性的高低的,像工业控制工厂,有些工厂对温度要求很高(防止出现意外情况),那么点灯就是次要的,所以我们采用操作系统,就好比给他们这些任务贴上标签一样,序号低的越重要,也就是优先级高,当低优先级的在运行的时候,忽然出现高优先级的,就会把CPU使用权给高优先级,所以会先处理优先级高的事情,而且也会响应中断,中断可以理解为优先级最高的。