很多工程师,特别是刚入行几年的,总觉得在项目里用上RTOS,简历上就多了个亮点,也显得专业。但是为什么用RTOS,十个有九个都说“项目复杂,任务多”,再往下追问,就说不清楚了。
很多人用RTOS,不是因为项目真的需要,而是因为驾驭不了复杂的裸机程序架构。
我刚毕业的时候接触了一个项目,用NXP lpc系列单片机做的点阵屏显示器,加了ucos系统,其实项目复杂度一般,根本就没有必要加系统。
而且加上系统,成本也上去了,现在感觉这项目用STC的51单片机都能胜任,之前维护这个项目,经常莫名其妙出现卡死的问题,查半天都不知道是哪个任务出现了问题。
好在这个属于冷门赛道产品,对成本没那么敏感。
如果是消费类的产品,拼供应链和成本,一个产品多3块钱成本,要是出货10万台,就是30万。用裸机,意味着你可以用性能更低的芯片,用更少的RAM和Flash,把成本压到极致。别小看这几毛几块钱,这可能直接决定产品在市场上有没有竞争力。
我喜欢用裸机开发,第二个原因是程序能够100%掌控,没有调度器黑盒,没有任务间切换的开销,没有复杂的信号量、互斥锁。
出了问题,也能快速定位。
对于那些要求极其严格的行业,裸机带来的确定性和稳定性是RTOS给不了的。
第三个原因,是倒逼自己成为架构师。
这点最重要。用RTOS很容易让你变懒,反正功能都切成一个个任务,直接扔给调度器就行了。
而裸机,会逼着你去思考程序的整体架构:如何设计一个高效的时间片轮询系统?如何用状态机来管理复杂的逻辑?如何实现无阻塞的延时和通信?
这个过程很痛苦,但只要熬过去了,编程思维会发生质的飞跃。你再也不想加什么RTOS了。

扫码关注















![电子设计:IIR数字滤波器设计[学以致用系列课程之数字信号处理]](https://api.fanyedu.com/uploads/image/58/2fe737b3ff3f854913ef2c5df8df52.png)






















