arm嵌入式技术原理与应用答案上课讲义.docx

上传人:b****1 文档编号:20963000 上传时间:2023-04-25 格式:DOCX 页数:20 大小:32.15KB
下载 相关 举报
arm嵌入式技术原理与应用答案上课讲义.docx_第1页
第1页 / 共20页
arm嵌入式技术原理与应用答案上课讲义.docx_第2页
第2页 / 共20页
arm嵌入式技术原理与应用答案上课讲义.docx_第3页
第3页 / 共20页
arm嵌入式技术原理与应用答案上课讲义.docx_第4页
第4页 / 共20页
arm嵌入式技术原理与应用答案上课讲义.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

arm嵌入式技术原理与应用答案上课讲义.docx

《arm嵌入式技术原理与应用答案上课讲义.docx》由会员分享,可在线阅读,更多相关《arm嵌入式技术原理与应用答案上课讲义.docx(20页珍藏版)》请在冰豆网上搜索。

arm嵌入式技术原理与应用答案上课讲义.docx

arm嵌入式技术原理与应用答案上课讲义

 

arm嵌入式技术原理与应用答案

arm嵌入式技术原理与应用答案

【篇一:

嵌入式系统原理与开发课后答案】

章嵌入式系统概述:

1、什么是嵌入式系统?

是简单列举一些生活中常见的嵌入式系统的实例。

p3

嵌入式系统是用于检测、控制、辅助、操作机械设备的装置。

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

3、是比较嵌入式系统与通用pc的区别。

p3

(1)嵌入式系统是专用的计算机系统,而pc是通用的计算机系统。

(2)技术要求不同,通用pc追求高速、海量的数据运算;嵌入式要求对象体系的智能化控制。

(3)发展方向不同,pc追求总线速度的不断提升,存储容量不断扩大;嵌入式追求特定对象系统的智能性,嵌入式,专用性。

4、嵌入式体统有哪些部分组成?

简单说明各部分的功能与作用。

p6

(1)硬件层是整个核心控制模块(由嵌入式微处理器、存储系统、通信模块、人机接口、其他i/o接口以及电源组成),嵌入式系统的硬件层以嵌入式微处理器为核心,在嵌入式微处理器基础上增加电源电路、时钟电路、和存储器电路(ram和rom等),这就构成了一个嵌入式核心控制模块,操作系统和应用程序都可以固化在rom中。

(2)中间层把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关。

一般包括硬件抽象层(hardwareabstractlayer,hal)和板级支持包(boardsupportpackage,bsp)。

(3)软件层由实时操作系统(realtimeoperatingsystem,rtos)、文件系

统、图形用户接口(graphicaluserinterfaces,gui)、网络组件组成。

(4)功能层是面向被控对象和用户的,当需要用户操作是往往需要提供一个友好的人际界面。

5、嵌入式系统是怎么分类的?

p7

按照嵌入式微处理器的位数分类(4位、8位、16位、32位、64位);按照是实时性分类(硬实时系统式之系统对响应时间有严格的要求;软实时系统是对响应时间有一定要求);

按照嵌入式软件结构分类(循环轮询系统、前后台系统、多任务系统);按照应用领域分类。

6什么是多任务系统?

多任务系统的特点些?

p9

应用的场合:

对于较复杂的嵌入式系统而言,存在许多互不相关的过程需要计算机同时处理,在这种情况下就需要采用多任务系统。

多任务系统的软件是由多个任务、多个中断服务程序以及嵌入式操作系统组成。

任务是顺序执行的,并行性通过操作系统完成。

特点:

(1)每个任务都是一个无限循环的程序,等待特定的输入,从而机型相应的处理。

(2)这种程序模型将系统成分相对简单、相互合作的模块。

(3)不同的任务共享同一个cpu和其他硬件,嵌入式操作系统对这些共享资源进行管理。

(4)多个顺序机型的任务在宏观上是并行执行的,每个任务都运行在自己独立的cpu上。

第二章嵌入式处理器

1`嵌入式处理器有哪几类?

简述各类嵌入式处理器的主要特点和应用领域。

p16嵌入式微控制器、嵌入式微处理器、嵌入式dsp、嵌入式片上系统。

(1)嵌入式微处理器集成处理器内核,存储管理器高速缓存芯片,存在体积小、重量轻、成本低和可靠性高等特点,其又称为单板机。

(2)嵌入式微控制器是集成了微处理器、存储器和片内外设芯片称为微控制器,片上外设资源丰富适合于控制单片化、体积小、功耗低、成本低等特点。

(3)嵌入式dsp专门用于信号处理的嵌入式芯片,适合执行dsp算法,能够对离散信号进行集化处理,提高速度。

(4)嵌入式片上系统soc软硬件的无缝结合,直接在处理器片内嵌入操作系统的代码模块,在单个芯片上实整个系统的功能。

4、arm体系结构版本的命名规则有哪些?

简单说明arm7tdmi的含义。

p28/armv/n/varants/x/varcant/

内核、体系结构、变量、//排除//

例如:

armv4xm是指arm内核v4版本排除m变种

armv5txm是指arm内核v5体系支持t变种排除m变种

6、arm处理器的工作模式有几种?

各种工作模式下分别有什么特点?

p37用户:

程序正常执行模式

fiq:

支持高速数据传输或通道处理

irq:

通用中断处理

管理:

操作系统保护模式,用于处理软中断

中止:

用于处理存储器故障,虚拟存储器或存储器保护,处理存储器的故障未定义:

支持硬件协处理器的仿真处理未定义的指令陷阱

系统:

运行特权操作系统任务未免出现用户模式不可靠。

7、arm处理器总共有多少个通用寄存器?

这些寄存器按其在用户编程中的功能是如何划分的?

p38

arm处理器共有37个寄存器,31个通用寄存器,含程序计数器pc,6个状态寄存器。

r0~r7为普通寄存器

r8~r12普通寄存器允许快速中断

r13通常用作堆栈指针sp,指向栈顶

r14通常用作子程序链接寄存器lr也用于中断临时存放pc值,pc→lrcpsr→spsr

r15程序计数器通常被用作程序计数器pc。

(pc中存放下一条将要执行的指令地址)

8~cpsr各状态位的作用是什么?

如何进行操作,以改变各状态位?

p39

n、z、c、v、q是条件码标志,

i、f、t、m【4:

0】是控制位。

i:

置1则禁止irq中断;f:

置1则禁止fiq中断;t:

对于arm体系结构v4以上版本,t=0指示arm执行,t=1指示thumb执行:

对已arm体系结构v5以上版本,t=0指示arm执行,t=1指示下一条指令引起未定义的指令异常。

n=1结果为负数,结果为0则z=1,c进位位,v溢出位,q指示增强型dsp指令中是否出现溢出或饱和,i=1禁止irq中断,f=1禁止fiq中断,t=0指示arm执行t=1指示thumb执行,m【4:

0】模式位决定处理器的工作模式。

9,试述arm处理器对异常中断的影响。

p41

r14-exception-mode=returnlink

spsr-exception-mode=cpsr

cpsr【4:

0】=exceptionmodenumber4位到0位进入异常模式

cpsr【5】=0使处理器在arm状态下执行cpsr【7】=1禁止新的irq中断

ifexception-mode==resetorfiqthen

cpsr[6]=1禁止新的fiq中断

pc=exceptioncectoraddress完成后进入异常向量地址

10.如何从异常中断处理程序中返回?

需要注意哪些问题?

(可不看)进入中断的逆过程。

11~arm指令的寻址方式有几种?

试分别叙述其各自的特点并举例说明。

p44

(1)寄存器寻址:

指令地址码给出寄存器的编号,寄存器中的内容作为操作数。

(2)立即寻址、指令操作码后的地址码是立即数,即操作数本身。

(3)寄存器移位寻址、是arm指令集特有的寻址方式。

(4)寄存器间接寻址、指令地址码给出寄存器的编号,寄存器为地址指针,存放操作数的有效地址。

(5)基址寻址、基址寻址是讲基址寄存器的内容与指令中给出的维系量相加,形成操作数有效地址。

(6)多寄存器寻址一次可以传送多个寄存器的值

(7)堆栈寻址按照特定顺序进行存取的存取区。

(8)块拷贝寻址(9)相对寻址

【篇二:

《arm嵌入式系统结构与编程》习题答1】

1.国内嵌入式系统行业对―嵌入式系统‖的定义是什么?

如何理解?

答:

国内嵌入式行业一个普遍认同的定义是:

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

从这个定义可以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的剪裁利用。

因此有人把嵌入式系统比作是一个针对特定的应用而―量身定做‖的专业计算机系统。

2.嵌入式系统是从何时产生的,简述其发展历程。

答:

从20世纪70年代单片机的出现到目前各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了30多年的发展历史。

嵌入式系统的出现最初是基于单片机的。

intel公司1971年开发出第一片具有4位总线结构的微处理器4004,可以说是嵌入式系统的萌芽阶段。

80年代初的8051是单片机历史上值得纪念的一页。

20世纪80年代早期,出现了商业级的―实时操作系统内核‖,在实时内核下编写应用软件可以使新产品的沿着更快,更节省资金。

20世纪90年代实时内核发展为实时多任务操作系统。

步入21世纪以来,嵌入式系统得到了极大的发展。

在硬件上,mcu的性能得到了极大的提升,特别是arm技术的出现与完善,为嵌入式操作系统提供了功能强大的硬件载体,将嵌入式系统推向了一个崭新的阶段。

3.当前最常用的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。

答:

主要有嵌入式linux和嵌入式实时操作内核uc/os-ii嵌入式linux操作系统是针对嵌入式微控制器的特点而量身定做的一种linux操作系统,包括常用的嵌入式通信协议和常用驱动,支持多种文件系统。

主要有以下特点:

源码开放,易于移植,内核小,功能强大,运行稳定,效率高等。

uc/os是源码工卡的实时嵌入式系统内核,主要有以下特点:

源码公开,可移植性强,可固化,可剪裁,占先式,多任务,可确定性,提供系统服务等。

4.举例说明嵌入式设备在工控设备中的应用。

答:

由于工业控制系统特别强调可靠性和实时性,―量身定做‖的嵌入式控制系统恰能满足工业控制的需求。

例如:

工业过程控制,数字控制机床,电网设备监测,电力自动控制系统,石油化工监控等。

5.嵌入式技术的发展趋势有哪些?

答:

未来嵌入式系统的发展趋势有:

1.随着信息化与数字化的发展,嵌入式设备进行网络互联是未来发展的趋势。

2.优化嵌入式系统软硬件内核,提高系统运行速度,降低功耗和硬件成本。

3.指令集的并行计算技术将引入嵌入式微处理器。

4.嵌入式微处理器将会向多核技术发展。

5.嵌入式技术将引领信息时代。

第2章arm技术与arm体系结构1.简述arm处理器内核调试结构原理答:

arm处理器一般都带有嵌入式追踪宏单元etm(embeddedtracemacro),它是arm公司自己推出的调试工具。

arm处理器都支持基于jtag(jointtestactiongroup联合测12试行动小组)的调试方法。

它利用芯片内部的embeddedice来控制arm内核操作,可完成单步调试和断点调试等操作。

当cpu处理单步执行完毕或到达断点处时,就可以在宿主机端查看处理器现场数据,但是它不能在cpu运行过程中对实时数据进行仿真。

etm解决了上述问题,能够在cpu运行过程中实时扫描处理器的现场信息,并数据送往tap(testaccessport)控制器。

上图中分为三条扫描链(图中的粗实线),分别用来监视arm核,etm,嵌入式ice的状态。

2.分析arm7tdmi-s各字母所代表的含义。

答:

arm7tdmi–s中arm是advancedriscmachines的缩写7是系列号;t:

支持高密度16位的thumb指令集;d:

支持jtag片上调试;m:

支持用于长乘法操作(64位结果)arm指令,包含快速乘法器;;i:

带有嵌入式追踪宏单元etm,用来设置断点和观察点的调试硬件;s:

可综合版本,意味着处理器内核是以源代码形式提供的。

这种源代码形式又可以编译成一种易于eda工具使用的形式。

3.arm处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处理器在什么情况下进入相应的模式。

答:

arm技术的设计者将arm处理器在应用中可能产生的状态进行了分类,并针对同一类型的异常状态设定了一个固定的入口点,当异常产生时,程序会自动跳转到对应异常入口处进行异常服务。

?

1.用户模式:

非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。

在用户模式下,如果没异常发

算和移位操作,如果是对存储器操作的指令,则在alu中计算出要访问的存储器地址。

存储器访问:

如果是对存储器访问的指令,用来实现数据缓冲功能(通过数据cache)。

寄存器回写:

将指令运算或操作结果写回到目标寄存器中。

9.什么叫流水线互锁?

应如何来解决,举例说明。

答:

互锁:

当前指令的执行需要前面指令的执行结果,但前面的指令没有执行完毕,引起流水线的等待。

互锁发生时,硬件会停止指令的执行,直到数据准备好。

56上边程序中orr指令执行时需要使用ldr指令加载后的r4寄存器,因此造成了orr指令的等待。

编译器以及汇编程序员可以通过重新设计代码的顺序或者其他办法来减少互锁的数量。

第3章arm指令集寻址方式1.在指令编码中,条件码占几位,最多有多少个条件,各个条件是如何形成的?

答:

条件码占4位,最多有15个条件操作码0000000100100011010001010110011110001001101010111100110111101111条件助记符标志eqnecs/hscc/lomiplvsvchilsgeltgtlealnvz=1z=0c=1c=0n=1n=0v=1v=0c=1,z=0c=0,z=1n=vn!

=vz=0,n=vz=1,n!

=v任何任何含义相等不相等无符号数大于或等于无符号数小于负数正数或零溢出没有溢出无符号数大于无符号数小于或等于有符号数大于或等于有符号数小于有符号数大于有符号数小于或等于无条件执行(指令默认条件)从不执行(不要使用)2.指令条件码中,v标志位在什么情况下才能等于1?

答:

v—溢出标志位对于加减法运算指令,当操作数和运算结果为二进制补码表示的带符号数时,v=1表示符号67位溢出,其他指令通常不影响v位。

3.在arm指令中,什么是合法的立即数?

判断下面各立即数是否合法,如果合法则写出在指令中的编码格式(也就是8位常数和4位移位数)0x54300x1080x3040x5010xfb100000x3340000x3fc0000x1fe00000x55800000x7f8000x39c0000x1fe80000答:

立即数必须由1个8位的常数通过进行32位循环右移偶数位得到,其中循环右移的位数由一个4位二进制的两倍表示。

即一个8位的常数通过循环右移2*rotate_4位(即0,2,4,。

30)得到0x54300000,0000,0000,0000,0101,0100,0011,0000非法立即数0x1080000,0000,0000,0000,0000,0001,0000,10000x42循环右移30位(rotate_4=0xf)0x3040000,0000,0000,0000,0000,0011,0000,01000xc1循环右移30位(rotate_4=0xf)0x5010000,0000,0000,0000,0000,0101,0000,0001非法立即数0xfb100000000,1111,1011,0001,0000,0000,0000,0000非法立即数0x3340000000,0000,0011,0011,0100,0000,0000,00000xcd循环右移18位(rotate_4=0x9)0x3fc0000000,0000,0011,1111,1100,0000,0000,00000xff循环右移18位(rotate_4=0x9)0x1fe00000000,0001,1111,1110,0000,0000,0000,0000非法立即数0x55800000000,0101,0101,1000,0000,0000,0000,0000非法立即数0x7f8000000,0000,0000,0111,1111,1000,0000,0000非法立即数0x39c0000000,0000,0011,1001,1100,0000,0000,00000xe7循环右移18位(rotate_4=0x9)0x1fe800000001,1111,1110,1000,0000,0000,0000,0000非法立即数4.分析逻辑右移,算术右移,循环右移,带扩展的循环右移它们间的差别。

答:

lsl逻辑左移:

3100lsr逻辑右移:

3100asr算术右移:

78310ror循环右移:

310rrx带扩展的循环右移:

31c05.arm数据处理指令具体的寻址方式有哪些,如果程序计数器pc作为目标寄存器,会产生什么结果?

答:

数据处理指令寻址方式具体可分为5种类型:

1)第二操作数为立即数2)第二操作数为寄存器3)第二操作数为寄存器移位方式且移位的位数为一个5位立即数4)第二操作数为寄存器移位方式且移位数值放在寄存器中5)第二操作数位寄存器进行rrx移位得到。

如果pc(r15)用作目标寄存器,指令会产生不可预知的结果。

6.在load/store指令寻址中,字,无符号字节的load/store指令寻址和半字,有符号字节寻址,试分析它们之间的差别。

答:

在load/store指令寻址中,字,无符号字节的load/store指令寻址中共有以下3种内存地址构成格式:

1)addressing_mode中的偏移量为立即数2)addressing_mode中的偏移量为寄存器的值3)addressing_mode中的偏移量通过寄存器移位得到半字,有符号字节的load/store指令寻址中共有以下2种内存地址构成格式:

1)addressing_mode中的偏移量为立即数2)addressing_mode中的偏移量为寄存器的值7.块拷贝load/store指令在实现寄存器组合连续的内存单元中数据传递时,地址的变化方式有哪几种类型,并分析它们的地址变化情况。

答:

批量load/store指令在实现寄存器组合连续的内存单元中数据传递时,地址的变化方式有以下4种类型:

?

后增ia(incrementafter):

每次数据传送后地址加4;?

先增ib(incrementbefore):

每次数据传送前地址加4;?

后减da(decrementafter):

每次数据传送后地址减4;?

先减db(decrementbefore):

每次数据传送前地址减4;

8.栈操作指令地址的变化方式有哪几种类型,并分析它们的地址变化情况,从而得出栈操作指令寻址和块拷贝load/store指令之间的对应关系。

答:

根据堆栈指针的指向位置不同和堆栈的生长方向不同,共有4种类型的堆栈工作方式:

满递增堆栈fa:

堆栈指针指向最后压入的数据,且由低地址向高地址生成。

满递减堆栈fd:

堆栈指针指向最后压入的数据,且由高地址向低地址生成。

空递增堆栈ea:

堆栈指针指向下一个要放入数据的空位置,且由低地址向高地址生成。

89空递减堆栈ed:

堆栈指针指向下一个要放入数据的空位置,且由高地址向低地址生成。

9.分析协处理器加载/存储指令的寻址方式种的内存地址索引格式中不同的汇编语法格式下内存地址的计算方法。

答:

协处理器加载/存储指令的寻址方式种的内存地址索引格式中,索引格式类似于ldr/str指令寻址中的立即数作为地址偏移量的形式。

addressing_mode中的偏移量为8位立即数的汇编语法格式有以下3种:

?

前变址不回写形式:

[rn,#+/-imm_offset8*4]第一个内存地址编号为基地址寄存器rn值加上/减去imm_offset8的4倍,后续的每一个地址是前一个内存地址加4,直到协处理器发出信号,结束本次数据传输为止。

?

前变址回写形式:

[rn,#+/-imm_offset8*4]!

第一个内存地址编号为基地址寄存器rn值加上/减去imm_offset8的4倍,后续的每一个地址是前一个内存地址加4,直到协处理器发出信号,结束本次数据传输为止。

当指令执行时,生成的地址值将写入基址寄存器。

?

后变址回写形式:

[rn],#+/-imm_offset8*4内存地址为基址寄存器rn的值,当存储器操作完成后,将基地址寄存器rn值加上/减去imm_offset8的4倍,后续的每一个地址是前一个内存地址加4,直到协处理器发出信号,结束本次数据传输为止。

最后将rn值加上/减去imm_offset8的4倍写回到基址寄存器rn(更新基地址寄存器)。

10.写出下列指令的机器码,并分析指令操作功能。

movr0,r1movr1,,0x198addeqsr1,r2,,0xabcmpr2,#0xabldrr0,[r1,#4]strr0,[r1,r1,lsl#2]!

ldrhr0,[r1,#4]ldrsbr0,[r2,#-2]!

strbr1,[r2,#0xa0]910ldmiar0,{r1,r2,r8}stmdbr0!

{r1-r5,r10,r11}stmedsp!

{r0-r3,lr}答:

机器码部分略。

movr0,r1;r0《-----r1movr1,,0x198;r0《----0x198addeqsr1,r2,,0xab;当z=1时,r1《---r2+0xab并影响标志位cmpr2,#0xab;r2-0xab,并影响标志位ldrr0,[r1,#4];r0《---【r1+4】strr0,[r1,r1,lsl#2]!

;【r1+r1*4】《---r0,r1=r1+r1*4ldrhr0,[r1,#4];r0《---【r1+4】半字,r0的高16位清零ldrsbr0,[r2,#-2]!

;r0《---【r2-2】字节,r0有符号扩展为32位,r2=r2-2strbr1,[r2,#0xa0];【r2+0xa0】《----r1低8位,ldmiar0,{r1,r2,r8};将内存单元【r0】~【r+11】以字为单位读取到r1,r2,r8中stmdbr0!

{r1-r5,r10,r11}将寄存器r1~r5,r10,r11的值以字为单位依次写入

【r0】中,每写一个字之前r0=r0-4stmedsp!

{r0-r3,lr}将寄存器r0~r3,lr的的值以字为单位依次写入【sp】中,每写一个字之后sp=sp-4

第4章arm指令集系统

1.arm指令可分为哪几类?

说出哪几条指令是无条件执行的。

答:

arm微处理器的指令集可以分为:

数据处理指令,分支指令,加载/存储指令,批量加载/存储指令,交换指令,程序状态寄存器(psr)处理指令,协处理器操作指令和异常产生指令八大类。

几乎所有的arm指令都是可以有条件执行的。

带链接和状态切换的跳转指令

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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