历史上的今天
返回首页

历史上的今天

今天是:2026年03月14日(星期六)

2023年03月14日 | 单片机能运行操作系统吗

2023-03-14 来源:zhihu

先直接上答案:可以!

但是操作系统不是刚需,上操作系统比较占用单片机的资源,比如占用比较多的FLASH和RAM,间接增加了硬件成本,哪怕成本增加1毛钱,对于上量的产品,分分钟是一个工程师的工资。

我做了单片机开发10几年,大多数产品其实还是裸机编程,用到操作系统的比较少。

当然,这个跟产品功能有关,一般产品功能复杂、实时性要求苛刻的就会上操作系统。

目前用的比较多的就是实时操作系统,比如主流有uC/OS-II、FreeRTOS、rt-thread。

下面,简单给大家说下3个系统各自优缺点,如有不对,请指正!

一、uC/OS-II

uC/OS-II 是 Micrium 公司开发的商业实时操作系统,它的内核设计非常稳定和可靠,更加注重调度算法和系统服务的丰富性,适合于需要更高实时性和稳定性的应用。

uC/OS-II 的优缺点如下:

特点:

对开发友好:资料多。

实时性:uC/OS-II 可以提供非常快速的中断响应和任务切换,确保系统实时性。

可移植性:uC/OS-II 可以支持多种不同的处理器架构,使得应用程序更易于移植到不同的硬件平台上。

可靠性:由于 uC/OS-II 的内核设计非常稳定和可靠,因此它被广泛应用于各种不同的嵌入式系统中。

成熟的生态环境:由于 uC/OS-II 已经发布了很长时间,因此它的社区和生态环境非常成熟和完善,用户可以方便地获取文档、示例和支持。

缺点:

商业授权费用:uC/OS-II 是一个商业实时操作系统,用户需要购买商业授权才能使用。

资源占用:uC/OS-II占用单片机资源较多,需要较大的存储空间和内存空间。

另外,开发者是可以剪裁的,也就是说你可以根据你产品的功能修改系统代码做定制,前提是你已经吃透了系统的代码,否则不要轻易尝试,不然很容易给自己挖坑。


二、 FreeRTOS

FreeRTOS 是一个开源的实时操作系统,目前占有率高。

特点:

商业授权费用:可以免费商用

轻量级:FreeRTOS 的内核非常小巧,适合资源受限的单片机。

实时性:FreeRTOS 可以提供非常快速的中断响应和任务切换,确保系统实时性。

可移植性:FreeRTOS 可以支持多种不同的处理器架构,使得应用程序更易于移植到不同的硬件平台上。

社区支持:FreeRTOS 的社区非常活跃,有大量的开发人员参与开发和维护,使得 FreeRTOS 的生态环境非常完善。

良好的文档和资料:FreeRTOS 的文档和资料非常丰富,学习和使用 FreeRTOS 相对较为简单。

缺点:

组件少:部分功能组件不够完善,比如GUI(图形界面)、TCP/IP、文件系统需外扩第三方。


三、rt-thread

这个是国内一款适合物联网产品的实时操作系统,特点是资源占用极低(1.2KB RAM和3KB Flash),代码架构做低功耗功能比较方便。

优点:

轻量级:RT-Thread 的内核非常小巧,适合资源受限的单片机。

实时性:RT-Thread 可以提供非常快速的中断响应和任务切换,确保系统实时性。

可裁剪性:RT-Thread 可以按需选择需要的组件,以减小系统占用的资源。

面向对象:RT-Thread 支持对象化编程,使得代码更加清晰易懂。

跨平台支持:RT-Thread 可以支持多种不同的处理器架构。

缺点:

生态相对不够完善:相比一些成熟的嵌入式操作系统,RT-Thread 的社区和开发人员数量相对较少,生态环境相对不够完善。

学习曲线较陡峭:RT-Thread 是一个相对较新的操作系统,它的文档和资料相对较少,学习曲线相对较陡峭。

不适合大型系统:由于 RT-Thread 的内核设计初衷是轻量级和实时性,所以它不适合构建大型的嵌入式系统。


四、自己对RTOS的理解

最后聊一下,我对这些实时操作系统的理解。

我觉得实时操作系统,本质上就是一个实时性高的程序架构

实时就是能保证我的任务规定的时间内去执行,这用传统while(1)轮询方式是实现不了的。

程序架构就好比建房子时的地基,只有地基稳了,才能应对外在恶劣环境对房子造成的影响,比如台风、地震。

我们写程序也是一样的,程序架构就是的”地基”,只有地基稳了,你的程序才能应对项目经理突如其来的改功能、换芯片方案,你的代码才经得起折腾、产品功能做得稳定。

可惜啊,很多工程师并没有写程序架构的能力,因为对经验和代码水平要求比较严格。

所以一般复杂的项目,直接上现成的、稳定的实时操作系统就可以了。

这样至少可以保证两点:

1.程序架构上不出问题。

2.程序的实时性不出问题。

不过用现成的也是有缺点的,就是RTOS的功能很多,有很多你产品压根用不上,但是你没办法,你又不会剪裁,这样就会浪费你很多单片机资源。

所以这几年我做项目,一直是用自己写的程序架构,然后程序实时性通过人工去规避。


推荐阅读

史海拾趣

E-CMOS(飞虹高科)公司的发展小趣事

展望未来,飞虹高科公司将继续秉承“创新、质量、服务”的企业精神,致力于CMOS技术的研发和应用。公司将密切关注市场动态和技术发展趋势,不断调整和优化产品结构和市场布局。同时,公司还将加强与国际同行的合作与交流,共同推动电子行业的进步与发展。飞虹高科坚信,在全体员工的共同努力下,公司一定能够在电子行业中取得更加辉煌的成就。

Diodes公司的发展小趣事

Diodes公司积极实施全球化战略,不断拓展海外市场。公司在以色列、加利福尼亚、得克萨斯和日本等地设立了制造工厂,形成了覆盖全球的生产和销售网络。这些工厂不仅为Diodes提供了充足的产能支持,也为公司赢得了更多国际客户的青睐。同时,Diodes还积极参加国际展会和交流活动,加强与国际同行的合作与交流,不断提升公司的国际化水平。

GS Technology公司的发展小趣事
由于峰值信号可能较弱,需要通过三极管等放大电路对信号进行放大。三极管在这里作为放大器使用,其基极接收输入信号,集电极输出放大后的信号。
Allied Wire & Cable Inc公司的发展小趣事

面对日益严峻的环境问题,Allied公司积极承担社会责任,致力于可持续发展。公司注重环保生产,采用环保材料和工艺,减少对环境的影响。同时,公司还关注未来发展趋势,制定了一系列战略规划,包括加大研发投入、拓展新兴市场、提升品牌影响力等,为公司的未来发展奠定了坚实的基础。

这些故事基于Allied Wire & Cable Inc公司的历史和发展情况构建,旨在展现其在电子行业中的成长和进步。如需更详细的信息,建议查阅公司的官方网站或相关新闻报道。

Dover Corporation公司的发展小趣事

Dover Corporation自上市以来,一直保持着持续盈利和向投资者发放红利的记录。公司凭借其强大的业务能力和稳健的财务状况,赢得了投资者的信任和支持。这一成绩的取得不仅彰显了Dover在业务运营方面的实力,也为其未来的发展奠定了坚实的基础。

请注意,以上故事框架仅为概述性质,具体细节和数据可能需要根据Dover Corporation的实际情况进行调整和补充。

General Dynamics SATCOM Technologies公司的发展小趣事

Dover Corporation自上市以来,一直保持着持续盈利和向投资者发放红利的记录。公司凭借其强大的业务能力和稳健的财务状况,赢得了投资者的信任和支持。这一成绩的取得不仅彰显了Dover在业务运营方面的实力,也为其未来的发展奠定了坚实的基础。

请注意,以上故事框架仅为概述性质,具体细节和数据可能需要根据Dover Corporation的实际情况进行调整和补充。

问答坊 | AI 解惑

FPGA监控应用解决方案(Altera和Apical)

Altera公司 和Apical有限公司宣布,为视频监控摄像机提供世界上第一个高清晰宽动态范围(WDR) CMOS图像传感器处理解决方案。在内华达洲拉斯维加斯3月24号到26号举行的国际安防大会(ISC)西部博览会上,Altera展示了这一解决方案。Altera和Apical全面 ...…

查看全部问答>

求助:v4l采集视频数据用socket传输

正在作毕设,嵌入式电梯监控系统,请求大家帮助 arm2410s开发板端用v4l摄像头采集图像用socket传至linux主机 1在开发板端采集的图像可以在framebuffer上显示但是加入socket出现以下错误:   lr : []    Not tainted sp : b ...…

查看全部问答>

咨询

我经常上网站找datasheet,而且我们公司也代理传感器,是VTI的直接代理商。我想知道电子工程世界的这些供应商是如何加入的?是投了广告还是网站编辑主动收录的还是需要我们供应提供信息加入?请告知。http://datasheet.eeworld.com.cn/distributors. ...…

查看全部问答>

看门狗问题

请教各位,我遇到一个问题,就是看门狗已经打开了,可是程序还是会莫名其妙的跑飞,看门狗确没有复位,这是为什么啊…

查看全部问答>

请教:IBM笔记本的并口无法下载430程序

请教:IBM笔记本的并口无法下载430程序? 我用的笔记本的型号是IBM:T23,带并口 但是无法下载程序,在台式机上就可以下载430程序,请教,如何解决? 急求!!!…

查看全部问答>

LM3S9B96的EPI的HB8模式的ADDEMUX子模式写数据问题

我自己做的9B96的板子,用的LM3S9B96的EPI的HB8模式的ADDEMUX子模式,然后接了三个4位的数码管,三个数码管的片选是用9b96的gpio口通过一个多选一的开关芯片,com端连接epi口的片选信号,HB8的ADDEMUX子模式用了8根数据线,3根地址线分别接数码管的 ...…

查看全部问答>

28035新手求教

使用CCS5程序在写入RAM过程中总是报这样的错误: C28xx: Error connecting to the target: (Error -1135 @ 0x0) The emulator reported an error. Confirm emulator configuration and connections, reset the emulator, and retry the operation. ...…

查看全部问答>

大家帮忙看看这个电路

大家看看这里面这四个电容的作用是啥? 0.1uf用于滤除高频杂波;10uf用于稳压是吗? 谢谢 …

查看全部问答>

请教大电流布线的一些要求

现在在做大功率开关电源,需要在PCB上走200A左右的电流,但是之前从来没有相关的设计经验,感觉无从下手 有一些问题 大电流布线的时候,需要考虑哪些因素?温升,电磁辐射,寄生参数之类的,哪些比较重要? 关于导线宽度的计算,有没有什么标准 ...…

查看全部问答>