设备喷漆工艺:嵌入式系统原理作业

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 13:10:11

嵌入式系统原理作业

计算机科学学院  于山山 主讲

(红色字体为新修改、添加的,仅供参考)

1.       考察智能手机的多功能化,展望智能手机的未来几年发展前景如何?主要思考点包括:

l          关键应用功能

l                   MP3MP4,实名制,门禁识别,IPTV

l                   手机游戏,手机遥控、视频电话、定位服务

l                   互动式语音应答IVR

l          手机的开发平台

l                   SymbianWindows Mobile Palm OS Linux OS

2.       EDA在嵌入式硬件设计中的地位和重要性如何?

P16  EDA是一种先进的电子系统设计方法,它以计算机为主要工具,在EDA软件平台上,对使用硬件描述语言为描述手段完成的数字系统设计文件,自动的完成逻辑编译、逻辑综合、结构综合,以及逻辑优化和仿真测试,最终实现既定的电子系统功能。

3.       自顶向下ASIC设计方法的基本流程?P17  9

概念设计 系统架构设计与软硬件划分 行为级描述  构建模块与接口 功能仿真  逻辑综合与优化  布局布线设计  时序仿真  适配与验证  硬件测试

4.       简述FPGA器件的结构。P20

组成:可配置逻辑块、延时锁定环、块RAM

5.       CPLDFPGA的内部结构有什么主要区别?

FPGARAM块、延时锁定环,CPLD没有

以乘积项结构方式构成逻辑行为的器件称为CPLD

以查表法结构方式构成逻辑行为的器件称为FPGA

6.       有哪些主流的CPLDFPGA开发工具?P22 四个

1)        MAX+PLUS II    Quartus II   Synplify Pro   Foundation ISP Synario

7.       ASIC开发和CPLD/FPGA开发有什么区别?P20

aASIC先进行布局布线后适配,而FPGA相反。b.ASIC先进行概念设计与软硬件划分,而FPGA是先设计输入c.FPGA没有行为级描述及架构模块与接口。

8.       IP核有哪几种主要形态?它们的优选原则是什么?P37

1)        软核 硬核 固核

优选原则:

从可被重用频度、可向其他工艺移植的可能性以及重用灵活性等方面考虑,优选次序为:上策选软核,中策选固核,下策选硬核。从保证满足要求的性能和规范、有较短的上市时间、自己付出劳动尽量的少又并不只在乎高价的角度考虑,则优选次序相反:硬核为上策,固核为中策,软核为下策。

9.       有哪几种主要的IP核互联拓扑结构?P38 三个

a)         IP核单共享总线方式   点对点连接方式    多层次/多总线互连方式

10.   欲降低CMOS芯片的功耗应从哪几个主要方面考虑?P43  五个

1)        降低工作电压   降低时钟频率  减少逻辑门的电容负载                  减少逻辑门的翻转次数    降低静态电流损耗

11.   在嵌入式软件开发过程中,哪几点对于降低功耗有较大影响?P43 九个

1)        低功耗编译优化技术    尽量减少CPU的运算量     用“中断”代替“轮询”

2)        硬件软件化   采用快速算法     通信编程时采用高波特率配置

3)        降低采样速率    合理的延时子程序设计     睡眠方式

12.   哈佛结构的计算机有什么优缺点?P49

优点:数据Cache和指令Cache区分开来,消除了数据引用与指令引用之间的冲突,使得取指令与取数据操作能同时进行;而且允许独立的选择和优化各个Cache的大小、行大小和相联度。

缺点:一是如果程序通过写指令来修改程序自身的代码,则这些新指令将被写入到数据Cache。在程序能够执行这些指令前,两个Cache都必须被刷新,并且修改了的指令必须被写入存储器以便Cache能从中取得指令。另一个不足是不允许大幅度的调节指令Cache和数据Cache的容量分配比例。

13.   主存控制器的作用是什么?P57

主存控制器可以决定处理器所使用的存储区个数,各个存储区起始地址,各个存储区的寻址空间大小和存储区的数据线宽度;确定字节序;确定所有Bank的可编程访问周期,以及动态存储器的自动刷新等。

14.   请说明按照地址边界对准的方式进行存储器访问有什么优点。P54

按照地址对准方式访问内存可以提高传输速率,加快访问速度,最重要的是简化了编译器设计,优化了程序代码。

15.   看门狗定时器的作用是什么?P52

用来引导嵌入式微处理器脱离死锁工作状态

16.   基于ARM核的XScale处理器有什么特点?P60 六个

1)        超流水线   高主频     存储体系    分支预测

2)        省去不常用的逻辑功能    指令集体系结构

17.   地址重映射是怎么一回事?P55

计算机的物理存储单元与分配给它的地址之间具有一一对应的映射关系,而且是固定不变的,如果计算机在运行过程中改不了这种映射关系,则称为地址重映射。

18.   有哪几种主要的嵌入式PowerPC处理器?P63

1)        IBM公司的PowerPC405GP

2)        Motorola公司的PowerPC  MPC823e

3)        Motorola公司的PowerPC  MPC7457MPC7447

4)        Motorola公司的PowerPC  8260QUICC  II

5)        MPC860  PowerQUICC

19.   PC和嵌入式系统的调试技术有什么主要不同之处?P64

对于通用计算机而言,在大多数情况下,运行调试工具的宿主计算机与被调试程序运行的目标计算机是同一台计算机。调试工具软件的机器指令和被调试程序的机器指令属于一种体系结构,可以在一台计算机上调试。

由于嵌入式计算机的运算能力、存储能力和显示能力相对较弱、数据吞吐量较小,作为目标计算机在它上面很难直接进行软件硬件调试。因此,一般的嵌入式调试方法只能将调试工具安装在PC机(宿主机)上运行,通过数据通信的方法向目标机发出指令,控制目标机的运行,并且从目标机上获得运行参数,还能够进行单步跟踪,临时修改变量数值,并进行各种调试。宿主机和目标机通常具有不同的计算机体系结构,需要通信转换器对调试信息进行转换。

20.   什么是背景调试?(P67

背景调试模式是一种片上调试技术,对基于motorola公司专用片上调试器的调试方法的称呼。在BDM调试方式下,处理机被停机,各种调试命令可以被发送到处理器中访问内存和寄存器。因此,满足BDM调试的微处理器内部已经包含了用于调试的微码,调试时仿真器软件和目标板上cpu的调试微码通信,目标板上大的cpu无需取出。

21.   基于Angel的调试方案是怎么一回事?(68

     AngelARM公司的调试监控程序,适用于各种ARM硬件平台,也称为调试代理,由多个程序部件组成,与传统调试监控程序相类似驻留在目标机上。Angel接收主机上发送过来的调试命令,执行指定的调试操作,并将调试结果反馈回主机。适用于各种ARM硬件平台。

22.   试描述ETMJTAG的异同点。

    基于JTAG的仿真器debug方法是利用芯片内部的EmbeddedICE模块来控制内核,达到单步/断点等调试目的,这种方法的特点是需要把目标CPU停住后才能观察现场情况。在真正的实时系统中,停止CPU运行往往导致现场失真,ETM就能够在CPU运行过程中把现场信息捕捉压缩进行输出,然后在PC端就可以对这些数据进行解压分析;用户还可以对ETM设置很多过滤及触发条件,对一些随即出现的异常进行捕捉(还能得到异常前后一段时间内的系统信息)。本质上ETM相当于一个嵌入芯片内部的逻辑分析仪。

23.   能够完全取代目标板的MCU仿真器是什么样的仿真器。

ICE仿真器目前最为有效的调试嵌入式系统的手段,目标板和ICE之间使用多芯扁平电缆连接。而ICE在使用时一般还需要与主机(一般是PC)连接。通过ICE的实际执行,开发者可以排除人们难以发现的隐藏在设计方案中的逻辑错误。ICE的另外一个主要功能是在应用系统中仿真微控制器的实际执行优点是功能强大,软硬件均可以做到完全实时在线调试;缺点是价格昂贵。

24.   ARM处理器的工作模式有几种?设置这些模式是必要的吗?每一种模式分别有哪几个独有特点?(91

     ARM微处理器支持7种运行模式,分别为:
用户模式(usr):ARM处理器正常的程序执行状态。
普通中断模式(fiq):用于高速数据传输或通道处理。
外部中断模式(irq):用于通用的中断处理。
管理模式(svc):操作系统使用的保护模式。
终止模式(abt)(Abort):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):运行具有特权的操作系统任务。
未定义(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
是必要的。

25.   能否简单地概述一下ARM处理器的寄存器组织?(92

 ARM微处理器共有3732位寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14R0.程序计数器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.   CPSRSPSR的使用特点分别是什么?(81

所有处理器模式都可以访问当前程序状态寄存器CPSR。每种异常模式都有一个程序状态保存寄存器SPSR。当异常出现时SPSR用于保存CPSR的状态。

体系结构版本V3 体系结构版本这个体系结构版本将寻址范围扩展到了32位. 当前程序状态信息由过去存于R15中移到一个新的当前程序状态寄存器CPSR中.增加了程序状态 保存寄存器SPSR,以便当异常出现时保留CPSR的 内容.增加了2个指令(MRS和MSR),以访 问新的CPSR和SPSR寄存器;增加了两种处理器模式,使操作系统代码可以方便地使用数据访问中止异常,指令预取中止异常和未定义中止异常。

28.按照ATPCS规则,IPSPLRPC分别是哪些通用寄存器?它们中的每一个寄存器用途都是严格定义的吗?

寄存器R12用作子程序间中间结果寄存器,记作IP. 子程序之间的连接代码段中常常用此寄存器. 寄存器R13用作堆栈指针,记作SP.在子程序中寄存 器R13不能用作其他用途.寄存器SP在进人子程序时 的值和退出子程序时的值必须相等. 寄存器R14称为连接寄存器,记作LR.它用于保存子 程序的返回地址.如果在子程序中保存了返回地址, 寄存器R14则可以用作其他用途. 寄存器R15是程序计数器,记作PC.它不能用作其它用途。

29.ARM处理器的寄存器都是程序员可访问的吗?

不一定,主要由处理器状态和模式决定。这要看ARM处理器的开发人员是怎么编辑他的权限了,一般的程序员是只有使用权限的。

30.什么是ARM处理器的影子寄存器?(92

    它们是为处理器不同工作模 式配备的专用物理寄存器.在异常模式下,它 们将代替用户或者系统模式下使用的部分寄存 器. 在管理,中止,未定义和普通中断模式下,影子寄存器的数量均为2个.而快速中断为7个.

31.ARM的存储器保护单元起什么作用?

PU提供了一个相当简单的代替MMU的方法来管理存储器。对于不需要MMU的嵌入式系统而言,PU简化了硬件和软件,主要表现在不使用转换表,从而使硬件不必遍历转换表和软件表与维护转换表。

32.ARMCP15协处理器起什么作用?(P97

完成Cache配置,写缓存配置之类的存储系统管理工作。

33.ARM的逻辑Cache和物理Cache是怎么一回事?

答:Cache放在处理器内核与MMU之间,称为逻辑cache,也称虚拟Cache;放在MMU与物理寄存器之间称为物理CacheCache放在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和未定义指令异常中断处理程序返回;

    处理:当程序计数器的值(CP-4)放入LR_SVCLR_UND寄存器中。中断结束后再将LR的值给PC

IRQFIQABT(指令预取)异常中断处理程序的返回;

处理:将程序计数器的值(PC-4)放入LR_IRQ或者LR_FIQ寄存器,中断后将(LR-4)放入PC中。

        ABT(数据访问中止)异常中断处理程序的返回

处理:将程序计数器的值(PC-4)放入LR_ABT寄存器中,中断后将(LR-8)PC

37.目前AMBA片上总线有哪几个版本,它们的主要特点是什么?

答:AHB(高性能片上总线):用于连接高性能的系统模块。支持突发数据传输方式以及单个数据传送方式,所有时序都以单一时钟的前沿为基准。

ASB:用于连接高性能系统模块,支持突发数据传输方式。

APB:为低性能的外围部件提供较为简单的借口,优点是最小功耗和易于使用。

AHBASB的升级版本,能够支持更高性能的综合及时序验证。

38.ARM7TDMI核指令流水线是几级流水线?

三级流水线

39.ARM7TDMI的版本变量有四个,分别代表什么含义?

TThumb指令集。Thumb指令长度为16位。

D:含JTAG调试器,支持片上系统。

M:提供用于进行长乘法操作的ARM指令,产生全64位结果。

I:内嵌式在线测试宏单元硬件部件,提供断点和调试点支持。

40.列出ARM指令集与x86指令集不同点

项目

ARM处理器指令集

X86处理器指令集

指令格式

定长,4字节

不定长,1字节~15字节

程序读写指令计数器

可以

不可以

状态标志位更新

由指令的附加位决定

指令隐含决定

按照边界对齐取指令

必须在4字节边界取指

可在任意字节处取消

操作数寻址方式

3地址

2地址

状态位个数

4

6

高密度指令

条件判断执行

几乎每一条指令

专用条件判断指令

栈数据传送指令

没有,用LDM/STM实现

有专用指令PUSH/POP

DSP处理的乘加指令

仿存体系结构

Load/Store指令

算术逻辑指令也能访问内存

41.ARM处理器而言,相对寻址时的基准地址是什么?

程序计数器PC当作基址寄存器(指令中的地址码字段作为位移量)  p123

42.数据块传送指令与堆栈指令有何不同?

数据块传送:

I =向地址增大方向处理数据传送(Increment)

D =向地址减小方向处理数据传送(Decrement)

A =先传送数据后改变地址(after)

B =先改变地址后传送数据(before)

堆栈操作:

F =满栈顶指针(full)

E =空栈顶指针(empty)

A =堆栈向高地址方向增长(ascending stack)

D =堆栈向低地址方向增长(decending stack)

43.请说明ARM指令第2个操作数是如何定义的?  P119

2操作数有两种形式:立即数型  格式:#<32位立即数>

                      寄存器型  格式:Rm , {}

44.如何区别前索引偏移和后索引偏移?

前索引寻址方式:基址带偏移作为传送地址。

后索引寻址方式:基址不带偏移传送地址,且传送后自动更新基址寄存器。

45.使用两种类型的第2操作数,分别编写3ARM指令,并且说明这些指令中的第2操作数的形成方法。

MOV R4,#0x8000000A      ;将立即数由8位的0xA8循环右移0x2位得到。

ADD R0,R0,R0 LSL #2      ;R0逻辑左移2*2位,并加上R0得:5*R0赋给R0

ADD R5,R3,R1,LSL R4      ;R1逻辑左移2R4次幂,并加上R3赋给R5

P119

46.如何辨别LDR指令是ARM机器指令,还是伪指令。请你各举出3条数据传送LDR指令的例子和3LDR伪指令的例子。     P131

LDR若为ARM是将内存数据存到寄存器中。而伪指令是用于大范围地址读取。形式为:LDR register=expr

RAM指令:LDR R1,0x12345678    0x12345678地址对应的值给LDR

伪指令:LDR R1,=0x72345241      0x72345241LDR

47.3LDRSTR指令有前变址、后变址和回写前变址三种变址模式,请你举例说明之。  P129

LDR R2,[R1,#4]  ;前变址

LDR R2,[R1,#4]!  ;回写前变址

LDR R0,[R1],#4   ;后变址

48.什么是ATPCSAAPCS

ATPCS规定了一些子程序间调用的基本规则。这些规则包括子程序调用过程中寄存器的使用规则、数据栈的使用规则以及参数的传递规则。有了这些规则之后,单独编译的C语言程序就可以和汇编程序相互调用。

AAPCSATPCS之间的差别很小。AAPCS的主要改进之处是将ATPCS的二进制代码的不兼容性缩小到最低限度。

49.子程序或者过程调用时,如果参数超过4个,如何编程实现正确地参数传递?ARM内嵌汇编的指令用法有哪些注意点?

在传递参数时,将所有参数看作是存放在连续的内存字单元的字数据。然后,依次将各字数据传递到寄存器R0,R1,R2R3中。如果参数多余4个,则将剩余的字数据传递到堆栈中。入栈的顺序与参数传递顺序相反,即最后一个字数据先入栈。

内嵌指令的用法,太多…p164

50.ADS环境中如何实现以下的子程序调用?

l       C语言程序调用 C++子程序(p168例子)

C语言程序调用C++程序时,在C程序中使用关键词extern声明要调用的C++函数,在C++程序中使用关键词externc”声明被调用的C++函数。

l       C/C++程序调用ARM汇编子程序要点(p165

设计汇编语言要遵循ATPCS,以保证程序调用时参数能正确传递。在汇编程序中使用EXPORT指示符声明本程序可以被别的程序调用。在C语言程序中使用extern关键词声明该汇编程序可以被调用,C++语言程序使用extern

“C”来声明该汇编程序可以被调用。

51.   嵌入式开发平台与ARM开发工具有什么联系?   P180

开发ARM应用程序时,全部工作(包括编辑、编辑、汇编、连接等)都可在主机上完成,但调试工作则需要其他的模块或工具的配合。但调试部分大部分还得依赖目标机。目前常用的调试方法和工具有指令集模拟器、驻留监控软件、JTAG仿真器和在线仿真器等。这些调试工具大都通过与目标开发板进行相互数据通信达到传递调试命令和信息的作用。二者是彼此相互依赖的。

52.   试描述ELF文件的内部结构

P181 ARM连接器把ELF文件当做由节头部表描述的一组逻辑节,而系统加载器则把ELF文件当做由程序头部表描述的一组代码段。一个代码段通常由几个节组成。

53.   什么是映像文件

映像文件是计算机上的一个可执行文件,在执行之前被加载到计算机的储存器中。通常,一个镜像文件中包含多个线程。

54.   什么是实时系统?    

对外来事件能在限定的响应时间内做出预定质量处理的计算机系统。