单片机,特别是8位的单片机,一般很少要用到操作系统。
通常加了个操作系统啥事都没干资源就没了一大半,所以在单片机里上操作系统颇有杀鸡用牛刀的意味。
不过话又说回来,看你怎么定义操作系统了。
你可以说:
while(1) {
}
就是一个操作系统。
入门教程一般提到的流水灯,就是放在这个循环里面跑啊跑。
你可以加点花样,比如流水灯跑完一个流程后蜂鸣器响一下,于是就把蜂鸣器的代码写在流水灯后面。
到后来,你学了按钮,又把按钮的代码往后面加。
所有任务都放在里面,但每次只能做一件事情。
假如又要处理UART,又要处理SPI,循环本身还有几个逻辑运算呢?还好芯片本身还有中断处理函数。
平时在主函数里面跑着,当遇到外部请求的时候处理中断函数,然后再回到主函数。
但假如主函数里的任务A跟任务B之间是相互独立并且要同时运行呢?
可以通过定时器中断为每个任务分配时间片,这就有了分时操作系统的雏形。
于是,单片机要不要上操作系统就可以简单的归结为:你的程序有没有复杂到多个任务并行。