嵌入式系统软件架构

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

嵌入式系统软件

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


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


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


当设计一个简单的应用程序时,可以不使用操作系统,但是当设计较复杂的程序时,可能就需要一个操作系统(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 等。

目录
相关文章
|
19天前
|
监控 持续交付 API
深入理解微服务架构:构建高效、可扩展的系统
【10月更文挑战第14天】深入理解微服务架构:构建高效、可扩展的系统
69 0
|
5天前
|
前端开发 安全 关系型数据库
秒合约系统/开发模式规则/技术架构实现
秒合约系统是一种高频交易平台,支持快速交易、双向持仓和高杠杆。系统涵盖用户注册登录、合约创建与编辑、自动执行、状态记录、提醒通知、搜索筛选、安全权限管理等功能。交易规则明确,设有价格限制和强平机制,确保风险可控。技术架构采用高并发后端语言、关系型数据库和前端框架,通过智能合约实现自动化交易,确保安全性和用户体验。
|
13天前
|
存储 数据管理 调度
HarmonyOS架构理解:揭开鸿蒙系统的神秘面纱
【10月更文挑战第21天】华为的鸿蒙系统(HarmonyOS)以其独特的分布式架构备受关注。该架构包括分布式软总线、分布式数据管理和分布式任务调度。分布式软总线实现设备间的无缝连接;分布式数据管理支持跨设备数据共享;分布式任务调度则实现跨设备任务协同。这些特性为开发者提供了强大的工具,助力智能设备的未来发展。
50 1
|
22天前
|
存储 监控 负载均衡
|
30天前
|
传感器 存储 架构师
构建基于 IoT 的废物管理系统:软件架构师指南
构建基于 IoT 的废物管理系统:软件架构师指南
66 9
|
1月前
|
存储 安全 开发工具
百度公共IM系统的Andriod端IM SDK组件架构设计与技术实现
本文主要介绍了百度公共IM系统的Andriod端IM SDK的建设背景、IM SDK主要结构和工作流程以及建设过程遇到的问题和解决方案。
48 3
|
2月前
|
监控 Android开发 iOS开发
深入探索安卓与iOS的系统架构差异:理解两大移动平台的技术根基在移动技术日新月异的今天,安卓和iOS作为市场上最为流行的两个操作系统,各自拥有独特的技术特性和庞大的用户基础。本文将深入探讨这两个平台的系统架构差异,揭示它们如何支撑起各自的生态系统,并影响着全球数亿用户的使用体验。
本文通过对比分析安卓和iOS的系统架构,揭示了这两个平台在设计理念、安全性、用户体验和技术生态上的根本区别。不同于常规的技术综述,本文以深入浅出的方式,带领读者理解这些差异是如何影响应用开发、用户选择和市场趋势的。通过梳理历史脉络和未来展望,本文旨在为开发者、用户以及行业分析师提供有价值的见解,帮助大家更好地把握移动技术发展的脉络。
76 6
|
2月前
|
网络协议 安全 中间件
系统架构设计师【第2章】: 计算机系统基础知识 (核心总结)
本文全面介绍了计算机系统及其相关技术,涵盖计算机系统概述、硬件、软件等内容。计算机系统由硬件(如处理器、存储器、输入输出设备)和软件(系统软件、应用软件)组成,旨在高效处理和管理数据。硬件核心为处理器,历经从4位到64位的发展,软件则分为系统软件和应用软件,满足不同需求。此外,深入探讨了计算机网络、嵌入式系统、多媒体技术、系统工程及性能评估等多个领域,强调了各组件和技术在现代信息技术中的重要作用与应用。
67 4
|
2月前
|
Cloud Native Devops 持续交付
探索云原生架构:构建高效、灵活和可扩展的系统
本文将深入探讨云原生架构的核心概念、主要技术以及其带来的优势。我们将从云原生的定义开始,了解其设计理念和技术原则;接着分析容器化、微服务等关键技术在云原生中的应用;最后总结云原生架构如何助力企业实现数字化转型,提升业务敏捷性和创新能力。通过这篇文章,读者可以全面了解云原生架构的价值和应用前景。
|
2月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
167 3

热门文章

最新文章