ARMcotexA8嵌入式原理与系统设计习题答案Word文件下载.docx

上传人:b****7 文档编号:21950061 上传时间:2023-02-01 格式:DOCX 页数:33 大小:64.87KB
下载 相关 举报
ARMcotexA8嵌入式原理与系统设计习题答案Word文件下载.docx_第1页
第1页 / 共33页
ARMcotexA8嵌入式原理与系统设计习题答案Word文件下载.docx_第2页
第2页 / 共33页
ARMcotexA8嵌入式原理与系统设计习题答案Word文件下载.docx_第3页
第3页 / 共33页
ARMcotexA8嵌入式原理与系统设计习题答案Word文件下载.docx_第4页
第4页 / 共33页
ARMcotexA8嵌入式原理与系统设计习题答案Word文件下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

ARMcotexA8嵌入式原理与系统设计习题答案Word文件下载.docx

《ARMcotexA8嵌入式原理与系统设计习题答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《ARMcotexA8嵌入式原理与系统设计习题答案Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。

ARMcotexA8嵌入式原理与系统设计习题答案Word文件下载.docx

良好的平台开放性、可以实现个性化应用设定和与Google应用的无缝结合。

WindowsCE

与Windows系列有较好的兼容性;

能在多种处理器体系结构上运行;

采用模块化设计;

没有开放源代码;

耗费存。

VxWorks

支持多种处理器;

具有先进的网络功能;

具有良好的可靠性、卓越的实时性、高效的可裁剪性。

Nucleus

抢占式多任务操作系统核;

便于移植并且支持多种处理器;

核心代码精简。

uC/OSII

公开源代码;

可移植性强;

可固化、可裁剪;

占先式、多任务;

系统任务;

中断管理;

稳定性和可靠性都很强。

QNX

实时可拓展;

核精简;

运行速度快。

Linux

开源的自由操作系统;

真正的多用户多任务操作系统;

核可剪裁;

实时性好;

网络功能强大;

支持目前多数的处理器;

1.10嵌入式系统工程设计的要点有哪些?

应用需求;

硬件要求;

实时性的实现;

系统功耗;

系统升级方式;

调试方式;

开发环境的选择等。

1.11举出几个嵌入式系统应用的例子,通过查资料和独立思考,说明这些嵌入式系统产品主要由哪几部分组成,每个组成部分用于完成什么功能。

比较典型的例子:

手机。

组成部分:

处理器:

核心处理器;

存:

操作系统,程序运行的存储空间;

闪存:

存放操作系统,文件等;

屏幕:

显示,如果是触摸屏还有输入功能;

按键(非必须):

输入。

第2章

2.1ARM微处理器与技术的应用领域与主要产品有哪些?

举一些生活中常用的ARM处理器应用的例子。

ARM微处理器觉得应用领域有工业控制领域、无线通信领域、网络应用、消费类电子产品、成像和安全产品等。

目前绝大多数的手机、平板采用的处理器都是ARM架构cortex-a系列的处理器,而其cortex-m系列在智能设备也得到广泛应用,小米手环2就是用的cortex-m4的核。

2.2采用RISC架构的ARM微处理器有哪些特点?

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

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

大量使用寄存器;

指令执行速度更快;

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

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

指令长度固定。

2.3ARM核基本版本有哪些?

每个版本都有哪些基本的性能?

核基本版本

基本的性能

V1版本

基本的数据处理指令(无乘法);

基于字节、半字和字的Load/Store指令;

转移指令,包括子程序调用与指令;

供操作系统使用的软件中断指令SWI;

寻址空间:

64MB。

V2版本

乘法和乘加指令;

支持协处理器操作指令;

快速中断模式;

SWP/SWPB的最基本存储器与寄存器交换指令;

V3版本

寻址空间增至32位(4GB);

当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR(CurrentProgramStatusRegister)中;

增加了程序状态保存寄存器SPSR(SavedProgramStatusRegister);

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

增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器;

增加了从异常处理返回的指令功能。

V4版本

有符号和无符号半字与有符号字节的存/取指令;

增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;

完善了软件中断SWI指令的功能;

处理器系统模式引进特权方式时使用用户寄存器操作;

把一些未使用的指令空间捕获为未定义指令。

V5版本

新增带有和交换的转移BLX指令;

新增计数前导零CLZ指令;

新增BRK中断指令;

增加了数字信号处理指令(V5TE版);

为协处理器增加更多可选择的指令;

改进了ARM/Thumb状态之间的切换效率;

V6版本

ThumbTM:

35%代码压缩;

DSP扩充:

高性能定点DSP功能;

JazelleTM:

Java性能优化,可提高8倍;

Media扩充:

音/视频性能优化,可提高4倍。

V7版本

首次采用了强大的信号处理扩展集;

采用了Thumb-2技术;

采用了NEON技术;

支持改良的浮点运算。

2.4ARM微处理器有哪些系列?

它们有什么特点?

微处理器系列

ARM7微处理器系列

调试开发方便;

功耗极低;

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

代码密度高并兼容16的Thumb指令集;

对操作系统的支持广泛;

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

主频最高可达130MIPS。

ARM9微处理器系列

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

提供1.1MIPS/MHz的哈佛结构;

支持32位ARM指令集和16位Thumb指令集;

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

全性能的MMU支持多种主流嵌入式操作系统;

MPU支持实时操作系统;

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

ARM9E微处理器系列

支持DSP指令集;

5级整数流水线;

支持32位ARM指令集和16位Thumb指令集;

支持VFP9浮点处理协处理器;

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

主频最高可达300MIPS。

ARM10E微处理器系列

6级整数流水线;

支持32位ARM指令集和16位Thumb指令集;

支持VFP10浮点处理协处理器;

全性能的MMU,支持多种主流嵌入式操作系统;

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

主频最高可达400MIPS;

嵌并行读/写操作部件

SecurCore微处理器系列

带有灵活的保护单元,以确保操作系统和应用数据的安全;

采用软核技术,防止外部对其进行扫描探测;

可集成用户自己的安全特性和其他协处理器。

StrongARM微处理器系列

集成度高;

在软件上兼容ARMv4体系结构

Xscale处理器

全性能、高性价比、低功耗;

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

Cortex系列处理器

分为Cortex-M、Cortex-R和Cortex-A三类;

Cortex-M系列针对微控制器,在该领域中需要进行快速且具有高确定性的中断管理,同时需将门数和可能功耗控制在最低;

Cortex-R系列针对实时系统,面向深层的嵌入式实时应用;

Cortex-A面向尖端的基于虚拟存的操作系统和用户应用,也叫应用程序处理器

2.5在选择ARM微处理器时要考虑哪些因素?

处理器的基本架构与核版本;

处理器的性能,功耗;

处理器的兼容性;

处理器的价格;

支持的指令格式;

处理器支持的操作系统等因素。

2.6Cortex-A8核结构有哪些组成部分?

每个部分各完成什么功能?

Cortex-A8核有以下结构组成:

指令读取单元完成对指令流进行预测;

指令解码单元对所有ARM指令,Thumb-2指令进行译码排序;

指令执行单元执行所有整数ALl运算和乘法运算,并影响标志位,根据要求产生用于存取的虚拟地址以与基本回写值,将要存放的数据格式化,并将数据和标志向前发送,处理分支与其他指令流变化,并评估指令条件码;

数据存取单元包含了全部L1数据存储系统和整数存取流水线;

L2Cache单元包含L2Cache和缓冲接口单元BIU;

NEON单元单元包含一个10段NEON流水线,用于译码和执行高级SIMD多媒体指令集;

ETM单元是一个非侵入跟踪宏单元,可以对指令和数据进行跟踪,并能对跟踪信息进行过滤和压缩;

处理器外部接口。

2.7三星S5PV210处理器是基于哪种架构的?

它主要有哪些特点?

三星S5PV210处理器基于ARM架构,采用基于ARMV7的Cortex-A8核;

有如下特点:

低功耗,高性能;

主频可达1GHz,具有64/32位部总线结构,32/32KB的数据/指令一级缓存,512KB二级缓存,运算能力可以达到2000DMIPS;

支持LPDDR1,LPDDR2,DDR2类型RAM;

Nandflash,Norflash,OneNand等类型Flash;

支持存储空间最大32G(ROM),最大支持32G的TF卡;

包含强大的硬件编解码功能,建MFC,支持多种格式视频编解码;

支持IIS、AC97和PCM音频接口;

外部总线模块支持4路UART串口,3路IIC总线,2路SPI总线。

2.8ARM集成开发环境RVDS包含哪几个模块?

这些模块各有什么特点?

RVDS包含4个模块:

IDE、RVCT、RVD和RVISS;

IDE:

将软件开发与ARMRealView工具的编译和调试技术结合在一起。

可以用作项目管理器,为ARM目标创建、生成、调试、监视和管理项目。

RVCT:

业界最优秀的编译器,支持全系列的ARM和XSCALE架构,支持汇编、C和C++语言,支持二次编译和代码数据压缩技术,能够生成更小的可执行文件,节省ROM空间。

RVD:

RVD是RVDS中的调试软件,功能强大,支持Flash烧写和多核调试,支持多种调试手段,快速错误定位

RVISS:

RVISS是指令集仿真器,支持外设虚拟,可以使软件开发和硬件开发同步进行,同时可以分析代码性能,加快软件开发速度。

2.9ARM集成开发环境RVDS支持哪些处理器和模拟器?

RVDS支持以下处理器:

ARM7,ARM9,ARM10,ARM11处理器系列;

ARM11MPCore多核处理器;

Cortex系列处理器;

RealViewDebugger中的SecurCore、SC100和SC200处理器;

RVCT中的SecurCoreSC300处理器;

RealViewDebugger中支持FaradayFA526、FA626和FA626TE处理器;

MarvellFeroceon88FR101和88FR111处理器。

RVDS支持以下模拟器:

RealViewARMulator指令集模拟器(RVISS);

指令集系统模型(ISSM);

RTSM;

SoCDesigner。

2.10什么是嵌入式系统的交叉开发环境?

嵌入式系统充当程序的运行环境而非开发环境,因此为了能够开发出适合在嵌入式系统运行的程序,就要使用交叉开发环境。

在一个平台上开发出来在另一个平台运行的程序就是交叉开发。

交叉开发环境就是用来在宿主机(通用计算机,通常为PC或工作站)上面生成可以在目标机(嵌入式系统)运行的程序的开发环境。

2.11GCC交叉编译器的编译流程和执行过程有哪些?

GCC编译常见的错误类型有哪些?

GCC交叉编译的流程如下:

源文件(*.c,*.s等)->

预处理(*.i)->

编译(*.S)->

汇编(*.o)->

(elf可执行文件)->

转换(bin文件)

GCC编译常见的错误类型有:

语法错误;

头文件错误,找不到代码中使用的头文件;

建函数使用错误;

档案库错误,找不到库文件;

未定义的符号错误等

2.12嵌入式系统的交叉开发环境下有哪些调试方法?

有以下调试方法:

ROM仿真、在线仿真、在系统编程、JTAG调试、软件仿真器等。

2.13EclipseforARM开发环境搭建的步骤是什么?

根据本书介绍搭建EclipseforARM开发环境。

安装YAGARTOGCC编译工具;

安装YAGARTO工具;

安装JRE;

安装EclipseforARM;

安装仿真器驱动和仿真器工具软件。

2.14在EclipseforARM开发环境下构建一个工程并且编译调试工程,学会EclipseforARM的使用。

根据教材容自行操作。

第3章

3.1简述Cortex-A8微处理器的几种工作模式。

Cortex-A8处理器有8种模式:

用户模式(usr);

系统模式(sys);

管理模式(svc);

中止模式(abt);

未定义模式(und);

通用中断模式(irq);

快速中断模式(fiq);

监控模式(mon)。

3.2举例说明Cortex-A8微处理器的存储格式。

Cortex-A8处理器支持小端格式和字节不变的大端格式。

此外,处理器还支持混合大小端格式(既有大端格式又有小端格式)和非对齐数据访问。

对指令的读取,则总是以小端格式操作。

3.3简述机器指令LDR与汇编伪指令的区别。

机器指令LDR用于将存储器中的32位的字数据传送到目标寄存器中,使用格式为:

LDR{条件}目的寄存器<

存储器地址>

而LDR伪指令的作用是将一个值加载到目标寄存器中,使用格式为:

LDR目的寄存器=<

立即数>

两者的本质的区别是一个是加载地址中的数据,一个是加载一个立即数。

LDR伪指令补充了MOV指令加载立即数限制的不足。

3.4简述CPSR状态寄存器中各有效位的含义。

条件标志位(N、Z、C、V);

Q标志位(定用于指示增强的DAP指令是否发生了溢出);

IT块(用于对thumb指令集中if-then-else这一类语句块的控制);

J位用于表示处理器是否处于ThumbEE状态;

GE[3:

0](该位用于表示在SIMD指令集中的大于、等于标志);

E位(控制存取操作的字节顺序);

A位(表示异步异常禁止);

控制位(中断禁止位,T位和模式位)。

3.5简述Cortex-A8微处理器的异常类型。

异常类型

说明

复位异常

当复位信号产生时,复位发生处理器放弃正在执行的指令

快速中断异常FIQ

FIQ异常支持快速中断

中断异常IRQ

发生中断,在快速中断过程中中断异常不发生

中止异常

中止是一种异常,用于告知操作系统:

与某个值关联的存访问失效。

软件中断

进入管理模式

监控异常

当处理器执行SMC指令时,核进入监控模式请求监控功能

未定义指令异常

遇到一条处理器或系统协处理器无法处理的指令时进入

3.6什么是寻址?

简述Cortex-A8微处理器的寻址方式。

寻址是根据指令中给出的地址码字段来寻找真实操作数地址的方式;

Cortex-A8支持的寻址方式有以下几种:

寄存器寻址(取出寄存器中的值作为操作数)、立即数寻址(操作数为明确数值)、寄存器移位寻址(对操作数进行移位操作)、寄存器间接寻址(将寄存器中的值作为地址,去改地址中保存的值作为操作数)、变址寻址(在基址寄存器的基础上加上偏移量,然后将该值作为地址取其地址中的值作为操作数)、多寄存器寻址(一次操作传送多寄存器的值)、堆栈寻址(堆栈是一种按特定顺序进行存取)、块拷贝寻址(把一块数据从存储器的某一位置复制到另一位置)、相对寻址(变址寻址的一种变通,由程序计数器(PC)提供基地址,指令中的地址码字段作为偏移量,两者相加后得到操作数的有效地址)等。

3.7编程实现64位加法、64位减法、64位求负数功能,结果放在R1、R0寄存器中。

64位加法:

R2,R3存放第一个64位数据

R4,R5存放第二个64位数据

ADDSR0,R2,R4:

加低32位字

ADCR1,R3,R5:

加高32位字

64位减法

R2,R3存放第一个64位数据(被减数)

R4,R5存放第二个64位数据(减数)

SUBSR0,R2,R4

SBCR1,R3,R5

64位求负数

RSBR0,R2,#0

RSCR1,R3,#0

3.8B指令、BL指令、BLX指令和BX指令用于实现程序流程的跳转,有何异同?

B指令只是做简单的跳转;

BL指令在跳转之前会将当前PC寄存器的值保存在R14寄存器(LR)中,通过LDRPC,LR语句可以返回跳转前的位置;

BLX指令与BL区别在于跳转的时候切换处理器工作状态,在ARM状态和Thumb状态间切换。

3.9简述汇编语言的程序结构。

汇编语言的程序结构由段(section)构成;

段又分为代码段和数据段;

每个汇编程序至少包含一个代码段,零个或多个包含初值的数据段,零个或多个不包含初值的数据段。

3.10ALIGN伪操作的指令的作用是什么?

什么情况下需要伪操作?

在AREA伪操作中有ALIGN属性,它与单独的ALIGN伪操作有什么不同?

定义代码段和数据段的对齐方式。

当某代码段的地址不是4的整数倍的时候需要该伪操作。

在AREA伪操作中ALIGN属性的作用围只限定于AREA申请的区域,而单独的ALIGN作用围为该伪操作后面的所有代码。

3.11如何在C语言程序中嵌汇编程序?

如何在汇编程序中访问C程序变量?

在C语言中使用以下格式来嵌套汇编代码

__asm{

/*汇编1*/

/*汇编2*/

………...

}

在汇编程序中访问C程序变量方式如下:

1)使用IMPORT伪指令声明这个全局变量;

2)使用LDR指令读取该全局变量的存地址,通常该全局变量的存地址存放在程序的数据缓冲池中;

3)根据该数据类型,使用相应的LDR指令读取该全局变量的值,使用相应的STR指令修改该全局变量的值。

3.12程序设计:

使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。

然后再次读取0x40003100上的数据,将数据加1,判断结果是否小于10……周而复始循环。

程序设计如下:

_START:

MAIN:

LDRR0,=0X40003100

LDRR1,[R0]

ADDR1,R1,#1

MOVR2,#10

SUBSR3,R1,R2

MOVLTR3,#0

STRR3,[R0]

BMAIN

第4章

4.1S5PV210微处理器是哪种封装形式?

这种封装有什么优缺点?

S5PV210芯片是584引脚的FCFBGA封装,引脚间距0.65mm,体积为17x17mm。

FCFBGA封装既能容纳较多的管脚,又能保证管脚间距,具有良好的电气性能。

但是对焊装的要求很高,无法手工焊装。

4.2S5PV210微处理器有多少个GPIO端口?

有多少GPIO引脚?

S5PV210微处理器有35组GPIO端口,237个GPIO引脚。

4.3如何对复用的GPIO引脚进行配置?

通过设置该引脚所属组的端口控制寄存器的相应位进行配置其功能,例如GPA0组的第一个端口作为输入端口则只需要将GPA0CON的0-3位设置为0000即可。

寄存器具体地址以与相应位可以查询芯片手册。

4.4端口上拉寄存器的功能是什么?

何种情况下需要上拉?

端口上拉寄存器控制了每个端口的上拉电阻的允许/禁止;

当引脚端口作为输入端口时,需要上拉,用于检测低电平信号。

4.5如何在C程序中给32位的寄存器中的某几位置1而不影响其他位的值?

用位或和移位操作实现,例如将32位整型数据的a位、b位(a、b为整常量)置1,可参考以下代码:

x|=(1<

<

a|1<

b);

4.6如何在C程序中给32位的寄存器中的某几位置0而不影响其他位的值?

用位与和移位操作实现,例如将32位整型数据的a位、b位(a、b为整常量)置0,可参考以下代码:

x&

=~(1<

4.7如何在C程序中编程检测32位寄存器中的某位是否为1?

可以通过位与操作判断,例如判断a位是否为1示例如下:

=(1<

a);

if(x)

{/*该位为1*/}

else

{/*该位为0*/}

4.8如何在C程序中编程检测32位寄存器中的某位是否为0?

可以通过位与操作判断,例如判断a位是否为0示例如下:

x&

if(!

x)

第5章

5.1随机存储器和只读存储器有何区别?

随机存储器数据掉电易丢失;

随机存储器读写时可以从存储器任意地址处进行。

只读存储器数据掉电不丢失。

5.2请解释SRAM、DRAM和SDRAM。

SRAM(StaticRandomAccessMemory)静态随机存储器;

DRAM(DynamicRandomAccessMemory)动态随机存储器;

SDRAM(SynchronousDynamicRandomAccessMemory)同步动态随机存储器。

5.3简述存管理单元的作用。

地址存储单元(MMU)主要有两个作用:

①实现虚拟地址向物理地址的映射,即管理地址重定位;

②管理访问权限。

5.4试描述ARM存储器管理的分页功能和处理流程。

ARM存储管理器将物理地址和虚拟地址都划分一块块的小空间,这种划分成为分页;

CPU访问的地址空间为虚拟地址空间,而存储器对应的是物理地址空间。

当CPU去访问一个虚拟地址空间的时候,如下图所示,MMU会找到该虚拟地址空间的所属页,然后根据预先设置好的对应规则去寻找相应的物理地址的所属页,在物理页的基础上加上偏移量从而完成虚拟地址向物理地址的映射。

一般情况下虚拟地址空间大于物理地址空间,所以有可能多块虚拟地址映射到同一物理地址,也有可能没有映射到物理地址,当用到该虚拟地址时才得到映射。

MMU处理流程

5.5嵌入式系统的初始化过程包括哪些步骤?

嵌入式系统初始化包括两大步:

初始化运

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

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

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

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