嵌入式系统原理考试总复习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统原理作业
1.考察智能手机的多功能化,展望智能手机的未来几年发展前景如何?主要思考点包括:
●关键应用功能
●MP3,MP4,实名制,门禁识别,IPTV,
●手机游戏,手机遥控、视频电话、定位服务
●互动式语音应答IVR
●手机的开发平台
●Symbian,Windows Mobile,Palm OS,Linux OS
2.EDA在嵌入式硬件设计中的地位和重要性如何?
P16 EDA是一种先进的电子系统设计方法,它以计算机为主要工具,在EDA软件平台上,对使用硬件描述语言为描述手段完成的数字系统设计文件,自动的完成逻辑编译、逻辑综合、结构综合,以及逻辑优化和仿真测试,最终实现既定的电子系统功能。
3.自顶向下ASIC设计方法的基本流程?P17
1)概念设计2)系统架构设计与软硬件划分3)行为级描述4)构建模块与接口
5)功能仿真6)逻辑综合与优化7)布局布线设计8)时序仿真
10)适配与验证10)硬件测试
4.简述FPGA器件的结构。
P20
5.CPLD和FPGA的内部结构有什么主要区别?
6.有哪些主流的CPLD和FPGA开发工具?P22
MAX+PLUS II Quartus II Synplify Pro Foundation 、ISP Synario等
7.ASIC开发和CPLD/FPGA开发有什么区别?P20
8.IP核有哪几种主要形态?它们的优选原则是什么?P37
软核硬核固核
优选原则:从可被重用频度、可向其他工艺移植的可能性以及重用灵活性等方面考虑,优选次序为:上策选软核,中策选固核,下策选硬核。
从保证满足要求的性能和规范、有较短的上市时间、自己付出劳动尽量的少又并
不只在乎高价的角度考虑,则优选次序相反:硬核为上策,固核为中策,软核为下策。
9.有哪几种主要的IP核互联拓扑结构?P38
IP核单共享总线方式点对点连接方式多层次/多总线互连方式
10.欲降低CMOS芯片的功耗应从哪几个主要方面考虑?P43
1)降低工作电压2)降低时钟频率3)减少逻辑门的电容负载
4)减少逻辑门的翻转次数5)降低静态电流损耗
11.在嵌入式软件开发过程中,哪几点对于降低功耗有较大影响?P43
1)低功耗编译优化技术2)尽量减少CPU的运算量3)用“中断”代替“轮询”
4)硬件软件化5)采用快速算法6)通信编程时采用高波特率配置
7)降低采样速率8)合理的延时子程序设计9)睡眠方式
12.哈佛结构的计算机有什么优缺点?P49
优点:数据Cache和指令Cache区分开来,消除了数据引用与指令引用之间的冲突,使得取指令与取数据操作能同时进行;而且允许独立的选择和优化各个Cache的大小、行大小和相联度。
缺点:一是如果程序通过写指令来修改程序自身的代码,则这些新指令将被写入到数据Cache。
在程序能够执行这些指令前,两个Cache都必须被刷新,并且修改了的指令必须被写入存储器以便Cache能从中取得指令。
另一个不足是不允许大幅度的调节指令Cache和数据Cache的容量分配比例。
13.主存控制器的作用是什么?P57
主存控制器可以决定处理器所使用的存储区个数,各个存储区起始地址,各个存储区的寻址空间大小和存储区的数据线宽度;确定字节序;确定所有Bank的可编程访问周期,以及动态存储器的自动刷新等。
14.请说明按照地址边界对准的方式进行存储器访问有什么优点。
P54
按照地址对准方式访问内存可以提高传输速率,加快访问速度,最重要的是简化了编译器设计,优化了程序代码。
15.看门狗定时器的作用是什么?P52
用来引导嵌入式微处理器脱离死锁工作状态
16.基于ARM核的XScale处理器有什么特点?P60
1)超流水线2)高主频3)存储体系4)分支预测5)省去不常用的逻辑功能
6)指令集体系结构
17.地址重映射是怎么一回事?P55
18.有哪几种主要的嵌入式PowerPC处理器?P63
1)IBM公司的PowerPC405GP
2)Motorola公司的PowerPC MPC823e
3)Motorola公司的PowerPC MPC7457和MPC7447
4)Motorola公司的PowerPC 8260(QUICC II)
5)MPC860 PowerQUICC
19.PC和嵌入式系统的调试技术有什么主要不同之处?P64
对于通用计算机而言,在大多数情况下,运行调试工具的宿主计算机与被调试程序运行的目标计算机是同一台计算机。
调试工具软件的机器指令和被调试程序的机器指令属于一种体系结构,可以在一台计算机上调试。
由于嵌入式计算机的运算能力、存储能力和显示能力相对较弱、数据吞吐量较小,作为目标计算机在它上面很难直接进行软件硬件调试。
因此,一般的嵌入式调试方法只能将调试工具安装在PC机(宿主机)上运行,通过数据通信的方法向目标机发出指令,控制目标机的运行,并且从目标机上获得运行参数,还能够进行单步跟踪,临时修改变量数值,并进行各种调试。
宿主机和目标机通常具有不同的计算机体系结构,需要通信转换器对调试信息进行转换。
20.什么是背景调试?(P67)
背景调试模式是一种片上调试技术,对基于motorola公司专用片上调试方法的称呼。
在BDM调试方式下,处理机被停机,各种调试命令可以被发送到处理器中访问内存和寄存器。
因此,满足BDM调试的微处理器内部已经包含了用于调试的微码,调试时仿真器软件和目标板上cpu的调试微码通信,目标板上大的cpu无需取出。
21.基于Angel的调试方案是怎么一回事?(68)
Angel是ARM公司的调试监控程序,适用于各种ARM硬件平台,也称为调试代理,由多个程序部件组成,与传统调试监控程序相类似驻留在目标机上。
Angel接收主机上发送过来的调试命令,执行指定的调试操作,并将调试结果反馈回主机。
适用于各种ARM硬件平台。
22.试描述ETM与JTAG的异同点。
基于JTAG的仿真器debug方法是利用芯片内部的EmbeddedICE模块来控制内核,达到单步/断点等调试目的,这种方法的特点是需要把目标CPU停住后才能观察现场情况。
在真正的实时系统中,停止CPU运行往往导致现场失真,ETM就能够在CPU运行过程中把现场信息捕捉压缩进行输出,然后在PC 端就可以对这些数据进行解压分析;用户还可以对ETM设置很多过滤及触发条件,对一些随即出现的异常进行捕捉(还能得到异常前后一段时间内的系统信息)。
本质上ETM相当于一个嵌入芯片内部的逻辑分析仪。
23.能够完全取代目标板的ICE仿真器是什么样的仿真器。
目前最为有效的调试嵌入式系统的手段,目标板和ICE之间使用多芯扁平电缆连接。
而ICE在使用时一般还需要与主机(一般是PC)连接。
通过ICE的实际执行,开发者可以排除人们难以发现的隐藏在设计方案中的逻辑错误。
ICE的另外一个主要功能是在应用系统中仿真微控制器的实际执行优点是功能强大,软硬件均可以做到完全实时在线调试;缺点是价格昂贵。
24.ARM处理器的工作模式有几种?设置这些模式是必要的吗?每一种模式分别有哪几个独有特点?(91)
ARM微处理器支持7种运行模式,分别为:
用户模式(usr):ARM处理器正常的程序执行状态。
快速中断模式(fiq):用于高速数据传输或通道处理。
外部中断模式(irq):用于通用的中断处理。
管理模式(svc):操作系统使用的保护模式。
数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):运行具有特权的操作系统任务。
定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
25.能否简单地概述一下ARM处理器的寄存器组织?(92)
ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。
但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。
但在任何时候,通用寄存器R14~R0.程序计数器PC.一个或两个状态寄存器都是可访问的。
26.如何使得ARM处理器在ARM状态和Thumb状态之间进行切换?
进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。
此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。
此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
27.CPSR和SPSR的使用特点分别是什么?(81)
体系结构版本V3 体系结构版本这个体系结构版本将寻址范围扩展到了32位. 当前程序状态信息由过去存于R15中移到一个新的当前程序状态寄存器CPSR中.增加了程序状态保存寄存器SPSR,以便当异常出现时保留CPSR的内容.增加了2个指令(MRS和MSR),以访问新的CPSR和SPSR寄存器;增加了两种处理器模式,使操作系统代码可以方便地使用数据访问中止异常,指令预取中止异常和未定义中止异常。
28.按照ATPCS规则,IP、SP、LR和PC分别是哪些通用寄存器?它们中的每一个寄存器用途都是严格定义的吗?
寄存器R12用作过程调用中间临时寄存器,记作IP. 新的编译器版本在子程序之间的连接代码段中常常有这种使用规则. 寄存器R13用作堆栈指针,记作SP.在子程序中寄存器R13不能用作其他用途.
寄存器SP在进人子程序时的值和退出子程序时的值必须相等. 寄存器R14称为连接寄存器,记作LR.
它用于保存子程序的返回地址.如果在子程序中保存了返回地址, 寄存器R14则可以用作其他用途. 寄存器R15是程序计数器,记作PC.它不能用作其它用途。
29.ARM处理器的寄存器都是程序员可访问的吗?
这要看ARM处理器的开发人员是怎么编辑他的权限了,一般的程序员是只有使用权限的。
30.什么是ARM处理器的影子寄存器?(92)
它们是为处理器不同工作模式配备的专用物理寄存器.在异常模式下,它们将代替用户或者系统模
式下使用的部分寄存器. 在管理,中止,未定义和普通中断模式下,影子寄存器的数量均为2个.而快速中断为7个.
31.ARM的存储器保护单元起什么作用?
32.ARM的CP15协处理器起什么作用?(P97)
33.ARM的逻辑Cache和物理Cache是怎么一回事?
答:Cache放在存储器内核与MMU之间,称为逻辑cache,也称虚拟Cache;放在MMU与物理寄存器之间称为物理Cache。
Cache放在MMU之前还是之后决定了Cache寻址范围和编程结构。
逻辑Cache在虚拟地址空间存储数据,虚拟机可以直接通过逻辑Cache访问数据,而无需通过MMU。
物理Cache使用物理地址存储数据,当处理器访问处理器时,MMU必须先把虚拟地址转换成物理地址,Cache存储器才可以向内核提供数据。
34.ARM处理器中的写缓存起什么作用?
答:写缓存区改善了Cache的功能,主要用途是:当CPU输出数据时,若总线恰好被占用而无法输出,那么CPU可以把输入数据写入到写缓存区。
当总线上没有比写缓存区优先级别更高的掌控者时,写缓存区可以通过总线将数据写入内存。
35.异常处理结束后,CPU是如何返回到主程序断点的?
答:从异常中断处理程序返回时,需要执行一下四个基本操作:
①所有修改过的用户寄存器必须从处理程序的保护栈中恢复(出栈)。
②恢复被中断程序在被中断时刻的CPSR寄存器(当时的执行现场),实质上就是将SPSR_mode寄存器内容恢复到
CPSR。
③返回到发生异常中断的指令位置(该指令没有执行完毕)或异常中断的下一条指令处执行。
为了做到这一点,需要
将LR_mode寄存器的内容经过某种减法计算后复制到程序计数器PC中。
④清除CPSR中的中断禁止标志位(I标志和T标志)。
36.ARM异常中断的返回有哪几种情况?对应的中断服务子程序分别要做哪些处理?
答:SWI和未定义指令异常中断处理程序返回;
IRQ、FIQ和ABT(指令预取)异常中断处理程序的返回;
ABT(数据访问中止)异常中断处理程序的返回
37.目前AMBA片上总线有哪几个版本,它们的主要特点是什么?
答:AHB(高性能片上总线):用于连接高性能的系统模块。
支持突发数据传输方式以及单个数据传送方式,所有时序都以单一时钟的前沿为基准。
ASB:用于连接高性能系统模块,支持突发数据传输方式。
APB:为低性能的外围部件提供较为简单的借口,优点是最小功耗和易于使用。
AHB是ASB的升级版本,能够支持更高性能的综合及时序验证。
38.ARM7TDMI核指令流水线是几级流水线?
39.ARM7TDMI的版本变量有四个,分别代表什么含义?
41.
程序计数器PC当作基址寄存器(指令中的地址码字段作为位移量)p123
42.数据块传送指令与堆栈指令有何不同?
43.请说明ARM指令第2个操作数是如何定义的?P119
第2操作数有两种形式:立即数型格式:#<32位立即数>
寄存器型格式:Rm , {<shift>}
44.如何区别前索引偏移和后索引偏移?
45.使用两种类型的第2操作数,分别编写3条ARM指令,并且说明这些指令中的第2操作数的形成方法。
P119
46.如何辨别LDR指令是ARM机器指令,还是伪指令。
请你各举出3条数据传送LDR指令的例子和3条LDR伪指令的
例子。
P131
47.题3,LDR和STR指令有前变址、后变址和回写前变址三种变址模式,请你举例说明之。
P129
48.什么是ATPCS和AAPCS?
ATPCS规定了一些子程序间调用的基本规则。
这些规则包括子程序调用过程中寄存器的使用规则、数据栈的使用规则以及参数的传递规则。
有了这些规则之后,单独编译的C语言程序就可以和汇编程序相互调用。
AAPCS和ATPCS之间的差别很小。
AAPCS的主要改进之处是将ATPCS的二进制代码的不兼容性缩小到最低限度。
49.子程序或者过程调用时,如果参数超过4个,如何编程实现正确地参数传递?ARM内嵌汇编的指令用法有哪些注意点?
在传递参数时,将所有参数看作是存放在连续的内存字单元的字数据。
然后,依次将各字数据传递到寄存器R0,R1,R2和R3中。
如果参数多余4个,则将剩余的字数据传递到堆栈中。
入栈的顺序与参数传递顺序相反,即最后一个字数据先入栈。
内嵌指令的用法,太多…p164
50.在ADS环境中如何实现以下的子程序调用?
●C语言程序调用C++子程序(p168例子)
C语言程序调用C++程序时,在C程序中使用关键词extern声明要调用的C++函数,在C++程序中使用关键词extern “c”声明被调用的C++函数。
●C/C++程序调用ARM汇编子程序要点(p165)
设计汇编语言要遵循ATPCS,以保证程序调用时参数能正确传递。
在汇编程序中使用EXPORT指示符声明本程序可以被别的程序调用。
在C语言程序中使用extern关键词声明该汇编程序可以被调用,C++语言程序使用extern “C”来声明该汇编程序可以被调用。
51.嵌入式开发平台与ARM开发工具有什么联系?P180
52.试描述ELF文件的内部结构
53.什么是映像文件
映像文件是计算机上的一个可执行文件,在执行之前被加载到计算机的储存器中。
通常,一个镜像文件中包含多个线程。
54.什么是实时系统?
对外来事件能在限定的响应时间内做出预定质量处理的计算机系统。