嵌入式系统设计复习题LZY解析

上传人:最**** 文档编号:117000865 上传时间:2019-11-18 格式:DOC 页数:8 大小:372.51KB
返回 下载 相关 举报
嵌入式系统设计复习题LZY解析_第1页
第1页 / 共8页
嵌入式系统设计复习题LZY解析_第2页
第2页 / 共8页
嵌入式系统设计复习题LZY解析_第3页
第3页 / 共8页
嵌入式系统设计复习题LZY解析_第4页
第4页 / 共8页
嵌入式系统设计复习题LZY解析_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《嵌入式系统设计复习题LZY解析》由会员分享,可在线阅读,更多相关《嵌入式系统设计复习题LZY解析(8页珍藏版)》请在金锄头文库上搜索。

1、1、 根据嵌入式系统的实时性强弱,嵌入式系统是如何分类的?结合具体的应用场合,对它们的特点分别加以描述。根据嵌入式系统的实时性要求分为: 非实时系统(如PDA); 软实时系统(如消费类产品); 硬实时系统(工业实时控制系统) 实时系统是一个能够在指定时间内完成系统功能并对外部或内部事件做出响应的系统;实时逻辑的正确性不仅依赖于计算结果的正确性还取决于输出结果的时间。强实时系统, 其系统响应时间在毫秒或微秒级。一般实时系统, 其系统响应时间在几秒的数量级上,其实时性的要求比强实时系统要差一些。弱实时系统, 其系统响应时间约为数十秒或更长。这种系统的响应时间可能随系统负载的轻重而变化。2、 结合嵌

2、入式系统的组成结构,详细描述嵌入式系统开发的具体工作有哪些?在嵌入式硬件和嵌入式软件之间有一个接口层次,这个接口层为什么层?其具体的开发特点是什么?嵌入式系统的组成部分是嵌入式系统硬件平台、嵌入式操作系统(RTOS)和嵌入式系统应用。嵌入式系统硬件平台是以嵌入式处理器为核心,由存储器、I/O单元电路、通信模块、外部设备等必要的辅助接口组成的。驱动层 BSP/HAL 硬件抽象层/板极支持包。操作系统提供商为了屏蔽这些硬件平台的差异,紧紧用标准C语言把操作系统不依赖于具体硬件的共性部分实现了,而把依赖于硬件的部分(如存储器种类、外部设备的配置、地址分配等)留给用户编写,而操作系统仅仅规定了一个标准

3、的规范。用户编写的这部分代码为用户的具体硬件和标准化的操作系统之间提供了一个接口和支持平台,这部分代码称为板级支持包(Board Support Package,BSP) 或硬件抽象层(Hardware Abstraction Layer,HAL)。3、 嵌入式处理器的种类有哪些?如能给出具体的代表性芯片请给出芯片的型号及生产厂家。嵌入式处理器是嵌入式系统的硬件核心。嵌入式处理器根据它的结构和应用特点可以分成四类:嵌入式微控制器(MicroController Unit,MCU),目前主要的嵌入式微处理器有:ARM、MIPS、Aml86/88、386EX、PowerPC、68000系列。嵌入式

4、微处理器(Embedded MicroProcessor Unit,EMPU),8051便是最著名的MCU。DSP处理器(Digital Signal Processor,DSP),TI公司TMS320C2000/5000/6000系列DSP是该类产品中最著名的。高度集成的片上系统(System on Chip,SoC),片上系统(SoC)就是结合了许多功能模块,将整个嵌入式系统做在了一个芯片上的系统。ARM/MIPS/DSP或其他微处理器核加上通信接口单元(如:通用串行接口UART、USB、TCP/IP、IEEE1394、蓝牙模块接口等)构成SoC。4、 嵌入式交叉开发环境的组成是怎样的?嵌

5、入式系统开发为什么需要这样的交叉开发环境而通用计算机的开发不需要?(1)嵌入式交叉开发环境的组成:嵌入式交叉开发环境一般将由个人电脑,PC端嵌入式开发软件(如支持ARM的mdk,ads,rvds等等),支持硬件调试的硬件调试器及其配套的驱动软件(如j-link),当然,最重要的还要有嵌入式硬件系统即通俗所谓的开发板。(2)按嵌入式系统的定义,嵌入式系统的软硬件将是可剪裁的以适用于各种不同的要求。这样的话,由于硬件平台千差万别,开发其编译器将变得不可能,即便开发出来,可能也需要及其繁琐的配置,大大降低了软件的可用性。另外就是使用也不方便,大多数嵌入式系统不会配备像PC机一样适于输入的键盘和较大的

6、屏幕。5、 ARM有哪些工作状态?如何进行状态切换? ARM状态: 32位,这种状态下执行字对准的ARM指令;Thumb状态:16位,这种状态下执行半字对准的Thumb指令。ARM处理器在两种工作状态之间可以利用BX指令方便地进行切换。(1)进入Thumb状态。当操作数寄存器的状态位(位0)为1时,执行BX指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQFIQUndefAbort和 SWI)返回时,自动转换到Thumb状态。(2)进入ARM状态。当操作数寄存器的状态位(位0)为0时,执行BX指令进入ARM状态。处理器进行异常处理(IRQFIQResetUndef

7、 Abort和SWI)。6、 ARM有哪7种工作模式?各自的用途是什么?其中哪些是特权模式?哪些是异常模式?系统开机时应该为这些工作模式做哪些准备?ARM处理器共有7种不同的处理器模式:1、用户模式(User):正常程序的执行模式。2、快速中断模式(FIQ):用于高速数据传输和通道处理。3、外部中断模式(IRQ):用于通常的外部中断处理。4、特权模式(SVE):又叫管理模式,供操作系统使用的一种保护模式。5、数据访问中止模式(ABT):用于虚拟存储和存储保护。6、未定义指令中止模式(UND):用于支持通过软件方针硬件的协处理器。7、系统模式(SYS):用于运行特权级的操作系统任务。 除了用户模

8、式以外的其他6种处理器模式称为特权模式。在这些模式下,程序可以访问所的系统资源,也可以任意地进行处理器的模式切换。其中,除了系统模式以外,其他5种特权式又称为异常模式。?7、 一个程序执行时间的计算公式: 其中: Ninst :指令数 CPI :每条指令的平均时钟周期数。 fclk:时钟频率。 请结合该公式分析提高嵌入式系统工作效率的途径有哪些?精简指令,减少不必要的指令。改善系统结构组织和指令集,减小每条指令的平均时钟周期数。改善硬件条件,提高时钟频率。8、 “ARM处理器指令大部分可以作为条件指令来执行,大部分的指令也可以影响条件,但是都不是强制的”,这里所说“条件”具体指的是什么?“不是

9、强制的”是什么意思?如何才能让一条指令影响条件标志?又如何才能使一条指令变成条件执行指令。9、 什么是“有效立即数”,有效立即数在ARM指令中的表示方法是怎样的?为什么采用这样的表示方法?在 ARM 数据处理指令中, 当参与操作的第二操作数为立即数时, 每个立即数都是采用一个8位的常数循环右移偶数位而间接得到, 其中循环右移的位数有一个4位二进制的2倍表示. 则有效立即数可表示为: := immed_8; 循环右移(2rotate_imm). 其中: 代表立即数, immed_8 代表8位常数, 即所谓的8位图, rotate_imm 代表4位的循环右移值. ARM 规定并不是所有的32位常数

10、都是合法的立即数, 只有通过上面的构造方法得到的才是合法的立即数, 编译的时候才不会报错.10、 ARM处理器指令大多都是采用寄存器作为其操作数,以提高指令的执行效率,为此ARM处理器设置了大量的寄存器,可是数据的最初来源和最终归宿都是存储器,ARM是如何来解决这一问题的?ARM微处理器的指令集是加载/存储(load/store)型的.即指令集仅能处理寄存器中的数据,处理结果仍要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。11、 ARM处理器的堆栈有哪些类型?在ARM状态和Thumb状态下分别如何实现堆栈操作。ARM微处理器支持这四种类型的堆栈工作方式,即:满递增方

11、式FA(Full Ascending):堆栈指针指向最后入栈的数据位置,且由低地址向高地址生成。满递减方式FD(Full Decending):堆栈指针指向最后入栈的数据位置,且由高地址向低地址生成。空递增方式EA(Empty Ascending):堆栈指针指向下一个入栈数据的空位置,且由低地址向高地址生成。空递减方式ED(Empty Decending):堆栈指针指向下一个入栈数据的空位置,且由高地址向低地址生成。ARM:arm对于堆栈的操作一般采用 LDMFD(Thumb中pop)和STMFD (Thumb中push) 两个命令。Thumb:PUSH和POP指令格式:PUSH 低寄存器的全

12、部或其子集POP 低寄存器的全部或其子集这两条指令是栈操作指令,用于在寄存器和堆栈之间进行成组的数据传送,PUSH指令用于把寄存器列表中的寄存器数据推进堆栈;POP指令用于把栈区的数据弹出列表的寄存器中。PUSH、POP指令使用栈寄存器R13作为基址堆栈操作。12、 在ARM“伪指令”和“汇编指令”中都有LDR指令,如何区分指令中的LDR为“伪指令”还是“汇编指令”?请举例说明。ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345

13、678这个地址中的值存放到r0中。另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数前加上=,以表示把一个值(一般是一个地址)写到某寄存器中,比如:ldr r0, =0x12345678这样,就把0x12345678这个值写到r0中了。 ldr伪指令用于加载32位的立即数或一个地址值到指定寄存器。在汇编编译源程序时,ldr伪指令被编译器替换成一条合适的指令。13、 ATPCS标准的具体内容是什么?建立该标准的目的是什么?ATPCS(ARM-Thumb Produce Call Standard)是ARM程序和Thumb程序中子程序

14、调用的基本规则,目的是为了使单独编译的C语言程序和汇编程序之间能够相互调用。这些基本规则包括子程序调用过程中寄存器的使用规则、数据栈的使用规则和参数的传递规则。14、 Boot Loader在嵌入式系统中主要起什么作用?完成哪些主要的工作?BootLoader是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。通过BootLoader,初始化硬件设备,建立内存和I/O空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境15、 简述嵌入式Linux交叉编译环境搭建及开发步骤1.建立开发环境 在主机上安装Linux建立交叉开发环境:如交叉编译器,交叉调试器。(arm-Linux-

15、gcc)交叉编译器完整的安装一般涉及到多个软件的安装,包括binutils、 gcc、 glibc等软件。 其中, binutils主要用于生成一些辅助工具,如objdump、as、ld 等;gcc 是用来生成交叉编译器,主要生成 arm-linux-gcc 交叉编译工具(应该说,生成此工具后已经搭建起了交叉编译环境,可以编译 Linux 内核了,但由于没有提供标准用户函数库,用户程序还无法编译);glibc 主要是提供用户程序所使用的一些基本的函数库。交叉编译器的安装有两种方法:一种是利用网上交叉编译包安装,第二种是利用交叉链Crosstool自己构建交叉编译器。2.配置开发主机,配置MiniCom或者超级终端 配置网络环境配置网络服务:如ftp和nfs等3.建立引导装载程序Bootloader Boot

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号