ARM微处理器概述

ARM微处理器概述
ARM微处理器概述

ARM微处理器概述

ARM微处理器概述

ARM公司简介

ARM于1990年11月在英国伦敦成立,前身为Acorn['eik?:n]计算机公司Advance RISC Machines [m?'?i:n] (ARM)

全球领先的16/32位嵌入式RISC微处理器解决方案供应商。

ARM公司是知识产权(IP Intellectual [,int?'lektju?l, -t?u?l] Property ['pr?p?ti])公司,本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。

目前,全世界有几十家著名的半导体公司都使用ARM公司的授权,其中包括摩托罗拉、IBM、Intel、SONY、NEC、LG、ATMEL等,从而保证了大量的开发工具和丰富的第三方资源,它们共同保证了基于ARM处理器核的设计可以很快投入市场。

ARM公司已成为移动通信、手持设备、多媒体数字消费嵌入式解决方案的RISC标准。

ARM微处理器的特点

采用RISC架构的ARM微处理器一般具有如下特点:

●体积小、低功耗、低成本、高性能;

●支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;

●大量使用寄存器,指令执行速度更快;

●大多数数据操作都在寄存器中完成;

●寻址方式灵活简单,执行效率高;

●指令长度固定。

ARM体系结构

ARM体系结构的版本

ARM指令集体系结构,从最初开发至今已有了重大改进,而且将会不断完善和发展。为了精确表达每个ARM实现中所使用的指令集,到目前ARM体系结构共定义了7个版本,以版本号v1~v7表示。

1. 版本1(v1)

基本数据处理指令(不包括乘法)。

字节、字以及半字加载/存储指令。

分支(branch [brɑ:nt?, br?nt?])指令,包括用于子程序调用的分支与链接(branch-and-link)指令。

软件中断指令,用于进行操作系统调用。

26位地址总线。

使用此版本的处理器核:ARM1

2. 版本2(v2)

与版本1相比,版本2增加了下列指令:

乘法和乘加指令(multiply ['m?ltiplai] & multiply-accumulate)。

支持协处理器。

原子性(atomic [?'t?mik])加载/存储指令SWP和SWPB(稍后的版本称v2a)。

FIQ中的两个以上的分组寄存器。

使用此版本的处理器核:ARM2 v2

ARM2aS、ARM3 v2a

3. 版本3(v3)

版本3较以前的版本发生了大的变化,具体改进如下:

推出32位寻址能力。

分开的CPSR(current program status register ['red?ist?],当前程序状态寄存器)和SPSR(saved program status register,备份的程序状态寄存器),当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。

增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。

增加了MRS指令和MSR指令,用于完成对CPSR和SPSR寄存器的读/写;修改了原来的从异常中返回的指令。

使用此版本的处理器核:ARM6、ARM600、ARM610

ARM7、ARM700、ARM710

4. 版本4(v4)

版本4在版本3的基础上增加了如下内容:

有符号、无符号的半字和有符号字节的load和store指令。

增加了T变种,处理器可工作于Thumb状态,在该状态下,指令集是16位压缩指令集(Thumb指令集)。

增加了处理器的特权模式。在该模式下,使用的是用户模式下的寄存器。

另外,在版本4中还清楚地指明了哪些指令会引起未定义指令异常。版本4不再强制要求与以前的26位地址空间兼容。

使用此版本的处理器核:

ARM7TDMI、ARM710T、ARM720T、ARM740T v4T

Strong ARM、ARM8、ARM810 v4

ARM9TDMI、ARM920T、ARM940T v4T

5. 版本5(v5)

与版本4相比,版本5增加或修改了下列指令:

提高了T变种中ARM/Thumb指令混合使用的效率。

增加了前导零计数(CLZ)指令。

增加了BKPT(软件断点)指令。

为支持协处理器设计提供了更多的可选择的指令。

更加严格地定义了乘法指令对条件标志位的影响。

使用此版本的处理器核:

ARM9E-S v5TE

ARM10TDMI、ARM1020E v5TE

6. 版本6(v6)

ARM体系版本6是2001年发布的。该版本在降低耗电的同时,还强化了图形处理性能。通过追加有效多媒体处理的SIMD(single instruction multiple datastream,单指令流,多数据流)功能,将语音及图像的处理功能提高到了原机型的4倍。ARM体系版本6首先在2002年春季发布的ARM11处理器中使用。除此之外,v6还支持多微处理器内核。表2.1给出了ARM处理器核使用ARM 体系结构版本的情况。

使用此版本的处理器核:

ARM11、ARM1156T2-S、ARM1156T2F-S、ARM1176JZF-S、ARM11JZF-S

7. 版本7(v7)

ARM体系版本7是2005年发布的。该版本扩展了130条指令的THUMB-2指令集;具有NEON媒体引擎,该引擎具有SIMD(single instruction multiple datastream,单指令流,多数据流)执行流水线和寄存器堆,可共享访问的L1、L2高速缓冲。Jazelle-RCT技术、TrustZone、AXI高带宽系统总路线。

使用此版本的处理器核:ARM Cortex

ARM体系结构的变种及命名格式

1、Thumb指令集(T变种)

Thumb[θ?m]指令集是将ARM指令集中的一部分指令重新编码形成的一个子集, Thumb指令长度是16位的。使用Thumb指令可以得到比ARM指令更高的代码密度,这有助于减小系统的存储器容量,从而降低系统的成本。另外,对于数据线是8或16位的系统,使用Thumb指令集可以取得好于使用ARM指令集的性能。在ARM体系命名中通用“T”来表示该版本支持Thumb指令集。在ARMv4T中使用v1版Thumb指令集;ARMv5T使用v2版的Thumb指令集。和Thumb v1相比Thumb v2 具有如下特点:

通过对指令的修改,来提高ARM指令和Thumb指令混合使用是的效率。

增加软件断点指令。

严格定义了Thumb乘法指令对条件标志位的影响。

与ARM指令集相比,Thumb指令集具有以下局限性:

完成相同的操作,Thumb指令通常需要更多的指令。

Thumb指令集没有包含进行异常处理时需要的一些指令,异常返回时需要从ARM状态返回。

2 长乘法指令(M变种)

M变种增加了两条用于进行长乘法的ARM指令。其中一条用于实现32位整数乘以32位整数,生成64位整数的长乘法操作;另一条指令用于实现32位整数乘以32位位整数,然后加上32位整数,生成64位整数的长乘加操作。

3 增强型DSP指令(E变种)

E变种包含了一些附加的指令,这些指令用于增强处理器对一些典型的DSP

算法的处理性能。主要包括:

几条新的实现16位数据乘法和乘加操作的指令

实现饱和的带符号数的加减法操作的指令。所谓饱和的带符号数的加减法操作是在加减法操作溢出时,结果并不进行卷绕(Wrapping around),而是使用最大的整数或最小的负数来表示。

进行双字数据操作的指令,包括双字读取指令LDRD、双字写入指令STRD 和协处理器的寄存器传输指令MCRR/MRRC。

Cache预取指令PLD

4 Java加速器Jazelle(J变种)

ARM的Jazelle技术将Java的优势和先进的32位RISC芯片完美地结合在一起。Jazelle技术提供了Java加速功能,可以得到比普通Java虚拟机高得多的性能。与普通的Java虚拟机相比,Jazelle使代码运行速度提高了8倍,而且功耗降低了80%。

Jazelle技术使得程序员可以在一个单独的处理器上同时运行Java应用程序、已经建立好的操作系统、中间件以及其他的应用程序。与使用协处理器和双处理器相比,使用单独得处理器可以在提供高性能的同时,保证低功耗和低成本。

5 SIMD变种(ARM媒体功能扩展)

ARM媒体功能扩展SIMD技术极大地提高了嵌入式应用系统的音频和视频处理器能力,它可使微处理器的音频和视频性能提高4倍。新一代的Internet应用产品、移动电话和PDA等设备终端需要提供高性能的流式媒体,包括音频和视频等。而且这些设备需要提供更加人性化的界面,包括语言输入和手写输入等。这样,就对处理器的数字信号处理能力提出了很高的要求,同时还必须保证低功耗。ARM的SIMD媒体功能扩展为这些应用系统提供了解决方案,它为包括音频和视频处理在内的应用系统提供了优化功能,其主要特点如下:使处理器的音频和视频处理的性能提高了2~4倍。

可同时进行2个16位操作数或者4个8位操作数的运算。

用户可自定义饱和运算的模式。

可进行2个16位操作数的乘加/乘减运算及32位乘以32位的小数乘加运算。

同时8 /16位选择操作。

ARM体系结构的命名格式

ARM体系架构版本号一般命名格式:ARMvN(x)B(x)B…

基本字符串ARMv。

N为ARM指令集版本号,目前是1-7的数字字符。

B为ARM指令集所含变种的字符。由于在ARM体系版本4以后,M变种成为系统的标准部件,所以字符M通常也不单独列出来。

最后使用的字符x表示排除某种功能。

ARM微处理器系列

ARM7微处理器

ARM7采用采用ARMV4T冯·诺依曼(V on-Neumann)结构,数据存储器和程序存储器重合在一起。同时,此结构也被大多数计算机所采用。

ARM7为三级流水线结构(取指,译码,执行),平均功耗为0.6mW/MHz,

时钟速度为66MHz,每条指令平均执行1.9个时钟周期。

ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S(software)、ARM720T(带8K的CACHE、MMU、AMBA接口和写缓冲器)、ARM7EJ。

ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM 处理器核。TDMI的基本含义为:

T:支持16为压缩指令集Thumb;

D:支持片上Debug;

M:内嵌硬件乘法器(Multiplier)

I:嵌入式ICE,支持片上断点和调试点;

如:samsung的s3c44b0x

ARM7 系列微处理器的主要应用领域为:工业控制、Internet 设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。

ARM9微处理器

ARM9采用ARMV4T哈佛(Harvard)结构,程序存储器与数据存储器分开,提供了较大的存储器带宽。同时,大多数DSP都采用此结构。

ARM9为五级流水(取指,译码,执行,缓冲/数据,回写),平均功耗为0.7mW/MHz。时钟速度为120MHz-200MHz,每条指令平均执行1.5个时钟周期。

ARM9系列微处理器核包含ARM9TDMI、ARM920T(Instruction and data caches 16K/16K)(MMUmemory management unit和Cache)、ARM922T(Instruction and data caches 8K/8K)和ARM940T MPU(Memory Protect Unit和Cache)三种类型,以适用于不同的应用场合。

ARM9 系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。

ARM9E微处理器

ARM9E 系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E 系列微处理器提供了增强的DSP 处理能力,很适合于那些需要同时使用DSP 和微控制器的应用场合。

ARM10E微处理器

ARM10E 系列微处理器具有高性能、低功耗的特点,由于采用了新的体系结构(6 级整数流水线,指令执行效率更高),与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50%,同时,ARM10E 系列微处理器采用了两种先进的节能方式,使其功耗极低。

SecurCore微处理器

SecurCore 系列微处理器专为安全需要而设计,提供了完善的32 位RISC 技术的安全解决方案,因此,SecurCore 系列微处理器除了具有ARM 体系结构的低功耗、高性能的特点外,还具有其独特的优势,即提供了对安全解决方案的支持。

StrongARM 微处理器

StrongARM 系列处理器是英特尔旗下的嵌入式处理器,基于ARMV4T 结构,旨在支持WinCE3.0-PocketPC 系统。

Xscale 微处理器

Xscale 处理器是基于 ARMv5TE 体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。它支持 16 位的 Thumb 指令和 DSP 指令集,已使用在数字移动电话、个人数字助理和网络产品等场合。

Xscale 处理器是以前Intel 主要推广的一款ARM 微处理器. 但在2006年11月8日,Marvell 完成了对英特尔公司手机和应用处理器业务部门的收购。根据该项收购协议,英特尔将在2008年6月前为Marvell 制造和供应芯片. ARM Cortex 系列

基于ARMv7版本的ARM Cortex 系列产品由A 、R 、M 三个系列组成,具体分类延续了一直以来ARM 面向具体应用设计CPU 的思路。

Arm Cortex-A8

该处理器是ARM 公司所开发的基于ARMv7架构的首款应用级处理器,其特色是运用了可增加代码密度和加强性能的技术、可支持多媒体以及信号处理能力的NEONTM 技术、以及能够支持Java 和其他文字代码语言的提前和即时编译的Jazelle@RTC 技术。

众多先进的技术使其适用于家电以及电子行业等各种高端的应用领域。

Arm Cortex-R4

该处理器是首款基于ARMv7架构的高级嵌入式处理器,其主要目标为产量巨大的高级嵌入式应用系统,如硬盘,喷墨式打印机,以及汽车安全系统等等。

CortexTM-R4F 处理器简介

该处理器在CortexTM-R4处理器的基础上加入了代码错误校正(ECC)技术,浮点运算单元(FPU)以及DMA 综合配置的能力,增强了处理器在存储器保护单元、缓存、紧密耦合存储器、DMA 访问以及调试方面的能力。

Arm Cortex-M3

该处理器是首款基于ARMv7-M 架构的处理器,采用了纯Thumb2指令的执行方式,具有极高的运算能力和中断相应能力。

Cortex-M3主要应用于汽车车身系统,工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域。目前最便宜的基于该内核的ARM 单片机售价为1美元。

A 应用处理器(Application Processor )R 实时控制处理(Real Time Control )系M 微控制器(Micro Controller )系列

ARM微处理器的应用

1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。

2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。

3、网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。

4、消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。

5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM 技术。手机中的32位SIM智能卡也采用了ARM技术。

ARM微处理器的应用选型

从应用的角度出发,对在选择ARM微处理器时所应考虑的主要问题:

ARM微处理器内核的选择

从前面所介绍的内容可知,ARM微处理器包含一系列的内核结构,以适应不同的应用领域,用户如果希望使用WinCE或标准Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(Memory Management Unit)功能的ARM芯片,ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM 都带有MMU功能。

而ARM7TDMI则没有MMU,不支持Windows CE和标准Linux,但目前有uCLinux等不需要MMU支持的操作系统可运行于ARM7TDMI硬件平台之上。事实上,uCLinux已经成功移植到多种不带MMU的微处理器平台上,并在稳定性和其他方面都有上佳表现。

系统的工作频率

系统的工作频率在很大程度上决定了ARM微处理器的处理能力。

ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz-133MHz。

ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟频率为100MHz-233MHz。

ARM10最高可以达到700MHz。

不同芯片对时钟的处理不同,有的芯片只需要一个主时钟频率,有的芯片内部时钟控制器可以分别为ARM核和USB、UART、DSP、音频等功能部件提供不同频率的时钟。

芯片内存储器的容量

大多数的ARM微处理器片内存储器的容量都不太大,需要用户在设计系统

时外扩存储器.

但也有部分芯片具有相对较大的片内存储空间,如ATMEL的AT91F40162就具有高达2MB的片内程序存储空间,用户在设计时可考虑选用这种类型,以简化系统的设计。

片内外围电路的选择

几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中,称之为片内外围电路.

如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP 协处理器等,设计者应分析系统的需求,尽可能采用片内外围电路完成所需的功能,这样既可简化系统的设计,同时提高系统的可靠性。

ARM体系结构的特点

(1)、RISC型处理器结构

ARM采用RISC结构,在简化处理器结构,减少复杂功能指令的同时,提高了处理器的速度。

考虑到处理器与存储器打交道的指令执行时间远远大于在寄存器内操作的指令执行时间,RISC型处理器采用了Load/Store(加载/存储)结构,即只有Load/Store指令可与存储器打交道,其余指令都不允许进行存储器操作。

同时,为了进一步提高指令和数据的存取速度,RISC型处理器增加了指令高速缓冲I-Cache和数据高速缓冲D-Cache及多处理器结构,使指令的操作尽可能在寄存器之间进行。

(2)、Thumb指令集;

虽然ARM处理器本身是32位设计,但考虑到RISC型处理器的指令功能相对较弱,新型的ARM体系结构中定义了16位的Thumb指令集。

Thumb指令集比通常的8/16位CISC/RISC处理器有更好的代码密度,而芯片面积只增加6%,却可以使程序存储器更小。

(3)、多处理器状态模式;

ARM体系结构定义了7种处理器模式:用户(usr)、快中断(fiq)、中断(irq)、管理(svc)、终止(abt)、未定义(und)和系统(sys),大大提高了ARM处理器的效率。

(4)、两种处理器工作状态;

ARM状态(执行32位ARM指令)和Thumb状态(执行16位Thumb指令)。

(5)、嵌入式在线仿真调试;

ARM体系结构的处理器芯片都嵌入了在线仿真In-Circuit Emulator,ICE ICE-RT逻辑,便于通过JTAG(联合测试行动组(Joint Test Action Group);调试接口)来仿真调试芯片,省去了价格昂贵的在线仿真器。

(6)、灵活方便的接口;

ARM体系结构具有协处理器接口,允许接16个协处理器。既可以使基本的ARM处理器内核尽可能小,方便地扩充ARM指令集,也可以通过未定义指令来支持协处理器的软件仿真。

(7)、低电压功耗的设计。

考虑到ARM体系结构的处理器主要用于手持式嵌入式系统中,ARM体系结构在设计中就十分注意功耗的设计。

ARM嵌入式系统开发综述.

视听研究所 主页:论坛: 所有资料均收集于各网站。 若您认为有关资料不适合公开,请联系newvideo@https://www.360docs.net/doc/e09234937.html, 我们会第一时间删除。 感谢各位网友的无私奉献和支持! 加密时间:2008-2-1 获取更多权威电子书请登录 ARM 嵌入式系统开发综述 ARM 开发工程师入门宝典 获取更多权威电子书请登录 前言 嵌入式系统通常是以具体应用为中心,以处理器为核心且面向实际应用的软硬件系统,其硬件是整个嵌入式系统运行的基础和平台,提供了软件运行所需的物理平台和通信接口;而嵌入式系统的软件一般包括操作系统和应用软件,它们是整个

系统的控制核心,提供人机交互的信息等。所以,嵌入式系统的开发通常包括硬件和软件两部分的开发,硬件部分主要包括选择合适的MCU 或者SOC 器件、存储器类型、通讯接口及I/O、电源及其他的辅助设备等;软件部分主要涉及OS porting和应用程序的开发等,与此同时,软件中断调试和实时调试、代码的优化、可移植性/可重用以及软件固化等也是嵌入式软件开发的关键。 嵌入式系统开发的每一个环节都可以独立地展开进行详细的阐述,而本文的出发点主要是为嵌入式开发的初学者者提供一个流程参考。因为对于初学者在面对一个嵌入式开发项目的时候,往往面临着诸多困难,如选择什么样的开发平台?什么样的器件类型?在进行编译时怎样实现代码优化?开发工具该如何选择和使用?在进行程序调试时应该注意那些问题以及选择什么样的嵌入式OS 等等。希望通过本文,能帮助初学者了解有关ARM 嵌入式系统开发流程。 获取更多权威电子书请登录 目录 前言 (2) 1 嵌入式开发平台 (4) 1.1 ARM的开发平台: (4) 1.2 器件选型 (7) 2 工具选择 (11) 3 编译和连接 (13) 3.1 RVCT的优化级别与优化方向 (16) 3.2 Multifile compilation (21) 3.3调试 (22)

嵌入式系统开发方法综述

嵌入式系统开发方法综述 刘丹 (机械工业仪器仪表综合技术经济研究所,北京市 100055)Liu Dan (Instrumentation Technology & Economy Institute, Beijing 100055) Development Methods of Embedded System Abstract: Embedded systems have particular properties, such as real-time, concurrency, distribution, high reliability,and etc., which lead to large challenges and urgent requirements for corresponding methods and tools when developing such systems. From the view of engineering practice, the paper summarizes what problems developers will face during embedded system design, and what main methods and technologies will be used for resolving such problems. These methods and technologies are called embedded system developing methods. Key words: Embedded System HW-SW Co-Design Method Formal Modeling Method Structural Design Method Object-Oriented Design Method 【摘 要】嵌入式系统的实时性、并发性、分布性和高可靠性等特点使得系统的开发面临巨大挑战,迫切需 要相应开发方法的指导和开发工具的支持。本文从工程实践角度出发,总结在嵌入式系统设计过程中,开发人员会面临哪些主要问题,以及为解决问题而产生哪些主要方法和技术。这些方法和技术被统称为嵌入式系统的开发方法。 【关键词】嵌入式系统 软硬件协同设计方法 形式化建模方法 结构化设计方法 面向对象设计方法 收稿日期:2008-08-01作者简介:刘丹(1977-),女,博士,毕业于中科院沈阳自动化研究所,现就职于机械工业仪器仪表综合技术经济研究所,主要从事工业自动化、控制网络的技术和标准化研究,现负责PROFIBUS PA产品的认证测试工作。 引言 嵌入式系统是指以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用环境对功能、实时性、可靠性、成本、体积、功耗等严格约束的专用计算机系统。嵌入式系统的内容广泛,小到一个芯片,大到复杂的分布式系统都可以称为嵌入式系统,通常以SoC、单片机、单板机、多板式箱式结构、嵌入式PC等形式嵌入到信息家电、数字通信、工业控制、航空航天、医疗设施、军事电子等领域的设备或系统中,作为处理和控制的核心。 嵌入式系统的实时性、并发性、分布性和高可靠性等特点使得系统的开发面临巨大挑战,迫切需要相应的开发方法的指导和开发工具的支持。嵌入式系统开发方法的研究内容包括设计方法论、工程开发技术、以及相应辅助工具的开发。现代的系统开发是一个基于模型(model-based)的,从规约到实现的过程。模型是反映真实世界和系统实现两方面的抽象,帮助开发人员把握应用的最重要特性,是系统分析与验证的 基础,并为软件和硬件的实现要素提供表示视图。因此,系统模型设计在整个开发过程中最为重要。此外,任何工程开发技术都是在一定设计方法基础上提出一系列开发步骤,辅助工具则为这些设计方法和开发技术提供自动或半自动的工具支持。因此,设计方法决定了系统开发过程中的其它分析、验证、实现等方法,或者广义上说,系统的设计方法就是系统的开发方法。 本文从工程实践角度出发,总结在嵌入式系统设计过程中,开发人员会面临哪些主要问题,以及为解决问题而产生哪些主要方法和技术。这些方法和技术被统称为嵌入式系统的开发方法。 1 软硬件“分离”设计方法与软硬件协同设计方法 首先,用户或产品开发决策者要根据对产品性能、体积、开发成本以及上市时间等设计指标的评估,决定系统最终是以电路板式,还是以芯片式的形式实现。一般而言,对性能和体积要求不高,产品数量小,如1~几百个,但要求上市时间早的嵌入式系统,多采用电路板式实现;反之,系统体积小,产品数量大,但对上市时间要求比较松的嵌入式系统,多采用SoC芯片式实现。相应地,对于设计者而言,不同的实现形式一般应用不同的设计方法,包括软硬件“分离”设计和软硬件协同设计。 Review and Research

嵌入式软件开发流程

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

嵌入式软件开发流程

嵌入式软件开发流程

————————————————————————————————作者:————————————————————————————————日期:

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

嵌入式linux系统开发概述

嵌入式linux系统开发概述 作者:谷丰,[email=您可以通 过%3Ca%20href=]gufeng77@https://www.360docs.net/doc/e09234937.html,[/email]" target="_blank">您可以通过 gufeng77@https://www.360docs.net/doc/e09234937.html,和他联系 基于linux的嵌入式系统开发是一个很大的课题,涵盖了从硬件到软件设计的多个领域,由于linux的开源特性,导致开发中可以使用的软件和工具多不胜数,从最底层与系统硬件直接打交道的引导装载程序(bootloader),到linux操作系统的分发版(distribution),再到上层的图形用户界面(GUI)乃至应用程序(application),可供选择的软件实在是太多了,这对开发者来说是一种恩赐。但由于标准的不统一,对于刚刚步入这个领域的初学者来说,很难在短时间内全部了解和掌握它们。本文论述了嵌入式linux开发的基本模式和概念,给出了一些常用的软件和工具,旨在带领他们更快的走入这个奇妙的世界。 1 引导装载程序(bootloader) 引导装载程序通常是在任何硬件上执行的第一段代码,它的主要任务视装载设备的不同而不同。在台式机和笔记本这样的常规系统中,经常存在多个操作系统并存的情况,因此bootloader的主要作用就是选择系统使用何种操作系统来引导。常用的引导程序有LILO或GRUB,通常将它们装入硬盘的主引导记录(Master Boot Record)中,或者装入linux 驻留的磁盘的第一个扇区。 在嵌入式系统中,情况有些不同。首先,嵌入式设备通常需要经常地移 动,考虑到在移动过程中的震动,一般不会采用机械式结构设计的硬盘为存 储设备;而且从成本控制上说,硬盘的价格比较高,除非是需要大容量存储 的场合,硬盘不适合作为嵌入式设备的存储介质。目前采用得比较多的是闪 存设备,闪存设备是与存储设备功能类似的特殊芯片,而且它

嵌入式系统开发工程师

嵌入式系统开发工程师 职业概述: 在家电、手机、各种数码产品等都在向智能化方向发展的今天,嵌入式技术越来越成为当前最热门、最具发展前景的IT应用领域。嵌入式系统开发工程师是嵌入式工程领域的专家,需要有一定的嵌入式软件开发经验和嵌入式硬件开发经验,熟悉ARM或其他微处理器架构或可编程逻辑器件的使用等,当然还要有软件项目的一般开发流程经验。 工作内容: 设计、开发嵌入式系统; 构造嵌入式系统的框架结构、内核原理; 负责编写整体系统设计方案; 分配嵌入式硬件工程师和嵌入式软件工程师工作,并对其进行技术指导; 对客户进行系统技术支持。 职业要求: 计算机、电子等专业,本科以上学历。 2年以上嵌入式软件开发经验和嵌入式硬件开发经验;熟悉ARM或其他微处理器架构或可编程逻辑器件的使用;有软件项目的一般开发流程经验;良好的沟通和团队协作能力。 薪资行情: 一般年薪范围在5万-30万元之间不等。等级不同,嵌入式系统开发工程师的年薪相差很大,初级的嵌入式系统开发工程师一般年薪范围在5万-10万之间,中级的嵌入式系统开发工程师的年薪在10万-20万之间,高级的嵌入式系统开发工程师的年薪在20万-30万之间;具有10年以上工作经验的高级嵌入式系统开发工程师年薪会更高;地域不同,嵌入式系统开发工程师的年薪差距也很大,从全国的薪酬水平来看,上海地区的嵌入式系统开发工程师年薪最高,北京、深圳次之,年薪在10万-30万之间不等,其余地区则低于这个水平。 职业发展路径: 移动通信行业是嵌入式软件最重要的应用领域之一。在3G时代,手机、数字电视、信息家电、网络电话、汽车电子、医疗电子等都是嵌入式软件的重要应用领域。市场上需要的嵌入式人才必须具备C语言编程经验、嵌入式操作系统(主要包括嵌入式Linux、WinCE或Symbian)经验、内核裁剪经验、驱动程序开发经验。高级嵌入式软件开发工程师相关职位要求是:有丰富的嵌入式多任务软件系统分析和设计能力,能独立完成项目系统方案,解决系统故障和问题、精通C 语言应用开发,有良好的编程习惯和风格、良好的文档编写能力和习惯、熟悉项目管理流程。良好的英文阅读能力及较强的学习能力是从事这一领域工作的基础。对嵌入式操作系统做到一专而多能(精通嵌入式Linux,掌握WinCE及Symbian)更会使求职者身价倍增。 嵌入式软件开发工程师 嵌入式硬件开发工程师→产品研发经理 IT项目经理

嵌入式软件开发的几点个人理解

嵌入式软件开发的几点个人理解 一、软件的概念 软件,是一系列按照特定顺序组织的计算机数据和指令的集合。我们日常生活中接触最多的软件大概要算应用软件了。在21世纪的今天,电脑、手机等智能设备进入千家万户,基本上每个现代化的家庭中或多或少拥有一台电脑或一部手机,我们每天都用着电脑或者手机中的应用软件享受着科技带给这个世界的便利。然而软件的概念却并不只是在这些应用软件中,一般来讲,软件被划分为编程语言、系统软件、应用软件,其中系统软件包括操作系统和支撑软件。另外,软件并仅包括可以在广义计算机上运行的电脑程序,还包括与这些电脑程序相关的文档。学术界将软件定义为程序加文档的集合体,确实非常贴切。 对于软件和硬件,这两者之间从来是相互依存,相得益彰的。硬件是实在的,有模有样的。软件是程序性的,是一系列的指令。个人认为,我们其实可以将人的身体与灵魂分别比作硬件和软件,软件的存在必须依附于硬件才能体现软件的价值;而硬件因为有了软件的存在,才具备了更加丰富的功能。 二、软件开发中的编程语言 软件的编程语言有多种、常见的编程语言有Pascal、Python、Ruby、Java、C、C++、C#、Basic、PHP等。这些编程语言各有特点,其中进行嵌入式系统开发常用的语言有C、C++、Java 等语言。 2.1、C语言 C语言是介于汇编语言和高级语言之间的语言,属于高级语言,也称为中级语言,是集汇编和高级语言优点于一身的程序设计语言。于1972年在美国贝尔实验室里问世,早期的C语言主要用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了九十年代,C语言开始进入其他操作系统,并很快在各类大、中、小和微型计算机上得到广泛的应用,成为当代最优秀的程序设计语言之一。 C语言的特点: 1)是一种结构化语言,层次清晰,便于按模块化方式组织程序,易于调试和维护。 2)C语言的表现能力和处理能力极强,不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进行位级别的操作。

嵌入式系统开发综述

嵌入式系统开发综述 11科技1班 学习了一个学期的《嵌入式系统开发》,加上上学期的《嵌入式操作系统》,虽然没能完完全全的掌握其中的奥妙,但也了解了不少。 随着计算机技术的发展,计算机技术逐渐分为两大分支——通用型计算机系统和嵌入式计算机系统。 由于嵌入式计算机系统要嵌入到对象体系中,实现的是对象的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。 通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。而嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。 早期,人们勉为其难地将通用计算机系统进行改装,在大型设备中实现嵌入式应用。然而,对于众多的对象系统(如家用电器、仪器仪表、工控单元……),无法嵌入通用计算机系统,况且嵌入式系统与通用计算机系统的技术发展方向完全不同,因此,必须独立地发展通用计算机系统与嵌入式计算机系统,这就形成了现代计算机技术发展的两大分支。 如果说微型机的出现,使计算机进入到现代计算机发展阶段,那么嵌入式计算机系统的诞生,则标志了计算机进入了通用计算机系统与嵌入式计算机系统两大分支并行发展时代,从而导致20世纪末,计算机的高速发展时期。 从概念上我们知道,嵌入式系统是计算机的一种应用形式,通常

指嵌入在宿主设备中的微处理机系统。它所强调的是隐藏计算机的常见形式,辅助寄宿主设备,使宿主设备的功能智能化。据此,通常把嵌入式系统定义为一种以应用为中心,以计算机为基础,软硬件可以剪裁,适用于系统,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 嵌入式系统有如下共同点: (1)功能专一:专门为某一特定应用系统而设计; (2)结构紧凑:嵌入式系统结构必须特别的紧凑,从而达到小体积,高性能,低成本,低功耗; (3)智能灵活及实时性:即要对不同的情况做出不同的反应,同时必须实时地给出计算的结果并进行实时控制。 它包括硬件和软件两部分。硬件包括处理器、微处理器、存储器、外部设备、I/O端口和图形控制器等;软件部分包括操作系统软件(要求实时和多任务)和应用程序编程。 一百多年前,世界上出现了计算机,随着技术不断发展,计算机系统也飞速的发展、扩散到我们的日常学习生活中来,嵌入式系统的出现不算太早,但也有了30多年的历史。近几年来,计算机、通信、消费电子的一体化趋势日益明显,嵌入式技术已成为一个研究热点。纵观嵌入式技术的发展过程,大致经历四个阶段。 第一阶段是以单芯片为核心的可编程控制器形式的系统,具有与监测、伺服、指示设备相配合的功能。这类系统大部分应用于一些专业性强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制。这一阶段系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简单、价格低,以前在国内工业领域应用较为普遍,但是已经远不能适应高效的、需要大容量存储的现代工业控制和新兴信息家电等领域的需求。

嵌入式软件开发流程

嵌入式软件开发流程
一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌 入式系统的开发主要分为系统总体开发、 嵌入式硬件开发和嵌入式软件开发 3 大部分, 其总 体流程图如图 1.1 所示。
图 1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定 的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬 件和软件都可以实现的功能, 就需要在成本和性能上做出抉择。 往往通过硬件实现会增加产 品的成品,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌 入式操作系统的选择以及开发工具的选择等。 本书在 4.1.5 节对各种不同的嵌入式操作系统 进行了比较,读者可以以此为依据进行相关的选择。比如,对开发成本和进度限制较大的产 品可以选择嵌入式 Linux,对实时性要求非常高的产品可以选择 Vxworks 等。 由于本书主要讨论嵌入式软件的应用开发,因此对硬件开发不做详细讲解,而主要讨论 嵌入式软件开发的流程。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图 4.15 中“软件设计实现”部分所示, 它同通用计算机软件开 发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式 软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多, 为了更好地帮助读者选择开发工具, 下面首先对嵌入 式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择 IBM 的 Rational Rose 等软件, 而在程序开发阶段可以采用 CodeWarrior 下面要介绍的 ADS ( 的一个工具)等,在调试阶段所用的 Multi-ICE 等。同时,不同的嵌入式操作系统往往会有 配套的开发工具,比如 Vxworks 有集成开发环境 Tornado,WindowsCE 的集成开发环境 WindowsCE Platform 等。此外,不同的处理器可能还有对应的开发工具,比如 ARM 的常用 集成开发工具 ADS、IAR 和 RealView 等。在这里,大多数软件都有比较高的使用费用,但 也可以大大加快产品的开发进度,用户可以根据需求自行选择。图 4.16 是嵌入式开发的不 同阶段的常用软件。
图 1.2 嵌入式开发不同阶段的常用软件
嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分, 其中又可以分为编译和调试两 部分,下面分别对这两部分进行讲解。 1.交叉编译 . 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上 执行的代码。在第 3 章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的 CPU 所能识别的 机器代码,由于不同的体系结构有不同的指令系统。因此,不同的 CPU 需要有相应的编译器,而交叉编译 就如同翻译一样,把相同的程序代码翻译成不同 CPU 的对应可执行二进制文件。要注意的是,编译器本身 也是程序,也要在与之对应的某一个 CPU 平台上运行。嵌入式系统交叉编译环境如图 4.17 所示。

嵌入式系统概述

1.嵌入式系统简介 嵌入式系统是以应用为中心,以计算机技术为基础,可根据实际需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求的专用计算机系统。通常情况下,系统装置由嵌入式计算机系统和所应用的被控对象组成。前者是整个嵌入式系统的核心,由嵌入式微处理器、外围硬件设备、嵌入式操作系统和应用软件构成;而后者则用于接收前者发出的控制、监视和管理命令,完成所规定的操作或任务。由此可见,嵌入式技术是结合计算机、电子和半导体等技术精髓,并将其具体应用到各个行业的先进新兴技术。 2. 嵌入式系统的发展与应用 如果问哪种计算机最普及,有人会说是PC机,可实际上嵌入式系统在数量上远远超过了以PC机为代表的通用计算机,只是嵌入式系统一般集成在设备内部,不象PC那样本身是一个独立的系统,配备显示器、键盘、鼠标等标准设备。人们在使用设备时,往往在意的是设备提供的功能,而忽略了在设备内部高速运转、起着核心作用的嵌入式系统,例如在用MP3欣赏音乐的时候,人们只关心音乐的音质、操控方式、系统容量、支持的音乐格式等,有多少人会关心在MP3内部发挥作用的嵌入式计算机呢?可实际上所有的功能都是内部的计算机完成的。早期计算机由电子管组成,体积庞大,主要用于完成复杂的计算任务。随着晶体管计算机的出现,尤其是集成电路在计算机中的应用,计算机体积越来越小、性能越来越强,除了数值计算外,计算机还可以实现数据采集、信息处理、自动控制等功能,将专门设计的计算机集成到传统设备中,可显著提高设备的性能。此时,一种新的计算机类型——嵌入式系统应运而生。嵌入式系统发展之初,因为计算机还是个昂贵的电子设备,所以应用仅限于军事、工业控制等成本不敏感的领域。随着微处理器技术的飞速发展,计算机集成度越来越高,在性能提高的同时,计算机也变得越来越小、越来越廉价,嵌入式系统的进入蓬勃发展时期。现代社会生活中,嵌入式系统无处不在,广泛应用在国防电子、数字家庭、工业自动化、汽车电子、医学科技、消费电子、无线通讯、电力系统等各行各业。嵌入式系统是数字化社会的技术基础,正如中科院院士沈绪榜教授所说,“计算机是认识世界的工具,而嵌入式系统则是改造世界的产物。” 图1给出的是数字手机电路的原理框图,嵌入式系统在手机里完成人机接口、信息管理、设备控制等功能,在多媒体手机中,嵌入式系统还要实现语音记录、视频记录、数码相机、音视频文件播放等多媒体功能。嵌入式系统是数字手机的核心。 图1 语音处理系统结构图 图 2 手机电路原理框图现代社会日益数字化、信息化,嵌入式系统在这样的社会中必将扮演重要的角色。如在日常生活中,将来嵌入式系统不仅存在于电视机、洗衣机、冰箱、洗衣机、手机这些设备里,甚至我们穿的鞋子、戴的帽子、穿的衣服中也装备了计算机系统。1999年,IBM提出了普适计算的概念,指得是随时随地获取信息、处理信息。普

相关文档
最新文档