嵌入式系统软件架构

简介: 嵌入式系统软件架构

嵌入式系统软件

网络异常,图片无法展示
|


嵌入式软件:包括嵌入式操作系统及应用软件


  • 嵌入式操作系统
  • 嵌入式操作系统是嵌入式系统中最基本的软件,它负责分配、回收,控制和协调全部软硬件资源的并发活动,并且提供应用程序的运行环境和接口,是应用程序运行的基础。
  • 嵌入式应用软件
  • 嵌入式应用软件是服务于某种专用应用领域,基于某一特定的嵌入式硬件平台,用来达到用户预期任务的计算机软件。


当设计一个简单的应用程序时,可以不使用操作系统,但是当设计较复杂的程序时,可能就需要一个操作系统(OS)来管理、控制内存、多任务、周边资源等等。依据系统所提供的程序界面来编写应用程序,可以大大的减少应用程序员的负担。

嵌入式系统软件的层次结构

对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含三个层面:设备驱动层、实时操作系统(RTOS)、实际应用程序层。由于硬件电路的可裁减性和嵌入式系统本身的特点,其软件部分也是可裁减的。


对于功能简单仅包括应用程序的嵌入式系统一般不使用操作系统,仅有应用程序和设备驱动程序。现代高性能嵌入式系统应用越来越广泛,操作系统使用成为必然发展趋势。


操作系统如:Windows、Unix、Linux 等,它们的运行平台在通用计算机上都是标准的。但嵌入式系统不然,嵌入式处理器多种多样,目前不下几百种,即使同一种体系的嵌入式处理器,它们的配置仍有不同。操作系统提供商为了屏蔽这些硬件平台的差异,仅仅用标准 C 语言把操作系统不依赖于具体硬件的共性部分实现了,而把依赖于硬件的部分(如存储器种类、外部设备的配置、地址分配等)留给用户编写,而操作系统仅仅规定了一个标准的规范。


用户编写的这部分代码为用户的具体硬件和标准化的操作系统之间提供了一个接口和支持平台,这部分代码称为板级支持包(Board Support Package,BSP) 或硬件抽象层(Hardware Abstraction Layer,HAL)。


经过不断地发展,嵌入式系统原有的 3 层结构逐步演化成为 4 层结构。


网络异常,图片无法展示
|


嵌入式系统的详细结构


网络异常,图片无法展示
|


由于引入了一个中间层,屏蔽了底层硬件的多样性,操作系统不再面对具体的硬件环境,而是面对由这个中间层次所代表的、逻辑上的硬件环境,因此,把中间层次叫做硬件抽象层(Hardware Abstraction Layer, HAL)。


HAL 的引入大大推动了嵌入式实时系统的通用化,从而为嵌入式系统的广泛应用提供了可能。

硬件抽象层

板级支持包(Board Support Package,BSP)是现有的大多数商用嵌入式操作系统实现可移植性所采用的一种方案,是硬件抽象层的一种实现。


BSP 隔离了所支持的嵌入式操作系统与底层硬件平台之间的相关性,是嵌入式操作系统能够通用与 BPS 所支持的硬件平台,从而实现嵌入式操作系统的可移植性和跨平台性,以及嵌入式操作系统的通用性、复用性。


BSP 是相对于操作系统而言的,不同的操作系统对应于不同定义形式的 BSP。


例如,对应同一个 CPU 来说,要实现同样的功能,VxWorks 的 BSP 和 Linux 的 BSP 的写法和接口定义却完全不同。


因此,BSP 一定要按照具体操作系统 BSP 的定义形式来写(BSP 的编程过程大多数是在某一个成型的 BSP 模板上进行修改),这样才能与上层操作系统保持正确的接口,良好地支持上层操作系统。


网络异常,图片无法展示
|

嵌入式操作系统

目前流行的嵌入式操作系统可以分为两类:


  • 从运行在个人电脑上的操作系统向下移植到嵌入式系统中, 形成的嵌入式操作系统, 如微软公司的 Windows CE 及其新版本,嵌入式 Linux 等
  • 实时操作系统,如 Wind River 公司的 VxWorks,ISI 的 pSOS,QNX 系统软件公司的 QNX,ATI 的 Nucleus,中国科学院凯思集团的 Hopen 嵌入式操作系统等

嵌入式操作系统——WinCE

Windows CE 是微软开发的一个开放的、可升级的 32 位嵌入式操作系统,是一个基于掌上型电脑类的电子设备的操作系统。


  • Windows CE 是精简的 Windows 95。Windows CE 的图形用户界面相当出色。其中 CE 中的 C 代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E 代表电子产品(Electronics)
  • 整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少 200K 的 ROM
  • Windows CE 不仅继承了传统的 Windows 图形界面,并且在 Windows CE 平台上可以使用 Windows 95/98/2000 上的编程工具(如 Visual Basic、Visual C++等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在 Windows CE 平台上继续使用
  • 目前主要应用于 PDA,跟微软一系列 Windows 系统一样,Windows CE 也承袭了原有的缺点:**耗系统资源、不稳定、效率不佳..**等等。后来将整个架构重新改写后推出 Windows CE 3.0 版,或称为 Pocket PC。

嵌入式操作系统——VxWorks

VxWorks 操作系统是美国 WindRiver 公司于 1983 年设计开发的一种嵌入式实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地。


VxWorks 所具有的显著特点是:


  • 可靠性、实时性和可裁减性。
  • 支持多种处理器,如 x86、i960、Sun Sparc、Motorola MC68xxx、MIPS 、POWER PC 等等。


以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(1997 年 7 月 4 日登陆火星表面)。

嵌入式操作系统——Linux

Linux 是一个类似于 Unix 的操作系统。它起源于芬兰一个名为 Linus Torvalds 的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。


Linux 从 1991 年问世到现在,短短 10 几年的时间内已发展成为一个功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的 Linux OS 已成为 Microsoft 公司 Windows 的强劲对手。


Linux 系统不仅能够运行于 PC 平台,还在嵌入式系统方面大放光芒,在各种嵌入式 Linux OS 迅速发展的状况下,Linux OS 逐渐形成了可与 Windows CE 等 EOS 进行抗衡的局面。目前正在开发的嵌入式系统中,50%以上的项目选择 Linux 作为嵌入式操作系统。Linux 现已成为嵌入式操作的理想选择。Linux 是开放源码和免费使用的,遍布全球的众多 Linux 爱好者又是 Linux 开发的强大技术后盾。


嵌入式 Linux(Embedded Linux)是指对 Linux 经过小型化裁剪后,能够固化在容量只有几百 K 字节或几兆字节的存储器芯片或单片机中,应用于特定嵌入式场合的专用 Linux 操作系统。嵌入式 Linux 的开发和研究是目前操作系统领域的一个热点。主要有 RTLinux 和μCLinux


  • Linux 的内核小、功能强大、API 丰富,系统健壮、效率高,易于定制剪裁,在价格上极具竞争力。
  • Linux 不仅支持 x86 CPU,还可以支持其他数十种 CPU 芯片。
  • 开放原始码、模块化设计 Linux 采用 GPL(General Public License,通用公共许可证)授权,除了把原始码公开以外,任何人都可以自由使用、修改、散布,而 Linux 核心本身采用模块化设计,让人很容易增减功能,例如我的平台并不需要蓝牙的功能,我只要不把这项功能加入,有需要就加入,不需要就删除,由于这样的高的弹性,我们可以调校出最适合我们硬件平台的核心出来。
  • Linux 的系统内核最小只有 134KB,一个带中文系统和图形用户界面的核心程序也可以做到不到 1MB。

相较于 Unix,Windows 是走封闭原始码路线,所以我们完全无法得知或修改它的核心部份。另外因为是采用 GPL 授权自然就没有什么权利金或保密协议的约束。

嵌入式 Linux OS 的特点

  1. 精简的内核,性能高、稳定,多任务。
  2. 良好的可移植性,使得它可以适用于不同的 CPU,支持多种体系结构,如 X86、ARM、MIPS、ALPHA、SPARC 等。
  3. 能够提供完善的嵌入式 GUI 以及嵌入式 X-Windows。
  4. 提供嵌入式浏览器、邮件程序、MP3 播放器、MPEG 播放器、记事本等多种应用。
  5. 提供完整的开发工具和 SDK,同时提供 PC 上的开发版本。
  6. 非实时专用,要想用于实时性要求高的场合需要添加实时处理模块,进行实时化处理。
  7. 用户可定制,可提供图形化的定制和配置工具。
  8. 支持常用嵌入式芯片的驱动,支持大量的周边硬件设备,驱动丰富。
  9. 针对嵌入式的存储方案,提供实时版本和完善的嵌入式解决方案。
  10. 完善的中文支持,强大的技术支持,完整的文档。
  11. 开放源码,丰富的软件资源,广泛的软件开发者的支持,价格低廉,结构灵活,适用面广。


μClinux


μClinux 是一个完全符合 GNU/GPL 公约的操作系统,完全开放代码。uClinux 从 Linux 2.0/2.4 内核派生而来,沿袭了主流 Linux 的绝大部分特性。它是专门针对没有 MMU 的 CPU,并且为嵌入式系统做了许多小型化的工作。适用于没有虚拟内存或内存管理单元(MMU)的处理器,例如 ARM7TDMI。它通常用于具有很少内存或 Flash 的嵌入式系统。它保留了 Linux 的大部分优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的 API 等。

目录
相关文章
|
21天前
|
存储 SQL 网络协议
C语言C/S架构PACS影像归档和通信系统源码 医院PACS系统源码
医院影像科PACS系统,意为影像归档和通信系统。它是应用在医院影像科室的系统,主要的任务是把日常产生的各种医学影像(包括核磁、CT、超声、各种X光机、各种红外仪、显微仪等设备产生的图像)通过各种接口(模拟、DICOM、网络)以数字化的方式海量保存起来,并在需要的时候在一定授权下能够快速地调回使用。同时,PACS系统还增加了一些辅助诊断管理功能。
39 11
|
14天前
|
安全 数据管理 中间件
云LIS系统源码JavaScript+B/S架构MVC+SQLSugar医院版检验科云LIS系统源码 可提供演示
检验科云LIS系统源码是医疗机构信息化发展的重要趋势。通过云计算技术实现数据的集中管理和共享可以提高数据利用效率和安全性;通过高效灵活的系统设计和可扩展性可以满足不同医疗机构的需求;通过移动性和智能化可以提高医疗服务的精准度和效率;通过集成性可以实现医疗服务的协同性和效率。因此,多医院版检验科云LIS系统源码将成为未来医疗机构信息化发展的重要方向之一。
26 2
|
2天前
|
前端开发 Java 关系型数据库
Java医院绩效考核系统源码B/S架构+springboot三级公立医院绩效考核系统源码 医院综合绩效核算系统源码
作为医院用综合绩效核算系统,系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
21 2
|
11天前
|
API 开发者 UED
构建高效微服务架构:后端开发的新趋势移动应用与系统:开发与优化的艺术
【4月更文挑战第30天】 随着现代软件系统对可伸缩性、灵活性和敏捷性的日益需求,传统的单体应用架构正逐渐向微服务架构转变。本文将探讨微服务架构的核心概念,分析其优势,并着重讨论如何利用最新的后端技术栈实现一个高效的微服务系统。我们将涵盖设计模式、服务划分、数据一致性、服务发现与注册、API网关以及容器化等关键技术点,为后端开发者提供一份实操指南。 【4月更文挑战第30天】 在数字化时代的浪潮中,移动应用和操作系统的紧密交织已成为日常生活和商业活动的基石。本文将深入探讨移动应用开发的关键技术、跨平台开发工具的选择以及移动操作系统的架构和性能优化策略。通过分析当前移动应用开发的挑战与机遇,我们将
|
15天前
|
消息中间件 监控 中间件
探索微服务架构下的系统弹性设计
【4月更文挑战第26天】 在当今快速迭代和持续部署的软件发展环境中,系统的弹性设计成为维护高可用性和稳定性的关键因素。本文将深入探讨在微服务架构下如何实现系统弹性,包括识别潜在的故障点、设计容错机制、以及通过实践案例分析提升系统整体的韧性。我们将讨论一系列策略,如服务降级、超时管理、重试策略、断路器模式等,旨在为开发者提供一套实用的系统弹性设计方案。
|
19天前
|
缓存 监控 算法
Python性能优化面试:代码级、架构级与系统级优化
【4月更文挑战第19天】本文探讨了Python性能优化面试的重点,包括代码级、架构级和系统级优化。代码级优化涉及时间复杂度、空间复杂度分析,使用内置数据结构和性能分析工具。易错点包括过度优化和滥用全局变量。架构级优化关注异步编程、缓存策略和分布式系统,强调合理利用异步和缓存。系统级优化则涵盖操作系统原理、Python虚拟机优化和服务器调优,需注意监控系统资源和使用编译器加速。面试者应全面理解这些层面,以提高程序性能和面试竞争力。
17 1
Python性能优化面试:代码级、架构级与系统级优化
|
19天前
|
运维 安全 定位技术
云HIS系统采用B/S架构云端SaaS服务的方式提供,使用用户通过浏览器即能访问
云HIS系统采用B/S架构云端SaaS服务的方式提供,使用用户通过浏览器即能访问
26 2
|
22天前
|
机器学习/深度学习 算法 atlas
RAG 2.0架构详解:构建端到端检索增强生成系统
RAG(检索增强生成)旨在通过提供额外上下文帮助大型语言模型(LLM)生成更精准的回答。现有的RAG系统由独立组件构成,效率不高。RAG 2.0提出了一种预训练、微调和对齐所有组件的集成方法,通过双重反向传播最大化性能。文章探讨了不同的检索策略,如TF-IDF、BM25和密集检索,并介绍了如SPLADE、DRAGON等先进算法。目前的挑战包括创建可训练的检索器和优化检索-生成流程。研究表明,端到端训练的RAG可能提供最佳性能,但资源需求高。未来研究需关注检索器的上下文化和与LLM的协同优化。
74 1
|
25天前
|
消息中间件 运维 Java
B/S架构,采用JAVA编程的医院云HIS系统源码,公立二甲医院应用案例
SaaS模式Java版云HIS系统,在公立二甲医院应用多年,经过多年持续优化系统运行稳定、功能齐全,界面布局合理、操作简便。融合B/S版电子病历系统,支持电子病历四级,HIS与电子病历系统均拥有自主知识产权。 云HIS系统采用云端SaaS服务的方式提供,使用用户通过浏览器即能访问,无需关注系统的部署、维护、升级等问题,系统充分考虑了模板化、配置化、智能化、扩展化等设计方法,覆盖了基层医疗机构的主要工作流程,能够与监管系统有序对接,并能满足未来系统扩展的需要。
B/S架构,采用JAVA编程的医院云HIS系统源码,公立二甲医院应用案例
|
25天前
|
缓存 小程序
Java+saas模式 智慧校园系统源码MySQL5.7+ elmentui前后端分离架构 让校园管理更高效的数字化平台系统源码
智慧校园是在数字通增强版基础上,研发的一套面向教育行业的数字化校园软件,其显著特点是集学校网站、协同办公、即时通讯、网络空间、移动办公于一体。在满足教职工日常办公需要的同时,拥有诸多教育行业功能,并提供便捷易用的“家校通”平台以满足老师、学生、家长的日常交流。数字通智慧校园教育版中的协同办公、即时通讯、移动办公等功能模块随通用版一同改进,将网络办公最新技术应用到教育行业。
27 1