在嵌入式软件开发中,可以使用操作系统,也可以不使用操作系统,这取决于系统的复杂程度。如果是功能比较单一的系统,如没有联网功能的刷卡机、简单的家电监控系统,没有操作系统完全没有问题。但如果符合以下几种情况,就建议采用操作系统。

  • 系统功能比较复杂,分割成几个部分进行处理能够有效降低复杂度。特别是不同的部分对处理实时性的要求不同、需要赋予不同的运行优先级时,就必须使用操作系统了。
  • 输入来自多个外设,而且对这些输入的处理不同时,使用操作系统可以带来很大的便利性。
  • 需要考虑软件的可移植性和可扩展性时,也建议采用操作系统。操作系统天然地实现了应用程序与硬件的隔离,而且充分考虑了在不同硬件平台之间的移植性问题,以此提高了整个软件系统的可移植性。同时操作系统的任务提供了功能之间的区隔机制,使系统在增加功能时更简便,提高了可扩展性。

现在通用的嵌入式操作系统都提供了丰富的配置裁剪手段,可以使采用操作系统导致的额外开销降到最低。如FreeRTOS在最小配置下,只需要数K的Flash和数十字节的SRAM。因此除了特别简单的系统以外,尽量选用操作系统以提高嵌入式软件的质量。

嵌入式操作系统漫议:操作系统or裸跑?相关推荐

  1. 嵌入式操作系统漫议:功能与特点

    何为操作系统? 在手机.PC等个人计算系统中,操作系统是不可或缺的存在,其重要性如同空气和水对人而言一样.随着手机的普及,安卓.iOS等操作系统也变得广为人知.其实个人计算系统的操作系统是由内核.各种 ...

  2. 最国产化嵌入式操作系统介绍-都江堰操作系统(DJYOS)

    都江堰操作系统(DJYOS)是开源操作系统,采取了类BSD许可证.目前由深圳市秦简计算机系统有限公司在运营. 1.1. DJYOS介绍 都江堰操作系统(简称DJYOS)开始于2004年,2009年发布 ...

  3. 学习嵌入式需了解的操作系统

    目前计算机嵌入式逐渐被大家所认可,不少同学也开始往计算机嵌入式领域发展.但要想学习嵌入式,就要先了解嵌入式操作系统.下面尚观教育小编跟大家聊一聊学习嵌入式需要了解的操作系统. 第一类.传统的经典RTO ...

  4. OpenWrt项目:针对嵌入式设备的Linux操作系统

    欢迎来到OpenWrt项目 OpenWrt项目是针对嵌入式设备的Linux操作系统.OpenWrt不会尝试创建单个静态固件,而是提供具有包管理功能的完全可写文件系统.这使您从供应商提供的应用程序选择和 ...

  5. 【科普】关于操作系统(桌面操作系统/服务器操作系统/嵌入式/移动设备操作系统)基础概念

    没有安装操作系统的计算机,称为"裸机". 操作系统主要包括以下四个: 1>桌面操作系统 2>服务器操作系统 3>嵌入式操作系统 4>移动设备操作系统 1&g ...

  6. 解析Linux内核源码中数据同步问题丨C++后端开发丨Linux服务器开发丨Linux内核开发丨驱动开发丨嵌入式开发丨内核操作系统

    剖析Linux内核源码数据同步 1.pdflush机制原理 2.超级块同步/inode同步 3.拥塞及强制回写技术 视频讲解如下,点击观看: 解析Linux内核源码中数据同步问题丨C++后端开发丨Li ...

  7. ETAS RTA-OS嵌入式ECU的实时操作系统

    ETAS RTA-OS是用于深嵌入式ECU的实时操作系统.它支持相关的AUTOSAR, OSEK*/VDX, ISO 26262 和 MISRA C标准的最新版本. RTA-OS 以汽车工业建立多年的 ...

  8. ZYNQ UltraScale 双核裸跑 / 裸跑 + Linux

    # 1 背景提出     某项目对中断延迟有很高的要求,客户的构架为:PPC+ Vxworks,延迟时间大概:10us.(因硬件设计原因, 还可以更小).我们在Linu系统下测试中断延迟大概几百us, ...

  9. 2020年服务器操作系统占有率,服务器操作系统占有率

    服务器操作系统占有率 内容精选 换一换 如果您要创建一台裸金属服务器,与现有的某台服务器拥有完全相同的操作系统和应用软件,那么您可以使用该服务器创建私有镜像,并根据这个私有镜像创建服务器.采用此方法可 ...

  10. 服务器预装操作系统,服务器预装操作系统吧

    服务器预装操作系统吧 内容精选 换一换 镜像是一个包含了软件及必要配置的服务器或磁盘模版,包含操作系统或业务数据,还可以包含应用软件(例如,数据库软件)和私有软件.镜像分为公共镜像.私有镜像.共享镜像 ...

最新文章

  1. Windows Azure 如何学习Azure
  2. Android软键盘隐藏,遮挡EidtText解决办法
  3. Tomcat配置虚拟主机的两种方式
  4. 版本控制工具--svn和git的使用(一) -----版本控制的好处以及分类
  5. SpringBoot 注入的@service为空,运行时报空指针
  6. USB接口类型的区别
  7. bigdecimal 减_市市场监管局多措并举推进高频事项“减时效”
  8. Blender插件初始化范例
  9. 触摸屏驱动开发——转载
  10. php创建对象出问题,activex部件不能创建对象
  11. freyja 可能会加入分库、分表功能
  12. 事件冒泡 vs 事件捕获 vs 事件委托 的区别
  13. 介绍几种电路上常用的塑料插接件(1)
  14. pytorch 文档网页离线 HTML and PDF
  15. 肖臻公开课(八)——比特币中的挖矿
  16. Java学习-面向对象进阶二
  17. FlinkJob提交流程
  18. 网易视频云:HBase BlockCache系列-性能对比测试报告
  19. 无法打开此计算机的组策略,无法运行gpedit.msc(组策略)的解决
  20. 自定义表单mysql_创建自定义表单

热门文章

  1. chia 的 p 图过程详解及优化攻略
  2. 高仿qq‘一键下班’—让你的view‘黏’起来
  3. 1-4 工厂模式(工厂方法模式/抽象工厂模式)
  4. 关于mysql客户端会话的线程id开启的事务tx1,与后续会话的线程id开启的事务txX,产生冲突,导致txX阻塞的分析
  5. Linux pthread_self和pthread_create函数
  6. CAD中工具选项板的“妙”用
  7. 电脑删除的照片如何恢复
  8. 浪漫博主使用 Javascript 做了个表白工具,最后升华了
  9. 理解 t != (t = tail)
  10. IDEA2020个性化设置(装逼且实用)