单片机要上操作系统么?

作者: 乱世工人 | 来源:发表于2015-06-08 22:33 被阅读1512次

    单片机,特别是8位的单片机,一般很少要用到操作系统。

    通常加了个操作系统啥事都没干资源就没了一大半,所以在单片机里上操作系统颇有杀鸡用牛刀的意味。

    不过话又说回来,看你怎么定义操作系统了。

    你可以说:

    while(1)  {

    }

    就是一个操作系统。

    入门教程一般提到的流水灯,就是放在这个循环里面跑啊跑。

    你可以加点花样,比如流水灯跑完一个流程后蜂鸣器响一下,于是就把蜂鸣器的代码写在流水灯后面。

    到后来,你学了按钮,又把按钮的代码往后面加。

    所有任务都放在里面,但每次只能做一件事情。

    假如又要处理UART,又要处理SPI,循环本身还有几个逻辑运算呢?还好芯片本身还有中断处理函数。

    平时在主函数里面跑着,当遇到外部请求的时候处理中断函数,然后再回到主函数。

    但假如主函数里的任务A跟任务B之间是相互独立并且要同时运行呢?

    可以通过定时器中断为每个任务分配时间片,这就有了分时操作系统的雏形。

    于是,单片机要不要上操作系统就可以简单的归结为:你的程序有没有复杂到多个任务并行。

    相关文章

      网友评论

      • loser未来的:rtx51其实用熟了,写代码的逻辑要比直接写清晰的多
        乱世工人:@loser未来的 多谢评论,我当年直接从AVR入门,没用过51
      • a12ed5b399ae: @继续海阔天空 作者的意思是,随着程序复杂行上升,尤其是多任务处理需求的出现,演变出了操作系统的雏形。至于单片机是否需要操作系统,要根据需求来确定。其实,操作系统也不过只是个特别点的软件。
      • 乱世工人: @继续海阔天空 其实不是,建议到图书馆找本《操作系统》来看看,误导你不是我的本意
      • 继续海阔天空:我前两天写51c,以前没写过,后来给一个经常写程序的同学看,他告诉我他们写程序都要加while(1),而我的没有,原来这条语句还能当个操作系统用啊。学习了。

      本文标题:单片机要上操作系统么?

      本文链接:https://www.haomeiwen.com/subject/cyqjqttx.html