嵌入式操作系统与嵌入式处理器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式操作系统与嵌入式处理器相关的知识,希望对你有一定的参考价值。

参考技术A

嵌入式操作系统与嵌入式处理器

  随着计算机技术和通讯技术的快速发展,嵌入式系统已经广泛渗入到工业控制、移动通信、电子商务、信息家电等多个应用领域,应用日益广泛。下面我为大家整理了关于嵌入式操作系统与嵌入式处理器的文章,一起来看看吧:

  1 嵌入式系统

  嵌入式系统(Embedded System,ES)是将先进的微电子技术、通讯技术和计算机技术与各个具体应用领域相结合的产物,是一个资金技术密集且高度集成创新的知识系统。嵌入式系统是以应用为中心,计算机技术为基础,软硬件可裁剪,适应于应用系统对功能、可靠性、成本、体积和功耗等方面有严格要求的专用计算机系统。因此,它具有“嵌入性”、“专有性”和“计算机系统”三个基本要素,其中“嵌入性”是它的特征,“专有性”是它的灵魂,“计算机系统”是它的本质。

  根据IEEE(Institute of Electrical and Electronics Engineers 电气电子工程师协会)从它的用途来定义,嵌入式系统是用来监视、控制或者辅助机器和设备运行的系统[2]。其实嵌入式系统就是微操作系统和功能软件的集成,在以微处理器为核心的微型计算机硬件体系中所形成的简易便捷,稳定可靠,经济实用的机电一体化产品。

  2 嵌入式处理器

  嵌入式处理器(Embedded Processor,EP)与通用处理器最大的区别就在于嵌入式处理器大多工作在为不同用户群所设计的特定系统中,它常常将通用处理器中许多由板卡完成的功能集成到芯片内部,从而有利于实现嵌入式系统设计的微型化,同时又保证了较高的可靠性和处理效率。到目前为止,全球嵌入式处理器的种类已经超过1000多种,其中以ARM、MIPS、Power PC、Motorola 68K、X86等体系结构最为常见,一般将嵌入式处理器分成以下四类:

  1)嵌入式微控制器 (Microcontroller Unit,MCU);

  2)嵌入式微处理器 (Embedded Microprocessor Unit,EMPU);

  3)嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP);

  4)片上系统(System On Chip,SOC)。

  一般在嵌入式系统设计中常用的嵌入式微处理器和体系结构主要有以下几种:

  1) ARM

  ARM(Advanced RISC Machines)公司是全球著名的16/32位精简指令集计算机RISC(Reduced Instruction Set Computer)处理器设计供应商,通过提供高性能与低功耗的RISC处理器芯片设计技术给各个生产厂商来生产满足不同应用领域要求的芯片。事实上,由于ARM处理器一方面支持16位的Thumb指令集和32位的ARM指令集,另一方面使用了大量的寄存器和灵活的寻址方式来提高系统执行的效率,所以ARM处理器技术已经成为数字通信、工业控制、多媒体家电等嵌入式应用领域的RISC标准。ARM系列处理器种类很多,目前市场上应用最为广泛的是ARM9和ARM10系列处理芯片。ARM9处理器由于拥有了五级流水线结构和自带MMU功能,广泛应用于手持终端和无线通讯等领域。ARM10处理器由于采用了更高的六级流水线结构和支持DSP指令以及支持64位的AMBA总线接口[5],其性能较ARM9有了很大的提高,广泛应用于手持PDA以及车载电子等高端领域。

  2) MIPS

  MIPS(Microprocessor without Interlocked Pipeline Stages)简称无内部互锁流水级的微处理器,是美国MIPS技术公司推出的一种基于RISC架构的高性能高档次的处理器内核。MIPS采用了先进的设计理念和清晰的系统结构,强调软硬件协同工作以提高处理器性能,同时简化了硬件设计,采用软件方法来避免流水线运行中的数据相关问题。虽与ARM处理器相比,MIPS体系结构的处理器功耗要高些,但它具备了从32位低端产品到64位高端产品的完整解决方案,而且在知识产权的授权费用上MIPS要低于ARM,因此,MIPS内核逐渐被越来越多的消费类电子产品和工业控制产品的设计所采用。

  3) Power PC

  PowerPC(Performance optimization with Enhanced RISC performance Computing)简称性能优化与增强的RISC性能计算,是由IBM、Motorola和Apple公司联合开发的一款高性能32/64位RISC处理器,其主要特点是可伸缩性好,方便灵活和较高的性价比。常见的基于Power PC架构的处理器有IBM公司的Power PC64S(深蓝内部的CPU)、Power PC750、Power PCG3以及Motorola公司的MC和MPC系列等。目前,基于Power PC体系结构的\'处理器广泛应用于桌面PC系统、移动PC系统、嵌入式系统以及金融电信等行业。

  4) Motorola 68K

  Motorola 68K采用复杂指令集计算机CISC(Complex Instruction Set Computer)架构[8],是出现比较早的嵌入式处理器,在全球的各种嵌入式处理器应用领域中取得了巨大成功。曾经Sun微计算机公司把这款处理器应用于早期的产品开发中。

  5) X86
  X86系列处理器起源于Inter架构的8080,然后发展出286、386、486直到现在的奔腾处理器乃至双核处理器。从嵌入式市场分布来看,486DX也是与ARM、68K、MIPS、SuperH齐名的五大嵌入式处理器之一。目前市场上基于X86体系结构的PC104产品占有很大的市场份额。

  3 嵌入式操作系统

  嵌入式操作系统(Embedded Operating System,EOS)是嵌入式系统的重要组成部分,它通常运行在嵌入式硬件平台之上,对整个系统的软硬件资源进行有效管理控制和协调调度的系统软件。嵌入式操作系统可以分为两大类:嵌入式实时操作系统(Embedded Real-time Operating System,ERTOS)和嵌入式分时操作系统。实时操作系统是指系统能及时响应外部事件的请求,在确定的时间内对事件进行处理,并控制所有任务协调一致运行的操作系统。实时操作系统对响应时间有着严格的要求,绝对不能错过该时限要求,否则就会引起严重的错误。而分时操作系统则按照相等的时间片(time slicing)轮流调度进程执行,在执行的时间上并没有实时操作系统要求的那么严格,错过任务执行的最后截止期限或执行时序上的偏差,并不会造成系统的崩溃,带来灾难性的后果。

  通常按照对截止期限(Deadline)要求的不同,嵌入式实时操作系统又可以分为硬实时系统(Hard Real-time OS)和软实时系统(Soft Real-time OS)。硬实时系统是指对系统响应时间有着严格的要求,在任务的截止期限内必须及时响应,绝对不能错过任务处理的截止期限,否则就会引起系统崩溃或者导致灾难性后果。软实时系统是指系统任务一般能够在截止期限到达前得到处理,但是如果系统响应时间错过处理的截止期限,它并不会导致系统崩溃或出现致命的错误。

  1998年,Bernat和Burns两位科学家又提出弱硬实时(Weakly Hard Real-time)的概念[9],即实时任务可以错过截止期限,但任务错过的截止期限必须可预知且被限制在一定的时间范围内。从定义上看,弱硬实时能够科学地定义软实时任务的实时特性及实时要求,是对软实时系统的细化和发展。两者相似之处都允许系统中的实时任务错过截止期限,而不同之处在于弱硬实时系统在软实时系统的基础上加了一些对截止期限的限制,规定了任务错过的截止期限数必须可预知且被限定在一定的范围之内。弱硬实时系统的优点就在于能够对软实时系统中实时任务“软”的程度进行定性,同时虽然弱硬实时系统对任务在单个周期中的特性要求是“软”的,但从任务窗口的角度来看,弱硬实时系统对任务的要求又是“硬”的,即任务错过的截止期限必须可预知且被严格限制。

  目前国内外常见的嵌入式操作系统主要有以下几种:

  1) Windows CE

  Windows CE是美国Microsoft公司专门为各种移动和便携式消费类电子产品等嵌入式应用系统设计的一款32位高性能微内核结构的多任务多用户的操作系统。它具有一个简洁高效的基于完整优先权的可抢占式操作系统内核[10],支持强大的通信和图形实现功能,能够适应广泛的系统需求。Windows CE不需要任何特定的硬件结构,实际的硬件结构完全由用户根据需要自由设计。现在Microsoft公司又推出了针对移动通信产品应用的Windows Mobile操作系统,占据了很大的市场份额。

  2) VxWorks

  VxWorks是美国WindRiver公司于1983年设计开发的一种具有工业领导地位的高性能实时操作系统[21]。VxWorks采用一种微内核结构(最小体积<8KB),包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分,为用户提供高效的实时多任务管理与调度的能力、微秒级的中断处理能力、系统资源之间灵活的通信机制,并且具有优先级排队和循环调度的能力。VxWorks支持多种体系结构的处理器,如X86、i960、Sun Sparc、Motorola、MC68xxx、ARM、Power PC等,和广泛的工业标准,如POSIX1003.b实时扩展。此外,VxWorks还支持多种物理介质标准和完整的TCP/IP网络协议,支持多处理器并行工作,具有快速多任务切换、抢占式任务调度、任务间通信方式多样化的特点,并且完全符合ANSIC的标准,是目前应用最为广泛、市场占有率最高的实时系统之一。

  3) μC/OS-II

  μC/OS-II是一款专门为计算机嵌入式应用而设计的基于静态优先级的抢占式调度的多任务实时操作系统,是一种免费且开源的操作系统。μC/OS-II系统采用MicroWindow图形系统。由于μC/OS-II不支持文件系统,不支持驱动程序和应用程序的模块加载,因此在进行系统开发时,内核和驱动程序以及应用程序都是集中编译的。经过十多年的应用和修改,已经被移植到多种处理器平台上。μC/OS-II由于内核小巧,占用空间小,执行效率高,实时性能优良和具有较强的可扩展性,广泛应用于航空航天等领域。

  4) QNX

  QNX是加拿大QNX Software System公司于1980年开发的一款可扩展的分布式微内核嵌入式实时操作系统。它部分遵循POSIX标准,如POSIX.1(程序接口)和POSIX.2(Shell和工具)以及POSIX.1b(实时扩展)。用户可以把应用程序与内核直接编译在一起,生成一个单一的多线程映像。QNX提供POSIX.1b标准进程调度:32个进程优先级、基于优先级的抢占式进程调度,其进程在独立的地址空间运行。此外,QNX内核非常小巧(QNX4.x大约为12Kb)而且运行速度极快,但是QNX不能很好支持GUI系统,目前市场占有量不是很大。

;

《ARM 嵌入式系统编程与优化》之 Linux/ARM 嵌入式平台

Linux/ARM 嵌入式平台是《ARM 嵌入式系统编程与优化》的第一章。

好好学学硬件,然后深入一下 Linux,修炼好自己的内功。

 

ARM 处理器不是独立芯片产品,而是具有多样性和异质性嵌入式片上系统(SOC)的集成部件,是可以针对各种特定产品实现定制化的部件。

 

除了处理器内核外,典型的片上系统还包含:

  • 一系列不同的存储接口(例如同步动态随机存储器、闪存等)
  • 通信接口(USB、蓝牙、WiFi 等)
  • 图形、视频专用处理器(例如图形处理单元,GPU)

 

ARM 处理器包含了片上系统的“计算”部分。

 

Linux 大大促进了不同嵌入式平台间的代码开发和代码重用,成为了一个标准的嵌入式操作系统。

 

 

程序员必须编写低抽象水平的代码,只有这样,程序才能知道是底层处理器技术。这通常被称为性能优化或代码优化,在高性能计算领域是很常见的。

 

本书将用到几个应用程序的例子,其中包括:

  • 图像变换
  • 分形生成
  • 图像卷积
  • 以及一些计算机视觉任务

 

解释 ARM 和 RISC 的字面含义?

ARM 代表“高级精简指令集机器”,RISC 代表“精简指令集计算机”。

 

RISC 的优势是什么?

RISC 是一门设计哲学,它将处理器原生语言或者说指令集设计成极简指令表,这就要求处理器通过执行大量简单指令来执行一个程序。

这种方法的优势是:相对于处理器具有独立的指令来执行更多工作,既是一个程序需要执行 N 次更简单指令,简单指令的执行速度也比复杂指令平均快 N 倍,并提供了更好的整体性能。

 

RISC 的指令类型有哪些?

RISC 指令一般严格分为三种主要类型:

  • 算术运算指令:执行任何实际数据计算的唯一指令类型
  • 存储指令
  • 控制指令

存储指令和控制指令需要必要开销来实现与外部存储器交换数据以及实现有数据依赖的行为。

存储器指令和控制指令平均会比算术运算指令花更多的时间。

虽然取决于程序的存储访问模式和处理器存储层次结构的性能,但是,特别的是存储指令,算术运算指令的执行速度一般比它快 10~20 倍。

ARM 编程

可以用各种高级语言编写 ARM 处理器。

一些 ARM 处理器本身还可以执行 Java 字节码。

如果讲究代码性能,一般采用 C 语言编程。

 

ARM 体系架构

 

ARM 通用寄存器

状态寄存器

内存寻址模式

GNU ARM 汇编

 

 

性能受影响的因素,包括:

  • 执行的指令数
  • 数据依赖和分支预测失误导致的延迟
  • 防止多个问题的数据依赖和资源约束
  • 缓存失效导致的延迟

包括缓存失效率在内的所有这些因素是可以改变的——通过修改算法的汇编代码来改善性能。

 

代码优化目标

 

减少执行指令数

降低平均 CPI

 

性能界限

受计算限制的,意味着性能受到可以被分派到处理器的内部功能单元的操作数量限制;存储器界限,意味着性能受到存储器带宽限制。

基本指令集

  • 整型算术指令
  • 按位逻辑指令
  • 移位指令
  • 移动指令
  • 加载和存储指令
  • 比较指令
  • 分支指令
  • 浮点指令

 

以上是关于嵌入式操作系统与嵌入式处理器的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式Linux开发的前世与今生——基本概述

Xilinx Zynq-7000嵌入式系统设计与实现 学习教程

Xilinx Zynq-7000嵌入式系统设计与实现 学习教程

嵌入式系统的特点

fpga与单片机,嵌入式的区别,感谢

CH9434 嵌入式Linux与安卓系统驱动移植和使用教程