嵌入式操作系统那么方便好用!为啥还要用单片机?
从事第一份牛马工程师的时候,平时主要做单片机开发,业余没事,我也拿了一本ucos-ii的书在那啃,也浅浅学了一点Linux。
以前还blog还流行的时候,还做过笔记,已经是10几年前的事了。
想着学了这些系统,能做更牛逼的产品,工资还不蹭蹭往上涨?
后面工作没机会上系统,一直也就搁置了,随着工作经验越来越丰富,到工作了6,7年左右,就完全没心思学操作系统了。
如果你拿裸机和操作系统去比,不管是比前景,还是比钱景,我觉得毫无意义。
就像你楼下500米就是菜市场,骑雅迪去不香吗?非要开个奥迪去里面塞,所以,关键是要看实际需求嘛!
分享几个,目前单片机无法替代的点:
1.成本
说到成本,相信做过几年工程师的,都是一把泪,特别是硬件工程师。
老板天天像念经一样:"成本能再低点不?
产品经理天天找事:"竞品比我们便宜!”
对成本有要求的产品太多了。
像玩具类产品,一个遥控小车卖39块9,扣去包装、外壳、电机、轮子、电池...好家伙,控制板的成本连10块都不到。
这种情况下,要是还想上操作系统,上ARM?我怕是你想让老板要上天台。
2.实时性
说个段子,有个团队用操作系统做武器控制,结果调试时发现系统偶尔会卡那么一下。
工程师说:没事,就一毫秒。
结果军方代表当场就笑了:"一毫秒?导弹都飞出去三米了!"
工程师打开代码一看,偶尔会有其他任务抢占,导致控制延时。
这种时序性的问题最难排查,因为可能正常跑一整天都没事,突然就蹦出来一个。
其实大家想想也是,操作系统再怎么优化,它首先考虑的是多任务调度的"公平性",而不是某个特定任务的实时性。
就像食堂打饭,讲究的是先来后到,但你要是饿得要命,就会想着插队。
以前有个研发经理跟我说过一句话,一听就是被毒打过。
他说:宁可又LOW逼又简单,不能不稳定。
他做51单片机的产品,指针都不用,他做了研发10几年,难道他不会吗?
现在很多人一上来就用操作系统,感觉不用系统就low了。
其实在实时性要求高的场合,单片机的简单反而成了优势,主要体现在以下几点:
第一,程序流程清晰可控,每个时钟周期都可以预测
第二,不会出现莫名其妙的任务抢占
第三.再小的延时抖动都可以通过调整来消除
所以你看,那些对时序要求特别严格的场合,基本都是用单片机的。
3功耗
再讲一个段子,一哥们用操作系统做了个手环,美滋滋地给老婆展示:"你看,这功能多齐全,画面多漂亮!
结果老婆淡淡地问了句:"为啥每天都要充电?"
最后,这位老哥默默地换成了单片机方案...
单片机在最低功耗下,能达到nA级别,上了操作系统的芯片,咋比?
4.开发周期
虽然都是调库侠,个人感觉用单片机开发效率比较高,特别是出现BUG排查的时候。
其实,想用裸机,又想上点类似于实时操作系统这样的架构装逼,完全可以自己写一个。
比如我在早期就做过一个轮询的小系统:
什么?不会?正好我录过一套教程,来个三连找我安排,先看看实力不收费,哈哈。
最近发现,很多私聊我学单片机的小伙伴,99%的人都走了弯路,所以我花几个小时,写了一篇保姆级学习路线^ ^
单片机怎么学?保姆级学习路线(附教程+工具)https://blog.csdn.net/2401_86645590/article/details/141437874