《嵌入式ARM基础》习题_第1页
《嵌入式ARM基础》习题_第2页
《嵌入式ARM基础》习题_第3页
《嵌入式ARM基础》习题_第4页
《嵌入式ARM基础》习题_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《嵌入式ARM基础》习题

第一章

什么是嵌入式操作系统

答:嵌入式系统是以应用为中心,以计算机技术为基础,软/硬件可裁减,功能。可

靠性,成本,体积,功耗要求严格的专用计算机系统。

与通用计算机相比,嵌入式系统有哪些特点

答(1).嵌入式系统通常是面向特定应用的;

(2).嵌入式系统是将计算机技术,半导体技术和电子技术与各行各业的具体应用相结合的后

的产物,是一门综合技术学科;

(3).嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,

因此嵌入式产品一旦进入市场,就有较长的生命周期;

(4).为了提高执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本

身中,而不是存储于磁盘等载体中;

(5).嵌入式系统本身不具有自主开发能力,即使设计完成以后用户通常也不能对其中的程序

功能进行修改,必须有一套开发工具和环境才能进行开发。

根据嵌入式的复杂程度,嵌入式系统可分为哪4类

答:1.单个微处理器;

2.嵌入式处理器可扩展系统;

3.复杂的嵌入式系统;

4.在制造或过程控制中使用的计算机系统;

举例介绍嵌入式处理器有哪几类

答:1.嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU);

2.嵌入式微控制器;(EmbeddedMicrocontrolIerUnit,EMCU)

3.嵌入式DSP处理器(EmbeddedDigitalSignaIProcessor,EDSP);

4.嵌入式片上系统(EmbeddedSystemonChip,EsoC);

从硬件系统来看,嵌入式系统由哪几个部分组成画出简图。

电源模块

Flash

微处埋器

MPU

时钟

RAM

复位

ROM

外设

USB

LCD

keyboard

other

.嵌入式系统中,非数值数据编码主要包括哪几种

答:1.字符表示;

2.汉字编码;

3.语音编码;

若在嵌入式系统采用CRC码进行信息传输,接收端接收到的码字为131011,已知生成多项

式g(x)=1011,问收到的码字是否正确出错的是哪一位

解:收到的码字不正确;出错的是第4位。

方法:(将收到的码字与生成多项式相除,所得结果为0011。对“CRC出错模式(G(x)=1011)n

可查找出出错位为第四位)。

第三章

编写1+2+3+***+100的汇编程序c

AREAEXAMPLE1,CODE,READONLY;定义一个代码段,名称为

;EXAMPLE1

ENTRY;入口

MOVRO,#0;给R0赋值为0

MOVR1,#0;用R1来存放「100的总和,初

;始化为0

STARTADDRO,RO,#1;用来判断终止的,每次加1

ADDR1,R1.R0;从1加到100

CMPRO,#100;执行R0-100的操作,但不保存,

;只影响CPSR的值

BLTSTART;带符号数小于时跳转到START处

;执行

STOP

BSTOP;死循环

END

如何实现128位数的减法,请举例说明。

AREAEXAMPLE2,CODE,READONLY

ENTRY

START

SUBSR5,R5,R9

SBCSR4,R4,R8

SBCSR3,R3,R7

SBCSR2,R2,R6

STOP

BSTOP

END

将存储器中起始地址M1处的4个字数据移动到M2处。

AREAEXAMPLE2,CODE,READONLY

ENTRY

LDRRO,=0X10;把地址0X10赋给RO

LDRR5,-0X20;把地址0X20赋给R5

START

STMIARO,{R1-R4);把2到R2的值依次赋给RO为首地址

;的内存单元中,每次赋完一次值,R0自

;动加1

LDMIAR5,(R1-R4J;把国到R4的值依次赋给以R5为首地

;址的内存单元中,R5每次自动加1

STOP

BSTOP;死循环

END

参考CPSR寄存器中各标志位的含义,使处理器处于系统模式。

AREAEXAMPLE2,CODE,READONLY

ENTRY

START

MOVRO,#0X1F;给川赋值,2蝌为11111

MSRCPSR_c,RO;把CPSR的条件位置1

STOP

BSTOP:死循环

END

用跳转指令实现两段程序间的来回切换。

AREAEXAMPLES,CODE,READONLY

ENTRY

BLa;跳到a对RO,R1,赋值

START

CMPRO,R1;比较RO,R1的值

BNEb;不等是跳转到b

BEQSTOP;相等时跳转到STOP

a

MOVRO,#3;对RO,R1赋值

MOVR1,#2

MOVR15,R14:返回

b

ADDR1,R1,#1;R1自加1

BSTART;跳转到START

STOP

BSTOP;死循环

END

第四章

什么是伪指令和伪操作在ARM汇编中有哪几种伪指令

答:在ARM汇编语言程序中有些特殊助记符,这些助记符与一般指令的助记符的不同之

处在于没有相对应的操作码或者机器码,通常称这些特殊指令助记符卫伪指令,他们多完成的

操作成为伪操作;

在ARM汇编中,有如下几种伪指令:

(1)符号定义伪指令;

(2)数据定义伪指令;

(3)汇编控制伪指令;

(4)信息报告伪指令;

(5)宏指令及其他伪指令。

如何定义寄存器列表,试举一个使用寄存器列表的例子,要求实现4个字的内存复制。

答:AREAEXAMPLE1,CODE.READONLY

ENTRY

LDRRO,=OXFF:把地址OXFF赋给RO

LDRR5,=OXOF;把地址OXOF赋给R5

START

PBLOCKRLIST{R1-R4}:把R1-R4定义为PBLOCK

STMIARO,PBLOCK;把R1到R2的值依次赋给

;R0为首地址

;的内存单元中,每次赋完一次

;值自动加1

LDMIAR5,PBLOCK;把2到R4的值依次赋给以R5

;为首地址的内存单元中,R5每

;次自动加1

STOP

BSTOP;死循环

END

参考CPSR寄存器中各标志位的含义,使处理器处于系统模式。

AREAEXAMPLE2,CODE,READONLY

ENTRY

START

MOVRO,#0x1F

MSRCPSR_o,RO

STOP

BSTOP

END

如何定义一个宏,宏与子程序的区别是什么

答:宏的格式为:

MARCO和MEND

[$标号]宏名〔$参数1,$参数2…一]

指令序列

MEND

MARCO表示一个宏定义的开始,MEND表示一个宏的结束,MARCO和MEND前呼后应可以

将一段代码定义为一个整体,又称宏,然后在程序中就可以在程序中通过宏的名称及参数调用该

段代码。

宏指令可以重复使用,这一点的使用方式与子程序有些相似,子程序可以节省存储空间,提

供模块化的程序设计。但使用子程序机构时需要保存/恢复现场,从而增加了系统的开销,因此,

在代码传递的参数较多并且比较短时,可以使用宏代替子程序,宏在被调用的地方展开。

汇编中如何定义一个段,段有几种属性

答:AREA用于定义一个代码段,数据段,或者特定属性的段。

段的几种属性如下:

READONLY表示只读属性;

READWRITE表示本段可读写:

CODE定义代码段;

DATA定义数据段;

ALIGN二表达式的对齐方式为2的表达式次方;;

COMMON:定义一个通用段,这个段不包含用户代码和数据。

在一个汇编源文件中如何包含另一个文件中的内容

答:通常可以使用GET/INCLUDE指令,在某源文件中定义一些宏指令,用MAP和FIELD

定义结构化数据结构类型,用EQU定义常量的符号名称,然后用GET/INCLUDE将这个源文件

包含到其他源文件中。

分别编写一个函数和一个宏,实现字符串的复制.

MACRO

COPY$P1,$P2;定义一个宏

$P1DCB"HELLO";分配一个字节的空间,并初始化为一个

;字符串

$P2B"WORLD!";同上

LDRRO,=$P1的首地址加载到RO

LDRR6,=$P2;把P2的首地址加载到R1

LDRIARO,[R1-R5];把R0每载一次,自加一次

;实现把P1加载到RO

STRIAR6,[R1-R5];同理(上)

MEND

AREACOPY,CODE,READONLY

ENTRY

START

MACROSTR1,STR2;调用宏

BSTART;死循环

END

解释归纳变量,同族的归纳变量及基本的归纳变量。

4.8试将下面这段C代码翻译为等效的汇编代码:

intFactorial(int)要有以下几个特点:具

有大量的指令和寻址方式;

大多数程序只使用少量的指令就能够运行。

绝大多数嵌入式处理器:精简指令系统计算机(RISC)有一个精简的指令系统。从而提高了微

理器的效率,但需要更复杂的外部程序,也就是把在处理器层没有完成的工作放到了上层进行,

而处理器层少的这些成本可以用对物理器件速度的提高上去。RISC有下特点:

8/2原则:80%的程序只使用20$的指令;

采用Load/store指令模式,凡数据由外存到内存、内存到寄存器方向的流动统一用Load

指令,而对于反方向的操作,都用store;

用小指令集、多寄存器、指令执行简单快速;

统一用单周期指令,从根本上克服了CISC指令周期数有长有短、偶发性不确定、运行失常

的缺点。

(4)ARM7、ARM9内核处理器各采用几级流水线,分别是哪几级流水线结构

答:

ARM7TDMI采用三级流水线,分另为取指令、解码指令和执行操作。

ARM9TDMI采用5级流水线结构,分别为取指令、译码、执行、存储、写操作五级。

(5)从内部结构及功能来看,ARN7、ARM9、Xscal内核处理器各自有哪些不同,主要应用

在哪些领域

答:

ARM7内部结构框图,包括AddressRegister(地址寄存器)、AddressIncrementer(地址

累加器)、ResisterBank(寄存器块)、Booth5sMultiplier(乘法器)、32位ALU单元、

Write/ReadDataRegister(读/写数据寄存器)、逻辑控制单元等部分。没有内存管理单片。

ARM9TDMI处理器内核采用ARMV4T架构,增加了可用的存储器宽度、指令存储器接口以及

数据存储器接口,可以支持16bitThumb指令集和32btiARM指令,ARN9作为高性能的32位

RISC处理器内核,可以实现对指令和数据存储器的同时访问。如图2~9所示为ARM9功能结

构图。主要包含以下结构:

16KB指令和16KB数据缓存;

存储管理单元MMU,这有别于ARM7TDMI;

一个AMBA(AdvancedMicroprocessorBusArchitecture)总线接口;

一个EmbeddedTraceMacrocelI(ETM)接口。

有内存管理单元,便于移植操作系统。

第3章

(1)试列举ARM处理器工作模式,各工作模式主要完成怎么样的功能

答:

User:用户模式。绝大部分的任务执行都在这种操作模式下,此为正常的程序执行模式。

FIQ:快速中断模式。当一个高优先级中断产生时,系统将会进入这种操作模式,用于高速

数据传输和通道处理,由FIQ请求位发出请求信号。IRQ:

普通中断模式。当一个低优先级中断产生时将会进入这种操作模式,本模式用于通常的中断

处理,由IRQ请求位发出请求信号。

Supervisor:管理模式。当复位或软中断指令执行时将会进入这种操作模式,是一种可以供操

作系统使用的保护模式。Abort:中止模

式。当存取异常时将会进入这种操作模式,此模式可以被用作虚拟存储及存储保护,可

由ABORT请求位发出请求信号。Undef:未定义模式。当执

行未定义指令时会进入这种操作模式,多被用于软件仿真硬件协处理器时。

(2)试列举ARM处理器各寄存器功能,在不同的模式下可以访问哪些寄存器

答:

1个寄存器用作PC(ProgramCounter),即程序寄存器,指向程序执行位置。

1个寄存器用作CPSR(CurrentProgramStatusRegister),即当前状态寄存器,保存当前

CPU状态。

5个寄存器用作SPSR(SavedProgramStatusRegisters),备份不同模式下CPSR的值。

30个寄存器作为通用寄存器,存储数据使用。

(3)试说明CPSR寄存器各位功能。

答:

标志位含义

NN=1表示运算的结果为负数;N=0表示运算的结果为正数或零

zZ=1表示运算的结果为零;z=o表示运算的结果为非零

C0=1表示有进位,c=o表示没有进位

VV=1表示符号位溢出,v=o表示结果没有溢出

0在ARMvTE/J架构支持,指示DSP指令是否溢出

J仅ARM5TE/J架构支持,J=1表示处理器处于Jazelle状态

I1=1表示禁止IRQ

FF=1表示禁止FlQ

T仅ARMxT架构支持,T=0表示处理器处于ARM状态,T=1表示处理器处于Thumb状态

(4)试列出ARM处理器常见中断方式,并说明ARM处理器在响应这些中断时要经历哪些主

要步骤

答:

异常类型具体含义

FIQ当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常

IRQ当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常

异常中断当外部的ABORT输入产生时,发生异常断

软件中断该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令,可使

用该异常机制实现系统功能调用

复位当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行未

定义指令当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用

该异常机制进行软件仿真

ARM处理异常时,将立即通过备份寄存器保存当前CPU的状态。PC和CPSR寄存器中的内容

被分别拷贝到R14和SPSR中,PC和CPSR中的模式位M[0:4]根据异常类型被强制改变。

在异常中断处理中,如果要禁止其它难以管理异常的嵌套,可以置位中断标志位禁止再次中断请

求。在需要重复进入中断处理程序的情况下,R14和SPSR应该在中断被使能之前保存到主存

储的堆栈中;当传送SPSR寄存器到堆栈或者从堆栈传送时,需要注意的是必须传送整个字

(32位)。当多个异常同时产生时,优先级决定异常响应的顺序。

异常处理完毕之后,ARM微处理器将连接寄存器LR的值减去相应的偏移量后送到PC中,同

时将SPSR复制回CPSR中,若在进入异常处理时设置了中断禁止位,要在此清除。

(5)为什么说ARM处理器是32位处理器,主要体现在哪些方面,其汇编采用怎样的指令编

码格式

答:数据线32位,寄存器32位,编码32位。

(6)试列出16类指令条件域所对应的CPSR寄存器相应位状态。

答:

条件码助记符后缀标志含义

0000EQZ置位相等

0001NEZ清零不相等

0010CSC置位无符号数大于或等于

0011CCC清零无符号数小于

0100MlN置位负数

0101PLN清零正数或零

0110VSV置位溢出

0111VCV清零未溢出

1000HIC置位Z清零无符号数大于

1001LSC清零Z置位无符号数小于或等于

1010GEN等于V带符号数大于或等于

1011LTN不等于V带符号数小于

1100GTZ清零且(N等于V)带符号数大于

1101LEZ置位或(N不等于V)带符号数小于或等于

1110AL忽略无条件执行

(7)ARM处理器主要有哪些类型的寻址方式,各有什么特点

答:

立即寻址

寄存器寻址

基地址变址寻址

寄存器偏移寻址

寄存器间接寻址

多寄存器寻址

(8)ARM指令和伪指令主要功能是什么在ARM处理器中,有哪些类型的ARM指令,试举例

说明相应指令编码格式,在ARM汇编程序设计时,有哪些主要类型的伪指令,试举例说明各

类伪指令功能。

答:

ARM指令:指示处理器如何工作。

伪指令:协助编译器。

指令略。

(9)试用汇编程序实现求两个数中最大数。

答:

(10)试用汇编程序实现1~100的加法运算。

答:

(11)试用汇编程序实现10的阶乘运算。

答:

(12)完成本章中所有源代码编号及调试。

答:

第4章

(1)试列举在进行嵌入式软件开发时,ARM汇编语言多用来开发哪些类型的程序。

答:

Bootloader程序中多采用汇编程序和C语言汇合编程。操作系统中有少部分是汇编程序,

绝大部分采用C语言编写,例如Linux内核。

(2)在使用ADS平台进行嵌入式应用程序开发时,armasmxarmcc、armcppxarmlink主要

功能是什么,如果要编译Thumb指令集程序,需要使用哪些命令。

答:armasm:

此命令用来编译汇编程序。armcc:用

来编译C程序。armcpp:用来编译

C++程序。armlink:此命令用来链接

目标文件。

(3)试编写一段汇编程序,实现64位加法运算,并使用(2)中所列工具进行编译链接,

生成可执行二进制代码。

答:

(4)在ARM应用程序中,在存储时可执行文件主要分为哪几个部分,在运行时又分成哪几

个主要部分,各部分主要存储形式和存储内容是什么

答:

图4-3存储态和运行态代码分布

(5)使用平台创建工程项目文件过程是什么,试安装平台创建一个工程项目,然后添加相

应源代码,使用AXD调试,写出详细操作步骤。

答:

(6)试编写一段C语言与汇编程序的混合程序,在此汇编程序中,实现输入的任意两个数

的整数除法运算,在C文件中实现测试。

答:

(7)试编写一段C语言与汇编程序的混合程序,在此汇编程序中,实现两个64

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论