arm9嵌入式系统设计基础教程答案

arm9嵌入式系统设计基础教程答案

【篇一:arm嵌入式系统课后习题(部分)答案】

式系统从大的方面分为(嵌入式系统硬件平台)和(嵌入式软件)

两大部分。

1.2驱动层程序一般包括(硬件抽象层hal)、(板级支持包bsp)

和(设备驱动程序)。

1.3嵌入式系统核心是嵌入式处理器,可分为(嵌入式微处理器)、(嵌入式微控制器)、嵌入式dsp处理器和(嵌入式片上系统soc)4大类。

2.2arm7tdmi处理器分为(arm)和(thumb)两种操作状态。

2.3arm状态下,sp寄存器指的是(r13)、lr寄存器指的是

(r14)、pc寄存器指的是(r15).

2.4arm处理器支持的数据类型中,字节为(8)位、半字为(16)位、字为(32)位。

3.1arm7tdmi(-s)指令集包括(arm)指令集和(thumb)指令集。

3.2ldr指令用于从(存储器)中将一个32位的字数据传送到(目的

寄存器)中。

3.3指出下面各条指令的寻址方式。

sub r0,r1,r2 ;寻址方式:(寄存器寻址)。

subsr0,r0,#1 ;寻址方式:(立即寻址)。

movr0,r2,lsl#3;寻址方式:(寄存器移位寻址)。

swp r1,r1,[r2] ;寻址方式:(寄存器间接寻址)。

ldr r2,[r3,#0x0c] ;寻址方式:(基址寻址)。

4.3arm汇编语言源程序中语句一般有(指令)、(伪指令)、(伪

操作)和宏指令组成。

6.1对flash存储器的编程可通过(jtag仿真/调试器)、( isp )

和(iap)3重方法来实现。

6.2异常向量表可以来自4个不同的存储器区域,分别是(片内

flash )、(片内sram )、( boot block )和片外存储器。

6.3lpc2000系列的定时器主要用于3个方面:(对内部事件进行计数的间隔定时器)、(通过捕获输入实现脉宽解调器)、(自由

运行的定时器)。

二选择题

1.1可以表示微控制器的缩略词是( b )

a. mpu

b. mcu

c. wdt

d.spi

1.2rom类存储器包括( abd )

a. nor flash

b. eprom

c. sram

d. prom

1.3不属于arm的系列是( d )

a. mcs-96

b. 80c51

c. lpc2000

d.80x86

2.2arm7处理器系列采用( a )级流水线。

a. 3

b. 5

c. 6

d. 8

2.3下面arm处理器模式中属于特权模式的有( bcd )

a. 用户模式

b. 中断模式

c. 系统模式

d. 管理模式

3.2ldm(或stm)指令允许一条指令最多传送( c )个寄存器。

a. 4

b. 8

c. 16

d. 24

3.3bl指令限制在当前指令的( b )地址范围。

4.2arm汇编程序所支持的变量有( abc )

a. 数字变量

b. 逻辑变量

c. 字符变量

d. 字符串变量

4.3汇编语言程序用到c语言程序变量的情况实质上是一个引用不同文件定义的变量问题。解决这个问题的办法就是使用关键字( b )。

a. atpcs

b. import

c. export

d. code32

6.1一个异常向量表实际占用了( c )个字的存储单元。

a. 4

b. 8

c. 16

d. 64

6.3lpc200系列arm7微控制器的uart接收器fifo触发器可设置为( abcd )个字节。

a. 1

b. 4

c. 8

d. 14

三简答题

1.1什么是嵌入式系统?列举几个熟悉的嵌入式系统的产品。

答:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬

件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有

严格要求的专用计算机系统。

常见的有汽车、手机、mp3等等。

1.2嵌入式系统由哪几部分组成?

答:嵌入式系统从大的方面分嵌入式系统硬件平台和嵌入式软件两

大部分,其中软件部分又具体分为若干层次。对于包含有操作系统

的嵌入式系统来讲,嵌入式系统软件结构包含4个层次:设备驱动层、实时操作系统rtos层、应用程序接口api层、应用程序层。

1.3简述嵌入式系统的特点。

答:系统内核小;专用性强;系统精简;软件固化;嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统;嵌入式系统开发需要开发工具和环境。

2.1简述arm可以工作的几种模式。

答:arm体系结构支持7种处理器模式:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。(除用户模式外,其他模式均为特权模式)

2.2arm7内部有多少个寄存器?

答:在arm7tdmi处理器内部有37个用户可见的32位寄存器,其中31个通用寄存器,6个状态寄存器。

2.3描述一下如何禁止irq和fiq的中断?

答:在一个特权模式下,都可通过置位cpsr中的i位来禁止irq。在一个特权模式中,可通过置位cpsr中的f标志来禁止fiq异常。

2.4请描述arm7tdmi进入异常或退出异常时内核有何操作?

答:当异常发生时,arm处理器尽可能完成当前指令(除了复位异常)后,再去处理异常,并执行如下动作:

①进入与特定的异常相应的操作模式;

②将引起异常指令的下一条指令的地址保存到新模式的r14中;

③将cpsr的原值保存到新模式的spsr中;

④通过设置cpsr的第7位来禁止irq;如果异常为快中断,则要设置cpsr的第6位禁止快中断;

⑤给pc强制赋向量地址值。

退出异常时:

①将lr中的值减去偏移量后移入pc,偏移量根据异常的类型而有所不同;

②将spsr的值复制回cpsr;

③清零在入口置位的中断禁止标志。

(p28)指令长度及数据类型

arm微处理器的指令长度可以是32位(在arm状态下),也可以是16位(在thmb状态下)。装载/保存指令可以对字节、半字和字进行操作,当装载字节或半字时自动实现零扩展或符合扩展。

arm处理器支持下列数据类型:

字节(1字节=8位);

半字(半个字=16位,必须分配为占用2字节(b));

字(1个字=32位,必须分配为占用4字节)

(p29)流水线使用3个阶段,因此指令分3个阶段执行:

答:取指:从存储器装载一条指令;

译码:识别将要被执行的指令;

执行:处理指令并将结果写回寄存器。

3.2描述b、bl、bx指令的区别。

3.4编写一段arm汇编程序,实现数据块复制,将r0指向的8个字

的连续数据保存到r1指向的一段连续的内存单元。

答:

4.4汇编代码中如何调用c代码中定义的函数?

答:首先,为保证程序调用时参数的正确传递,汇编语言程序的设

计要遵守atpcs。其次,在c语言程序中,不需要使用任何关键字来声明被汇编语言程序调用的c语言子程序。但是在汇编语言程序调

用c语言程序之前,需要在汇编语言程序中使用import伪指令对其

进行声明。汇编语言通过bl指令进行调用。

6.1lpc2000处理器是如何实现引脚多功能的?

【篇二:嵌入式系统设计大学教程_习题与解答】

=txt>第1章嵌入式系统设计基本概念(绪论)

1、嵌入式系统的定义是什么?你是如何理解嵌入式系统的? (p3)答:嵌入式系统一般定义为以应用为中心、以计算机技术为基础,

软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应

用环境有特殊要求的专用计算机系统。一个嵌入式系统就是一个硬

件和软件的集合体,它包括硬件和软件两部分。其中硬件包括嵌入

式处理器/控制器/数字信号处理器(dsp)、存储器及外设器件、输

入输出(i/o)端口、图形控制器等;软件部分包括操作系统软件

(嵌入式操作系统)和应用程序(应用软件),由于应用领域不同,应用程序千差万别。

2、列出并说明嵌入式系统不同于其他计算机系统的主要特征。

(p3~p4)

答:主要特征有:

? 系统内核小:由于嵌入式系统一般是应用于小型电子装置,系统

资源相对有限,所

以内核较传统的操作系统要小得多。

? 专用性强:嵌入式系统通常是面向特定任务的,个性化很强,其

中软件系统和硬件

的结合非常紧密,一般要针对硬件进行软件系统的移植。

? 运行环境差异大:嵌入式系统使用范围极为广泛,其运行环境差

异很大。

? 可靠性要求高:嵌入式系统往往要长期在无人值守的环境下运行,甚至是常年运行,

因此对可靠性的要求特别高。

? 系统精简和高实时性操作系统:

? 具有固化在非易失性存储器中的代码:为了系统的初始化,几乎

所有系统都要在非

易失性存储器中存放部分代码(启动代码)。为了提高执行速度和

系统可靠性,大

多数嵌入式系统常常把所有代码(或者其压缩代码)固化,存放在

存储器芯片或处

理器的内部存储器件中,而不使用外部存储介质。

? 嵌入式系统开发工作和环境:嵌入式系统开发需要专门的开发工

具和环境。

3、简述嵌入式系统的体系结构。(p5)

答:嵌入式系统自底向上包含四个部分:硬件平台、嵌入式实时操

作系统(rtos)、硬件抽象层(hal)和嵌入式实时应用程序。硬件

抽象层位于操作系统和硬件之间,包含了系统中与硬件相关的大部

分功能。屏蔽了底层硬件的多样性,操作系统不再直接面对具体的

硬件环境,而是面向由这个中间层次所代表的、逻辑上的硬件环境。

4、嵌入式系统是怎样分类的?(p8)

答:根据不同的分类标准,嵌入式系统有不同的分类方法。按嵌入

式微处理器的位数分类:嵌入式系统可分为4位、8位、16位、32

位和64位等;按软件实时性需求分类:可分为非实时系统(如pda)、软实时系统(如消费类产品)和硬实时系统(如工业实时控

制系统)。按嵌入式系统的复杂程度分类:嵌入式系统可分为小型

嵌入式系统、中型嵌入式系统和复杂嵌入式系统。

5、什么是实时操作系统,其主要功能是什么?(p8)

答:实时多任务操作系统(real time multi-tasking operation system,rtos)简称实时操作系统,主要用来完成嵌入式实时应用

的任务调度和控制等核心功能。这些功能是通过内核服务函数形式

交给用户调用的,也就是rtos的系统调用,或者叫做rtos的api。

6、在日常生活中,你接触过哪些嵌入式产品?他们都有些什么功能?(p9~p10)答:[略]

第2章嵌入式系统设计基本概念

1、嵌入式系统的硬件由哪几个部分组成?(p12~13)

答:嵌入式系统的硬件系统是由嵌入式处理器、存储器、i/o接口电路、通信模块以及其他外部设备组成的。其核心是嵌入式处理器。

存储器是构成嵌入式系统硬件的重要组成部分。

嵌入式处理器工作时,必须有附属电路支持,如时钟电路、复位电路、调试电路、监视定时器、中断控制电路等,这些电路并不完成

数据的输入/输出功能,而是为嵌入式处理器的工作提供必要的条件。嵌入式处理器与通用处理器的最大区别在于嵌入式处理器集成了大

量的不同功能的i/o模块。用户在开发嵌入式系统时,可以根据系统

需求选择合适的嵌入式处理器,而无需再另外配备i/o电路。

此外,嵌入式系统通常还包括人机交互界面,用于系统与用户的交互。人机界面常常使用键盘、液晶屏、触摸屏等部件,以方便与用

户的交互操作。

2、通用处理器与嵌入式处理器有哪些相同和不同的地方?(p13)答:嵌入式微处理器一般具备四个特点:

? 对实时和多任务有很强的支持能力,能完成多任务并且有较短的

中断响应时间,从

而使内部的代码和实时操作系统的执行时间减少到最低限度;

? 具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结

构已模块化,而为

了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储

区保护功能,同

时也有利于软件诊断;

? 可扩展的处理器结构,以能迅速地扩展出满足应用的高性能的嵌

入式微处理器; ? 嵌入式处理器的功耗必须很低,尤其是用于便携

式的无线及移动的计算和通信设备

嵌入式处理器与通用处理器的最大区别在于嵌入式处理器集成了大

量的不同功能的i/o模块。用户在开发嵌入式系统时,可以根据系统

需求选择合适的嵌入式处理器,而无需再另外配备i/o电路。

3、常用的嵌入式处理器通常分成哪几大类?(p13)

答:嵌入式系统中的处理器通常分为三大类,即微处理器(micro-processor unit,mpu)、微控制器(micro-controller unit,mcu)

和数字信号处理器(dsp)。微处理器是指功能较强大的cpu,它不

是为任何特定的计算目标而设计的。因此这种芯片通常用于个人计

算机与服务器。微控制器是针对嵌入式系统而设计的,它将cpu、

存储器以及其他外设都集成在同一片电路板上。数字信号处理器(dsp)中的cpu是针对快速离散时间信号处理计算

4、什么是嵌入式外围设备?简要说明嵌入式外围设备是如何分类的。(p22~23)

答:

5、嵌入式操作系统的发展经历了哪几个阶段?(p28)

答:嵌入式操作系统伴随着嵌入式系统的发展,大致经历了四个阶段:

第一阶段:无操作系统的嵌入算法阶段,以单芯片为核心的可编程

控制器形式的系统,具有与监测、伺服、指示设备相配合的功能。

第二阶段:以嵌人式cpu为基础、简单操作系统为核心的嵌入式系统。由于cpu种类繁多,因此通用性比较差;系统开销小,效率高;具有一定的兼容性和扩展性;系统主要用来控制系统负载以及监控

应用程序运行。

第三阶段:通用的嵌入式实时操作系统阶段。以嵌入式操作系统为

核心的嵌入式系统,能运行于各种类型的微处理器上,兼容性好;

内核精小、效率高,具有高度的模块化和扩展性;具备文件和目录

管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(apl);嵌入式应用软件丰富。

第四阶段:以基于internet为标志的嵌入式系统。这是一个正在迅

速发展的阶段。嵌入式设备与internet的结合将代表着嵌入式技术

的真正未来。

6、现阶段常用的操作系统有哪些?通过调研,指出几种常用的嵌

入式操作系统的特点是什么?常用在什么场合?(p28~29)

答:常用的嵌入式rtos分三大类:商用系统、专用系统和开放系统。商品化的嵌入式实时操作系统,主要有windriver的vxworks和psos+,3com的palm os以及microsoft的windows ce等。专

用操作系统功能相对较弱,但针对性强,其安全可靠性大都超过普

通商用系统,如应用于手机的嵌入式操作系统symbianos。开放系

统的典型代表是嵌入式linux和?c/os-Ⅱ。

7、嵌入式操作系统的主要任务有哪些?(p28)

答:嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。

嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越

来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的

驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工

具集以及应用程序。

8、嵌入式系统的基本设计过程包括哪几个阶段?每一个阶段的主

要工作有哪些?(p33)答:以自顶向下的角度来看,系统设计包

括五个阶段,从系统需求分析开始;第二步是规格说明,在这一步,我们对需设计的系统功能进行更细致地描述,这些描述并不涉及系

统的组成;第三步是系统结构设计,在这一阶段以大的构件为单位

设计系统内部详细构造,明确软、硬件功能的划分;第四步是构件

设计,它包括系统程序模块设计、专用硬件芯片选择及硬件电路设计;第五步是系统集成,在完成了所有构件设计的基础上进行系统

集成,构造出所需的完整系统。

9、需求分析阶段细分为哪几个步骤?每个步骤完成什么工作?

(p34~35)

答:需求分析阶段可细分为四个阶段:

1、需求与规格说明:通过与客户进行交流,了解用户的意图,明确

客户需求,整理成正式的规格说明,这些规格说明里包含了进行系

统体系结构设计所需要的足够信息。

2、确认需求:确认这一系列的需求不仅需要理解什么是用户需要的,而且需要理解他们是如何表达这些需求的。

3、简单的需求表格:将复杂而费时的工作用相对少量的格式清晰、

简单的需求表格来表示,在考虑系统基本特征时可以将这个表格作

为检查表。

4、需求的内部一致性:在写完需求分析以后,应该对它们的内部一

致性进行检查。

10、试通过各种渠道调查目前市场上主要有哪些嵌入式系统开发平台,它们各自有什么特点。答:[略]

第3章 arm体系结构及基于arm9处理器的嵌入式系统硬件平台omap5912

1、试比较risc和cisc体系结构的异同,为什么arm内核要采用

risc体系结构?(p47)

答:arm体系结构总的设计思路是在不牺牲性能的同时尽可能简化

处理器。同时从体系结构的层面上支持灵活的处理器扩展。这种简

化和开放的思路使arm处理器采用了很简单的结构——精简指令集

计算机(reduced instruction set computer,risc)体系结构来进

行实现。

传统的复杂指令集计算机(complex instruction set computer,cisc)结构有其固有的缺点,即随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越

来越复杂,然而,在cisc指令集的各种指令中,其使用频率却相差

悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。

而余下的80%的指令却不经常使用,在程序设计中只占20%,显然,这种结构是不太合理的。

基于以上的不合理性,1979年美国加州大学伯克利分校提出了risc

的概念。

risc并非只是简单地去减少指令。risc是一种设计思想,其目标是

设计出一套能在高时钟频率下单周期执行、简单而有效的指令集。

risc的设计重点在于降低由硬件执行的指令的复杂度,因为软件比

硬件容易提供更大的灵活性和更高的智能。因此,rics设计对编译

器有更高的要求;相反,传统的cisc则更侧重于硬件执行指令的功

能性,使cisc指令变得更复杂。

2、简述arm的设计思想及其与单纯的risc定义的不同。

(p48~49)

答:arm内核并不是一个纯粹的risc体系结构,这是为了使它能够

更好地适应其主要应用领域——嵌入式系统。为了使arm指令集能

够更好地满足嵌入式应用的需要,arm指令集和单纯的risc定义有

以下几个方面的不同:

? 一些特定的指令周期数可变——并不是所有的arm指令都是单周

期的。例如:多

寄存器装载/存储的load/store指令的执行周期就是不确定的,必须

根据被传送的

寄存器个数来定。如果是访问连续的存储器地址,就可以改善性能,因为连续的内

存访问通常比随机访问要快;同时,代码密度也得到了提高,因为

在函数的起始和

结尾,多个寄存器的传输是很常用的操作。

?

?

? 内嵌桶形移位器产生了更为复杂的指令——内嵌桶形移位器是一个硬件部件,在一个输入寄存器被一条指令使用之前,内嵌桶形移位器可以处理该寄存器中的数据。它扩展了许多指令的功能,以此改善了内核性能,提高了代码密度。 thumb 16位指令集——arm

内核增加了一套称之为thumb指令的16位指令集,使得内核既能够执行16位指令,也能够执行32位指令,从而增强了arm内核的功能。16位指令与32位的定长指令相比较,代码密度可以提高约30%。条件执行——只有当某个特定条件满足时指令才会被执行。这个特性可以减少分支

指令的数目,从而改善性能,提高代码密度。

3、arm体系结构发展过程中,主要有哪些变种,对各变种做简要介绍。(p49~50)

答:我们将在arm体系中增加的某些特定功能称为arm体系的某种变种(variant),下面介绍arm体系的一些变种形式。

(1)thumb指令集(t变种)

thumb指令集是将arm指令集的一个子集重新编码而形成的一个指令集。arm指令长度为32位,thumb指令长度为16位。这样,使用thumb指令集可以得到密度更高的代码,这对于需要严格控制产品成本的设计非常有意义。

(2)长乘法指令(m变种)

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

(3)增强型dsp指令(e变种)

e变种包含了一些附加的指令,这些指令用于增强处理器对一些典型dsp算法的处理性能,主要包括:几条新的实现16位数据乘法和乘加操作的指令,实现饱和的带符号数的加减法操作的指令。

(4)java加速器jazelle(j变种)

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

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

(5)arm媒体功能扩展(simd变种)

simd变种的主要特点是:可以同时进行两个16位操作数或者4个8位操作数的运算,提供了小数算术运算,用户可以定义饱和运算的模式,两套16位操作数的乘加/乘减运算,32位乘以32位的小数mac,同时8位/16位选择操作。

4、arm体系结构版本的命名规则有哪些?简单说明arm7tdmi的含义。(p50)

答:arm产品通常以arm[x][y][z][t][d][m][i][e][j][f][-s]形式出现。arm体系结构的命令规则中这些后缀的具体含义见表3-2。

arm7tdmi的含义即arm7内核,增加了thumb指令集(t变种)、jtag调试器、长乘法指令(m变种)和嵌入式跟踪宏单元的功能。

5、列举目前常用的arm微处理器的型号及功能特点。(p51~53)答:arm微处理器目前包括下面几个系列,以及其它厂商基于arm 体系结构的处理

【篇三:arm嵌入式系统基础教程习题答案周立功】 1、举出3个书本中未提到的嵌入式系统的例子。

答:红绿灯控制,数字空调,机顶盒

2、什么叫嵌入式系统

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

3、什么叫嵌入式处理器?嵌入式处理器分为哪几类?

嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。

嵌入式微处理器(embedded microprocessor unit, empu)

嵌入式微控制器(microcontroller unit, mcu)

嵌入式dsp 处理器(embedded digital signal processor, edsp)

嵌入式片上系统(system on chip)

4、什么是嵌入式操作系统?为何要使用嵌入式操作系统?

是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了

开发周期。再次,嵌入式实时操作系统充分发挥了 32 位 cpu 的多任务潜力。

第二章

1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么?

项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。

识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。

提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。

执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展,分析项目偏差,采取必要措施以实现目标。

结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。

2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险?

在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。需求风险;时间风险;资金风险;项目管理风险

3、何谓系统规范?制定系统规范的目的是什么?

规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。

4、何谓系统规划?为何要做系统规划

系统规划就是拟定一个开发进程,使项目在合理的进程范围中逐渐建构完成。其目地是让客户可以进一步地掌握系统开发的进程,并确定检查点,以让双方确定项目是否如预期中的进度完成。

5、为什么在项目结束前需要进行项目讨论?

项目的讨论一个项目进行的反馈机制。通过这一个程序,项目团队的经验才可以被记录下来,也就是说,这是一个撰写项目历史的过程。

第三章

1、arm7tdmi中的t、d、m、i的含义是什么?

64 位乘法指令(带m 后缀的)、支持片上调试(带d 后缀的)、高密度 16 位的thumb 指令机扩展(带t 后缀的)和embededice 观察点硬件(带i 后缀的)

2、arm7tdmi采用几级流水线?使用何种存储器编址方式?

3、arm处理器模式和arm处理器状态有何区别?

处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。

4、分别列举arm的处理器模式和状态。

状态:

arm 状态 32 位,这种状态下执行的是字方式的arm 指令

thumb 状态16 位,这种状态下执行半字方式的 thumb 指令

模式:

用户模式、快中断模式、中断模式、管理模式、中止模式、未定义

模式和系统模式。

5、pc和lr分别使用哪个寄存器?

pc使用r15寄存器,lr使用r14寄存器

6、r13寄存器的通用功能是什么?

堆栈

第四章

1、基础知识

(1)arm7tdmi(-s)有几种寻址方式?lor r1,[r0,#0x08]属于哪种

寻址方式?

1. 寄存器寻址;

2. 立即寻址;

3. 寄存器移位寻址;

4. 寄存器间接寻址;

5. 基址寻址;

6. 多寄存器寻址;

7. 堆栈寻址;

8. 块拷贝寻址;

9. 相对寻址;lor r1,[r0,#0x08]属于基址寻址。

(2)arm指令的条件码有多少个?默认条件码是什么?

16条,默认条件码是al。

(3)arm指令中第二个操作数有哪几种形式?举例5个8位图立

即数。

(1) 立即数;(2) 寄存器;(3) 寄存器及移位常数;

0x3fc(0xff2)、0、0xf0000000(0xf024)、200(0xc8)、

0xf0000001(0x1f28)。

(4)ldr/str指令的偏移形式有哪4种?ldrb和ldrsb有何区别?

(1) 零偏移;(2) 前索引偏移;(3) 程序相对偏移;(4) 后索引偏移。ldrb就是读出指定地址的数据并存入指定寄存器,ldrsb读出指定地

址的数据,并高24位用符号位扩展,再存入指定寄存器。

(5)请指出mov指令与ldr加载指令的区别及用途。

mov 将 8 位图(pattern)立即数或寄存器(operand2)传送到目标寄存器(rd),可用于移位运算等操作。读取指定地址上的存储器单元内容,执行条件al.

(6)cmp指令的操作是什么?写一个程序,判断r1的值是否大于

0x30,是则将r1减去0x30。

cmp 指令将寄存器rn 的值减去operand2 的值,根据操作的结果

更新cpsr 中的相应条件标志位,以便后面的指令根据相应的条件标

志来判断是否执行。

cmp r1,0x30

subhi r1,r1,0x30

(7)调用子程序是用b还是用bl指令?请写出返回子程序的指令? bl 指令用于子程序调用。

mov pc, r14

(8)请指出ldr伪指令的用法。指令格式与ldr加载指令的区别是

什么?

ldr 伪指令用于加载 32 位的立即数或一个地址值到指定寄存器。第

二个数为地址表达式。

(9)arm状态与thumb状态的切换指令是什么?请举例说明。

bx指令,

(10)thumb状态与arm状态的寄存器有区别吗?thumb指令对

哪些寄存器的访问受到一定限制?

thumb状态下不能更新cpsr 中的alu 状态标志。,thumb指令对

r8~r15寄存器访问受限。

(11)thumb指令集的堆栈入栈、出栈指令是哪两条?

push pop

2 有符号和无符号加法

下面给出a 和b 的值,您可先手动计算a+b,并预测n、z、v 和 c

标志位的值。然后修改程序清单4.1 中r0、r1 的值,将这两个值装

载到这两个寄存器中(使用ldr 伪指令,如ldr r0,=0x ffff0000),使

其执行两个寄存器的加法操作。调试程序,每执行一次加法操作就

将标志位的状态记录下来,并将所得结果与您预先计算得出的结果

相比较。如果两个操作数看作是有符号数,如何解释所得标志位的

状态?同样,如果这两个操作数看作是无符数,所得标志位又当如

何理解?

0xffff000f0x7fffffff67654321 (a)

+ 0x0000fff1+ 0x02345678+ 23110000 (b)

结果: ( ) ( )( )

3 数据访问

把下面的 c 代码转换成汇编代码。数组 a 和b 分别存放在以

0x4000 和0x5000 为起始地址的存储区内,类型为long(即32 位)。把编写的汇编语言进行编译连接,并进行调试。 for (i=0; i8; i++)

{ a[i] = b[7-i];

}

第五章

1、基础知识:

(1)lpc2114可使用的外部晶振频率范围是多少(使用/不使用pll

功能时)?

晶振频率范围:1~30 mhz,若使用pll 或isp 功能为:10~25mhz。(2)描述一下lpc2210的po.14、p1.20、p1.26、boot1和boot0

引脚在芯片复位时分别有什么作用?并简单说明lpc2000系列arm7

微控制器的复位处理流程。

p0.14 的低电平强制片内引导装载程序复位后控制器件的操作,即

进入isp 状态。 p1.20 的低电平使 p1.25~p1.16 复位后用作跟踪

端口。

p1.26 的低电平使 p1.31~p1.26 复位后用作一个调试端口。

当reset 为低时,boot0 与boot1 一同控制引导和内部操作。引脚

的内部上拉确保了引脚未连接时呈现高电平。

外部复位输入:当该引脚为低电平时,器件复位,i/o口和外围功能

进入默认状态,处理器

从地址0 开始执行程序。复位信号是具有迟滞作用的ttl 电平。

(3)lpc2000系列arm7微控制器对向量表有何要求(向量表中的

保留字)?

向量表所有数据32 位累加和为零(0x00000000~0x0000001c 的8

个字的机器码累加),才能脱机运行用户程序,这是

lpc2114/2124/2212/2214 的特性。

(4)如何启动lpc2000系列arm7微控制器的isp功能?相关电路

应该如何设计?

(5)lpc2000系列arm7微控制器片内flash是多位宽度的接口?

它是通过哪个功能模块来提高flash的访问速度?

128位, 通过存储器加速模块(mam)来提高flash的访问速度

(6)若lpc2210的bank0存储块使用32位总线,访问bank0时,地址线a1、a0是否有效?emc模块中的blso~bls4具有什么功能?

无效,( 如果存储器组配置成 16 位宽,则不需要 a0;8 位宽的存储器

组需要使用 a0 。);字节定位选择信号。

(7)lpc2000系列arm7微控制器具有引脚功能复用特性,那么如

何设置某个引脚为指定功能?

通过引脚功能选择寄存器的设定来设置某个引脚为指定功能

(8)设置引脚为gpio功能时,如何控制某个引脚单独输入/输出?

当前要知道某个引脚当前的输出状态时,是读取iopin寄存器还是读取ioset寄存器?

gpio方向寄存器,iopin。

(9)p0.2和p0.3口是i2c接口,当设置它们为gpio时,是否需

要外接上拉电阻才能输出高电平?

(10)使用spi主模式时,ssel引脚是否可以作为gpio?若不能,ssel引脚应如何处理?不能用作gpio,ssel应设这高电平,处于

末激活状态。

(11)lpc2114具有几个uart是符合什么标准?哪一个uart可用

作isp通信?哪一个uart具有modem接口?

uart0,uart1;uart0用于isp通信,uart1具有modem接口。(12)lpc2114具有几个32位定时器?pwm定时器是否可以作通

用定时器使用?两个32位定时器,pwm定时器不能用作通用定时

器使用

(13)lpc2000系列arm7微控制器具有哪两种低耗模式?如何降

低系统的功耗? 2 个低功耗模式:空闲和掉电;

2、计算pll设置值:

假设有一个基于lpc2114的系统,所使用的晶振为11.0592mhz石

英晶振。请计算出最大的系统时钟(ccls)频率为多少mhz?此时

pll的m值和p值各为多少?请列出计算公式,并编写设置pll的程

序段。

3、存储器重影射:

(1)lpc2210具有( 4)种存影射模式。

①3 ②5 ③1 ④4

(2)当程序已固化到片内flash,向量表保存在0x00000000起始处,则map〔1:0〕的值应该为(2)。

①00 ②01 ③10 ④11

(3)lpc2000系列apm7微控制器ccq重影射的目标起始地址为(),共有()个字。①0x00000000,8 ②0x40000000,8

③0x00000000,16④0x7fffe000,8

4、外部中断唤醒掉电设计:

以下代码是初始化外部中断0,用它来唤醒掉电的lpc2114,请填空。

pinsel0=0x00000000;

pinseli = (pinsel10xfffffffc)|0x01;//设置i/o连接,po.16设置为einto extmode =0x00;//设置eint0为电平触发模式

extpolar=0x00; //设置eint0为低电平触发

extwake =0x01; //允许外部中断0唤醒掉电的cpu

extint=0x0f;//清除外部中断标识

第四章

程序清单4.1寄存器相加

;文件名:testi.s

;功能:实现两个寄存器相加

;说明:使用armulate软件仿真调试

area examplel,code,readonly ;声明代码段examplel

entry;标识程序入口

code32 ;声明32位arm指令

start mov r0,#0;设置参数

mov r1,#10

loop bl add_sub;调用子程序add_sub

b loop ;跳转到loop

add_sub

adds r0,r0,r1 ;r0=r0+r1

mov pc,lr ;子程序返回

end;文件结束

程序清单4.2 读取smi立即数

t_bit equ 0x20

swi_handler

stmfd sp!,{r0_r3,r12,lr} ;现场保护

mrs r0,spsr;读取spsr

stmed sp!,{r0};保存spsr

tst r0,#t_bit;测试t标志位

ldrneh r0,[lr,#_2] ;若是thumb指令,读取指令码(16位)bicner0,r0,,#0xff00 ;取得thumb指令的8位立即数

ldreq r0,[lr,#_4] ;若是arm指令,读取指令码(32位)biceq r0,r0,#0xff000000;取得arm指令的24位立即数……

ldmfd sp!,{ r0_r3,r12,pc};swi异常中断返回程序清单4.3使用irq中断

enable_irq

mrsr0,cpsr

bic r0,r0,#0x80

msrcpsr_c,r0

movpc,lr

程序清单4.4禁能irq中断

相关文档
最新文档