嵌入式系统整理.docx

上传人:b****8 文档编号:11400886 上传时间:2023-02-28 格式:DOCX 页数:35 大小:36.80KB
下载 相关 举报
嵌入式系统整理.docx_第1页
第1页 / 共35页
嵌入式系统整理.docx_第2页
第2页 / 共35页
嵌入式系统整理.docx_第3页
第3页 / 共35页
嵌入式系统整理.docx_第4页
第4页 / 共35页
嵌入式系统整理.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

嵌入式系统整理.docx

《嵌入式系统整理.docx》由会员分享,可在线阅读,更多相关《嵌入式系统整理.docx(35页珍藏版)》请在冰豆网上搜索。

嵌入式系统整理.docx

嵌入式系统整理

1.嵌入式系统的定义

一般定义:

以应用为中心,计算机技术为基础,软硬件可剪,以适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

本质定义:

嵌入到对象体系中的专用计算机系统。

2.嵌入式系统的三要素

嵌入式

专用性

计算机系统

3.嵌入式系统的发展历史

1976年,Intel公司推出4位MCS-48单片机,只有1KBROM和64KBRAM。

1980年,Intel公司对MCS-48单片机进行全面完善,推出了8位MCS-51单片机。

1984年,Intel公司又推出了16位8096系列并将其称之为嵌入式微控制器。

1982年,为了高速、实时地处理数字信号,诞生了首枚数字信号处理芯片DSP。

☆:

基于上述单片机的应用多数是基于硬件底层的单线程程序

20世纪90年代后,伴随着网络时代的来临,网络、通信、多媒体技术得以发展,基于硬件底层的单线程程序的单片机已经很难满足这些领域的要求。

32位微处理器开始面向嵌入式系统的高端应用,由于速度快、资源丰富、本身的复杂性、可靠性等,得到了广泛的需求。

4.嵌入式计算机系统与通用计算机系统区别

●嵌入式系统通常是面向特定应用的、高度集成的,应用的多样性决定了硬件平台的多样性。

●大多嵌入式系统都有实时性要求,在高端应用中,为满足应用需求、增强可靠性和便于开发,往往要有实时多任务操作系统的支持。

●嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。

●功耗、成本和可靠性对嵌入式系统有特别重要的意义。

●嵌入式系统和具体应用有机的结合在一起,升级换代和具体产品同步进行,因此嵌入式系统产品进入市场后具有较长的生命周期。

●嵌入式系统本身不具备自主开发能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修改,必须有一套交叉开发工具和环境才能进行开发。

●嵌入式系统工业是不可垄断的高度分散的工业,充满了竞争、机遇与创新,是一个可以大有作为的行业。

5.嵌入式系统的组成

硬件:

处理器/微处理器、存储器、I/O接口、输入/输出设备

软件:

嵌入式操作系统、应用程序

 

6.嵌入式系统的软件组成:

嵌入式应用软件、嵌入式操作系统、硬件抽象层HAL、

板级支持包BSP、设备驱动程序、操作系统的应用程序接口函数API

7.嵌入式软件的主要特点

●软件要求固化存储。

●软件代码要求高质量、高可靠性。

●系统软件(OS)的高实时性是基本要求。

●嵌入式系统软件需求实时多任务操作系统开发平台(RTOS)。

●在嵌入式系统的软件开发过程中,采用C语言将是最佳的选择。

8.嵌入式处理器可以分为以下几大类:

1.嵌入式微处理器(MPU);

2.嵌入式微控制器(MCU,与MPU相比,它的特点是单片化);

3.嵌入式数字信号处理器(EDSP);

4.嵌入式片上系统(SOC)

9.嵌入式操作系统分类

●面向控制、通信等领域的实时操作系统

WindRiver公司的VxWorks、ATI的Nucleus、QNX系统软件公司的QNX、ISI的pSOS等

●面向消费电子产品的非实时操作系统

WinCE、Linux等

10.实时系统的两种类型:

硬件实时系统、软件实时系统

11.基于优先级的内核的2种类型:

不可剥夺型的、可剥夺型内核

12.嵌入式操作系统的特点:

1.可裁剪2.强实时3.统一的接口

4.操作方便、简单、提供友好的图形用户界面GUI

5.提供强大的网络功能6.稳定性,弱交互性

7.固化代码8.良好的移植性

13.WindowsCE:

MicrosoftWindowsCE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。

WindowsCE操作系统的基本核心需要至少200KB的ROM。

它支持Win32API的子集,支持多种的用户界面硬件,同时提供熟悉的开发模式和工具。

WindowsCE有5个主要的模块:

●内核模块、内核系统接口模块、文件系统模块、

●图形窗口和事件子系统模块、通信模块

14.嵌入式Linux:

●优点:

◆Linux是由很多体积小且性能高的微内核系统组成。

◆Linux支持所有标准的因特网协议。

◆Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。

◆传统的嵌入式程序调试和调试工具是用在线仿真器(ICE)实现的。

◆Linux具有广泛的硬件支持特性。

●不足:

◆实时性是嵌入式操作系统的基本要求。

◆Linux内核的所有部分都集中在一起,而且所有的部件在一起编译连接。

◆Linux需要占用较多存储器。

◆提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。

15.嵌入式系统设计流程:

1.需求分析

2.体系结构设计

3.硬件的设计、制作及测试

4.软件的设计、实现及测试(汇编、C、C++)

5.系统集成

6.系统性能测试及可靠性测试

16.ARM——32位RISC结构IP核提供商

●具有大量的寄存器,大多数数据在寄存器中完成;

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

●通过载入和存储指令访问存储器;

●采用固定长度指令格式;

17.RISC和CISC在构架上的区别:

1)指令集的设计上:

RISC构架的指令格式和长度通常是固定的(如ARM是32位的指令)、且指令和寻址方式少而简单、大多数指令在一个周期内就可以执行完毕;

CISC构架下的指令通常是可变的、指令类型很多、一条指令通常要若干周期才可以执行完毕。

由于指令集多少与复杂度上的差异,RISC的处理器可以利用简单的硬件电路设计出指令解码功能,易于流水线实现。

相对的CISC则需要通过只读存储器里的微码来进行解码,CISC因为指令功能与指令参数变化较大,执行流水线作业时有较多的限制。

2)结构设计上:

RISC在是一个载入/存储的构架,

–只有载入和存储指令可以访问存储器;

–数据处理指令只对寄存器的内容进行操作。

为了加速程序的运算,RISC会设定多组的寄存器,并且指定特殊用途的寄存器。

CISC构架:

允许数据处理指令对存储器进行操作,对寄存器的要求相对不高。

 

18.ARM指令集体系结构(版本:

v1-v6)

1.版本1(v1)

该版本包括:

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

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

●分支(branch)指令,包括用于子程序调用的分支与链接(branch-and-link)。

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

●26位地址总线。

2.版本2(v2)

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

●乘法与乘加指令(multiply&multiply-accumulate)

●支持协处理器。

●原子性(atomic)加载/存储指令SWP和SWPB(稍后的版本称v2a)。

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

3.版本3(V3)

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

●推出32位寻址能力。

●分开的CPSR(currentprogramstatusregister,当前程序状态寄存器)和SPSR(savedprogramstatusregister,备份的程序状态寄存器):

Ø当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可以由SPSR来恢复CPSR。

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

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

4.版本4(v4)

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

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

●增加了T变种:

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

●增加了处理器的特权模式。

在该模式下,使用的是用户模式下的寄存器。

另外,在版本4中还清楚地指明了哪些指令会引起未定义指令异常。

版本4不再强制要求与以前的26位地址空间兼容。

5.版本5(V5)

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

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

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

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

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

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

6.版本6(v6)

●ARM体系版本6是2001年发布的,该版本在降低耗电的同时,还强化了图形处理性能。

●通过追加有效多媒体处理的SIMD(singleinstructionmultipledatastream,单指令流,多数据流)功能,将语音及图像的处理功能提高到原机型的4倍。

19.1.ARM体系结构的变种(如:

ARMv4TEJ)

1)T变种

THUMB指令集:

32位ARM指令集的子集,按16位指令重新编码。

–THUMB-1:

ARM体系结构v4的T变种;

–THUMB-2:

ARM体系结构v5的T变种;

2)M变种(增加两条长乘法指令)

–32x32=64bit.提供全64位结果

–32x32+64=64bit.提供全64位结果

3)E变种(增加DSP指令)

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

◆实现饱和的带符号数的加减法操作的指令。

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

◆Cache预取指令PLD。

4)J变种(Java加速器Jazelle)

◆提供比基于软件的JAVA虚拟机(JVM)更高的性能

◆与非JAVA加速核相比,提供8倍JAVA加速性能和降低80%的功耗

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

ARM的SIMD媒体功能扩展:

为应用系统提供包括音频和视频处理在内的优化功能,主要特点如下:

●使处理器的音频和视频处理的性能提高了2-4倍。

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

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

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

●同时8/16位选择操作。

20.2.ARM体系结构版本的命名格式

表示ARM/Thumb体系版本的命名格式由下面几部分组成:

●基本字符串ARMv。

●基本字符串后为ARM指令集版本号,目前是1~6的数字字符。

●ARM指令集版本号后为表示所含变种的字符。

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

●最后使用的字符x:

表示排除某种功能。

ARMv4TEJxP

21.ARM7系列

ARM7系列微处理器:

属于低功耗、32位RISC处理器,适合用于对价位和功耗要求较高的消费类应用。

ARM7微处理器系列具有如下特点:

◆具有嵌入式ICE-RT逻辑,调试开发方便。

(ICE-RT:

ARM处理器内部集成的在线仿真功能模块)

◆极低的功耗,适合对功耗要求较高的应用,如便携式产品。

◆能够提供0.9MIPS/MHz的三级流水线结构。

(分为:

取指、译码、执行)

◆对操作系统的支持广泛,包括WindowsCE、Linux、PalmOS等。

◆指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。

◆主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。

22.

1.ARM7系列微处理器包括如下几种类型的核:

ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。

其中,ARM7TMDI是使用较为广泛的32位嵌入式RISC处理器,属于低端ARM处理器核。

2.ARM9系列

ARM9系列微处理器在高性能和低功耗特性方面提供更好的性能。

具有以下特点:

●5级整数流水线,指令执行效率更高。

●提供1.1MIPS/MHz的哈佛(ARMV4T)结构。

●支持32位ARM指令集和16位Thumb指令集。

●支持32位的高速AMBA总线接口。

●全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。

●MPU支持实时操作系统。

●支持数据Cache和指令Cache,具有更高的指令和数据处理能力。

ARM9E系列微处理器的主要特点如下:

●支持DSP指令集,适合于需要高速数字信号处理的场合。

●5级整数流水线,指令执行效率更高。

●支持32位ARM指令集和16位Thumb指令集。

●支持32位的高速AMBA总线接口。

●支持VFP9浮点处理协处理器。

●全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。

●MPU支持实时操作系统。

●支持数据Cache和指令Cache,具有更高的指令和数据处理能力。

●主频最高可达300MIPS。

3.ARM10E系列

ARM10E系列微处理器具有高性能、低功耗的特点:

•采用新的体系结构:

与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50%;

•采用了两种先进的节能方式:

使ARM10E系列微处理器功耗极低。

ARM10E系列

ARM10E系列微处理器的主要特点如下:

●支持DSP指令集,适合于需要高速数字信号处理的场合。

●6级整数流水线,指令执行效率更高。

●支持32位ARM指令集和16位Thumb指令集。

●支持32位的高速AMBA总线接口。

●支持VFP10浮点处理协处理器。

●全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。

●支持数据Cache和指令Cache,具有更高的指令和数据处理能力。

●主频最高可达400MIPS。

●内嵌并行读/写操作部件

4.StrongARM系列

InterStrongARMSA-1100处理器:

•采用ARM体系结构高度集成的32位RISC微处理器。

•融合了Inter公司的设计和处理技术+ARM体系结构的电源效率;

•采用在软件上兼容ARMv4体系结构、同时采用具有Intel技术优点的体系结构。

应用:

IntelStrongARM处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。

5.Xscale系列

Xscale处理器:

•基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器;

•核心采用Intel的0.18微米工艺制造;

•支持16位的Thumb指令和DSP指令集。

应用:

数字移动电话、个人数字助理和网络产品等场合。

23.ARM体系结构将存储器看作:

从零地址开始的字节的线性组合:

Ø从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。

Ø作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB(232字节)。

ARM体系结构可以采用两种方法存储字数据:

•大端格式:

字数据的高字节存储在低地址;

•小端格式:

字数据的低字节存储在低地址;

ARM默认存储模式:

小端模式。

24.ARM7TDMI处理器有两种工作状态:

◆ARM-32-bit,按字排列的ARM指令集

◆Thumb-16-bit,按半字排列的Thumb指令集

ARM7TDMI核的工作状态可以通过BX指令(分支和交换指令)在ARM状态和Thumb状态之间切换。

但ARM处理器开始执行代码时,应该处于ARM状态。

工作状态的切换不会影响处理器的工作模式和相应寄存器中的内容

 

25.ARM处理器有7种工作模式:

●用户模式(usr):

正常的程序执行模式,执行一般的应用程序;

●系统模式(sys):

支持操作系统的特殊用户模式(运行具有特权操作系统任务)

●管理员模式(svc):

操作系统的保护模式.

●快速中断模式(fiq):

由外部触发FIQ管脚,支持高速数据传输或通道处理

●中断模式(irq):

由外部触发IRQ管脚,用于通用中断处理

●中止模式(abt):

数据或指令预取出现错误或异常,支持虚拟内存和/或内存保护

●未定义模式(und):

支持硬件协处理器的软件仿真

●除了用户模式外,其他模式均可视为特权模式;除去用户模式、系统模式以外的视为异常模式。

可借助软件改变ARM工作模式。

26.ARM有37个32位长的寄存器,包括31个通用寄存器、1个CPSR、5个SPSR。

在任何时刻,只有16个通用寄存器(R0~R15)和一个或者两个状态寄存器对处理器是可见的

27.通用寄存器:

R0~R15,分为三类:

R0~R7:

未分组寄存器;在所有的运行模式下,这类寄存器指向同一物理寄存器。

特别注意数据出现破坏的可能性。

R8~R14:

分组寄存器;每次所访问的物理寄存器与处理器当前的运行模式有关。

R15:

程序计数器PC

28.程序状态寄存器PSR

•ARMPSR:

包含1个当前程序状态寄存器(CPSR),5个程序状态保存寄存器SPSR。

处理器在所有工作模式都可以访问CPSR,不同模式的CPSR对应同一个物理寄存器:

–CPSR:

用来标示(或设置)当前运算的结果等;

–SPSR:

当异常发生时,用于保存CPSR的状态,用于从异常退出时恢复CPSR。

每种异常模式都有一个SPSR,对应不同物理寄存器。

但用户模式和系统模式没有SPSR。

•即:

这些寄存器的功能是:

–保存当前操作信息

–控制允许和禁止中断

–设置处理器操作模式

29.程序状态寄存器

30.异常中断响应过程:

1在相应的链接寄存器LR(R14_)中保存当前指令的下一条指令的地址;

2将CPSR复制到相应的SPSR中;

上述过程:

保留返回信息

3强制使CPSR模式位置成对应异常类型的值

4强制使程序计数器PC指向相应异常向量,取下一条指令

5设置CPSR中的中断禁止位,禁止中断发生

31.异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:

1、将连接寄存器LR的值减去相应的偏移量后送到PC中。

2、将SPSR复制回CPSR中。

3、若在进入异常处理时设置了中断禁止位,要在此清除。

可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。

因此:

基于ARM微处理器的设备上电时,ARM处理器的初始状态为:

ARM状态、管理模式、复位异常。

32.ARM微处理器的指令集:

是加载/存储型的,即:

–指令集仅能处理寄存器中的数据,处理结果必须放回寄存器;

–对系统存储器的访问需要通过专门的加载/存储指令来完成。

33.ARM指令集主要包括

–数据处理指令分支指令

–存储器访问指令程序状态寄存器处理指令

–协处理器指令异常中断产生指令等。

Thumb指令集主要包括

–数据处理指令分支指令

–加载/存储寄存器指令加载/存储乘法指令等

34.堆栈指针指向最后压入的堆栈的有效数据项,称为满堆栈;

堆栈指针指向下一个待压入数据的空位置,称为空堆栈。

35.常见的的ARM编译开发环境有两种:

1.由GNU的汇编器as、交叉编译器GCC和链接器ld等组成的IDE开发环境。

2.由ARM公司开发的ADS/SDTIDE,使用CodeWarrior的编译器。

36.在ARM汇编语言中,

伪操作:

ARM汇编语言程序里的一些特殊指令助记符,主要是为完成汇编程序做各种准备工作,在源程序进行汇编时由汇编程序处理,而不是在程序运行期间由CPU执行。

伪指令:

ARM汇编语言程序里的特殊指令助记符,在处理器运行期间不执行,它们在汇编时将被相应的机器指令代替成ARM或Thumb指令。

宏指令:

是一段独立的程序代码,可插入到源程序中,通过伪操作来定义

37.5)ENTRY

ENTRY伪操作用于指定程序的入口点。

一个程序中至少要有一个ENTRY,但是一个源文件中最多只有一个ENTRY

38.寄存器的使用规则

必须满足以下规则:

1)子程序间通过寄存器R0~R3来传递参数。

2)在子程序中,使用寄存器R4~R11来保存局部变量。

3)寄存器R12用于子程序间scratch寄存器,记作IP。

4)寄存器R13用于数据栈指针,记作SP。

5)寄存器R14称为连接寄存器,记作LR。

寄存器R15是程序计数器,记作PC,它不能做其他用途

39.参数传递规则

(1)参数个数可变的子程序参数传递规则

对于参数个数可变的子程序,当参数个数不超过4个时,使用寄存器R0~R3来传递参数,当参数超过4个时,使用数据栈传递参数。

•参数传递时,将所有参数看作存放在连续内存字单元的字数据,依次将各字数据传送到R0,R1,R2,R3。

•若参数多于4个,将剩余的字数据传送到数据栈,入栈顺序与参数顺序相反。

(2)参数个数固定的子程序参数传递规则

如果系统包括浮点运算的硬件部件,浮点参数将按照下面的规则传递:

•各个浮点参数按顺序处理。

•为每个浮点参数分配FP寄存器。

分配的方法是:

–满足该浮点参数需要,且编号最小的一组连续FP寄存器,第一个整数参数,通过寄存器R0~R3来传递,其他参数通过数据栈传递。

(3)子程序结果返回规则

●结果为一个32位整数时,可以通过寄存器R0返回。

●结果为一个64位整数时,可以通过寄存器R0和R1返回,依次类推。

●结果为一个浮点数时,可以通过浮点运算部件的寄存器f0、d0或者s0来返回。

●结果为复合型的浮点数时,可以通过寄存器f0~fN或者d0~dN来返回。

●对于位数更多的结果,通过内存来传递。

40.armcc编译器的内嵌汇编器支持ARM指令集,tcc编译器的内嵌汇编支持Thumb指令集

41.内嵌汇编的指令用法

1内嵌汇编指令中,作为操作数的寄存器和常量可以是表达式,这些表达式可以是char、short或int类型,而且这些表达式都是作为无符号数进行操作。

2在内嵌汇编中使用物理寄存器有以下限制:

•不能直接向PC寄存器赋值,程序跳转只能使用B或BL指令实现。

•通常内嵌的汇编指令中不要指定物理寄存器,因为这可能会影响编译器分配寄存器,进而影响代码的效率。

3在内嵌汇编指令中,常量前面的“#”可以省略。

4对于标号,C程序中的标号可以被内嵌的汇编指令使用,但是只有指令B可以使用C程序中的标号,指令BL则不能使用。

5编译时,所有的内存分配均由C编译器完成,分配的内存单元通过变量供内嵌汇编器使用,内嵌汇编器不支持内嵌汇编程序中用于内存分配的伪指令。

6在内嵌的SWI和BL指令中,除了正常的操作数域外,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1