0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

请问单片机能运行操作系统吗?

无际单片机编程 来源:无际单片机编程 2023-03-08 14:03 次阅读

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

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

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

目前用的比较多的就是实时操作系统,比如主流有uC/OS-II、FreeRTOSrt-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的功能很多,有很多你产品压根用不上,但是你没办法,你又不会剪裁,这样就会浪费你很多单片机资源。

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

7617a564-ba9b-11ed-bfe3-dac502259ad0.png

763a835e-ba9b-11ed-bfe3-dac502259ad0.png

比如任务初始化、创建、调度管理。

还有实时操作系统一些实用功能,比如队列,也是产品常用的,只是我自己写了更简化的代码。

76707504-ba9b-11ed-bfe3-dac502259ad0.png






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620838
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113706
  • 操作系统
    +关注

    关注

    37

    文章

    6284

    浏览量

    121880
  • FreeRTOS
    +关注

    关注

    12

    文章

    473

    浏览量

    61347

原文标题:单片机能运行操作系统吗?

文章出处:【微信号:nanshuqg,微信公众号:无际单片机编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    运行在51单片机上的操作系统

    运行在51单片机上的操作系统
    发表于 02-10 12:53

    FreeRTOS从单片机操作系统

    转载【连载】从单片机操作系统③——走进FreeRTOS【1】 从单片机操作系统①我们熟悉的单片机编程:这种结构基本上都是在main函数开
    发表于 08-23 07:03

    请问一下RT-Thread操作系统运行在什么里面?

    请问一下rt thread操作系统运行在什么里面?是上位机还是运行在移植的单片机里面
    发表于 02-15 10:35

    51单片机可以跑操作系统吗?

    据说单片机可以上操作系统,那51单片机可以上操作系统吗,感觉51单片机性能那么差,还能跑操作系统
    发表于 11-06 06:59

    51单片机多任务操作系统的原理与实现

    51单片机多任务操作系统的原理与实现,在51单片机上模拟操作系统
    发表于 02-28 15:09 16次下载

    基于NoC结构的嵌入式操作系统的设计

    在嵌入式操作系统设计中,采用单片机能够更好地实现系统操作控制。而采用NoC结构,则能使系统保持高效运行
    发表于 01-22 16:38 0次下载

    单片机中嵌入操作系统有哪些优缺点

     近年来,在单片机系统中嵌入操作系统已经成为人们越来越关心的一个话题。本文通过对一种源码公开的单片机嵌入式实时操作系统µC/OS-II为例,
    发表于 08-05 17:34 1次下载
    在<b class='flag-5'>单片机</b>中嵌入<b class='flag-5'>操作系统</b>有哪些优缺点

    单片机编程和操作系统综述

    本文分为两部分——“单片机编程篇”和“操作系统篇”。单片机编程篇主要介绍单片机的各种编程结构,及其实现方法。是在假设已经可以驱动单片机和各个
    发表于 05-08 11:12 40次下载

    转载:DIY:给单片机写个实时操作系统内核!

    转载:DIY:给单片机写个实时操作系统内核!
    发表于 11-13 19:36 1次下载
    转载:DIY:给<b class='flag-5'>单片机</b>写个实时<b class='flag-5'>操作系统</b>内核!

    单片机、CPU、指令集和操作系统的关系

    单片机、CPU、指令集和操作系统的关系
    发表于 11-15 17:06 4次下载
    <b class='flag-5'>单片机</b>、CPU、指令集和<b class='flag-5'>操作系统</b>的关系

    单片机、CPU、指令集和操作系统的关系

    单片机、CPU、指令集和操作系统的关系
    发表于 11-15 19:51 28次下载
    <b class='flag-5'>单片机</b>、CPU、指令集和<b class='flag-5'>操作系统</b>的关系

    华大单片机移植RTThread操作系统

    华大单片机移植RTThread-国产操作系统文章目录华大单片机移植RTThread-国产操作系统1.华大单片机型号选择2.RTThread源
    发表于 11-17 17:21 51次下载
    华大<b class='flag-5'>单片机</b>移植RTThread<b class='flag-5'>操作系统</b>

    14种主流的RTOS 单片机操作系统~来学!

    点击上方名片关注我们单片机编程时,我们都知道有两种基本操作:裸奔和操作系统。所谓裸奔,就是一个大循环往复执行。今天要讲的是几个常用的操作系统。实时
    的头像 发表于 09-22 10:02 7205次阅读
    14种主流的RTOS <b class='flag-5'>单片机</b><b class='flag-5'>操作系统</b>~来学!

    单片机操作系统,到底有几种选择?

    单片机编程时,我们都知道有两种基本操作:裸奔和操作系统。所谓裸奔,就是一个大循环往复执行。今天要讲的是几个常用的操作系统。实时操作系统(Re
    的头像 发表于 09-26 10:56 1690次阅读
    <b class='flag-5'>单片机</b>跑<b class='flag-5'>操作系统</b>,到底有几种选择?

    单片机操作系统有哪些

    单片机操作系统(RTOS)是一种专门设计用于单片机操作系统,它可以提供任务调度、内存管理、设备驱动等功能,帮助程序员更高效地开发嵌入式系统
    的头像 发表于 12-08 16:18 1796次阅读