版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统设计复习题1、根据嵌入式系统的实时性强弱,嵌入式系统是如何分类的?结合具体的应用场合,对它们的特点分别加以描述。实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束, 则认为系统失效。非实时系统(如 PDA ),对计算或者外接变换响应的时间没有确定性的要求。 软实时系统(如消费类产品)软实时系统就是那些从统计的角度来说,一个任务能够得到有确保的处理时间,到达系 统的事件也能够在截止期限到来之前得到处理,但违反截止期限并不会带来致命的错误。例如在网络中仅仅是轻微地 降低了系统的吞吐量。硬实时系统(工业实时控制系统) 硬实时系统指系统要有
2、确保的最坏情况下的服务时间,即对于事件的响应时间的截 止期限是无论如何都必须得到满足。例如中高档汽车中使用的气囊,晚一秒钟展开气囊比没有气囊的情况更糟糕。强实时系统 , 其系统响应时间在毫秒或微秒级。一般实时系统 , 其系统响应时间在几秒的数量级上,其实时性的要求比强实时系统要差一些。弱实时系统 , 其系统响应时间约为数十秒或更长。这种系统的响应时间可能随系统负载的轻重而变化。2、结合嵌入式系统的组成结构, 详细描述嵌入式系统开发的具体工作有哪些?在嵌入式硬件和嵌入式软件之间有一个 接口层次,这个接口层为什么层?其具体的开发特点是什么?1)系统定义与需求分析;2 )系统设计方案的初步确立; 3
3、 )初步设计方案性价比评估与方案评审论证; 4 )完善初步方案、初步方案实施; 5 )软硬件集成测试; 6 )系统功能性能测试及可靠性测试。嵌入式系统的组成部分是嵌入式系统硬件平台、嵌入式操作系统(RTOS)和嵌入式系统应用。操作系统与硬件的接口嵌入式系统硬件平台是以嵌入式处理器为核心,由存储器、I/O 单元电路、通信模块、外部设备等必要的辅助接口组成的。嵌入式软件:包括嵌入式操作系统及应用软件嵌入式操作系统是嵌入式系统中最基本的软件,它负责分配、回收,控制和协调全部软硬件资源的并发活动,并且提 供应用程序的运行环境和接口,是应用程序运行的基础。嵌入式应用软件嵌入式应用软件是服务于某种专用应用
4、领域,基于某一特定的嵌入式硬件平台,用来达到用户预期任务的计算机软件。 由于引入了一个中间层,屏蔽了底层硬件的多样性,操作系统不再面对具体的硬件环境,而是面对由这个中间层次所 代表的、逻辑上的硬件环境,因此,把中间层次叫做硬件抽象层( Hardware Abstraction Layer, HAL )。 HAL 的引入大大 推动了嵌入式实时系统的通用化,从而为嵌入式系统的广泛应用提供了可能。板级支持包(Board Support Package, BSP)是现有的大多数商用嵌入式操作系统实现可移植性所采用的一种方案,是 硬件抽象层的一种实现。 BSP 隔离了所支持的嵌入式操作系统与底层硬件平台
5、之间的相关性,是嵌入式操作系统能够 通用与 BPS 所支持的硬件平台,从而实现嵌入式操作系统的可移植性和跨平台性,以及嵌入式操作系统的通用性、复 用性。3、嵌入式处理器的种类有哪些?如能给出具体的代表性芯片请给出芯片的型号及生产厂家。嵌入式微控制器 8051 英特尔嵌入式微处理器 ARM、 MIPS、 Aml86/88 ( Innovasic) 、 386EX (intel)、 PowerPC (IBM )、 68000系列( Motorola ) DSP 处理器 TI 公司 TMS320C2000/5000/6000高度集成的片上系统4、嵌入式交叉开发环境的组成是怎样的?嵌入式系统开发为什么
6、需要这样的交叉开发环境而通用计算机的开发不需 要?嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。以运行x86模式的特点:目前一般采用的解决办法是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可 的二进制代码格式,最后再下载到目标平台上的特定位置上运行。交叉开发环境一般由运行于宿主机上的交叉开发软件、宿主机到目标机的调试通道组成。运行于宿主机上的交叉开发软件最少必须包含编译调试模块,其编译器为交叉编译器。作为宿主机的一般为基于 体系的桌上型计算机,而编译出的代码必须在目标机处理器体系结构上运行。在宿主机上编译好目标代码后,
7、通过宿 主机到目标机的调试通道将代码下载到目标机,然后由运行于宿主机的调试软件控制代码在目标机上运行调试。 嵌入式系统应用软件的开发属于跨平台开发,因此需要一个交叉开发环境。5、11、ARM有哪些工作状态?如何进行状态切换?T变种的ARM处理器有两种工作状态:ARM状态:32位,这种状态下执行字对准的 ARM指令;Thumb状态:16位,这种状态下执行半字对准的Thumb指令。ARM处理器在两种工作状态之间可以利用BX指令方便地进行切换。(1)进入Thumb状态。当操作数寄存器的状态位(位 0)为1时,执行BX指令进入Thumb状态。(2)进入ARM状态。当操作数寄存器的状态位(位 0)为0时
8、,执行BX指令进入ARM状态。6、ARM有哪7种工作模式?各自的用途是什么?其中哪些是特权模式?哪些是异常模式?系统开机时应该为这些工 作模式做哪些准备?ARM微处理器支持7种运行模式,分别为:用户模式(usr): ARM处理器正常的程序执行状态。系统模式(sys):运行具有特权的操作系统任务。快速中断模式(fiq):用于高速数据传输或通道处理。外部中断模式(irq):用于通用的中断处理。管理模式(svc):操作系统使用的保护模式。数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬
9、件协处理器的软件仿真。除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。后五种为异常模式,它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进 入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。管理模式SVC,复位后缺省模式;多种特权模式变化,主要完成各模式的堆栈设置,注意不要进入用户模式;用户程 序的运行模式,一般为用户模式User。7、一个程序执行时间的计算公式:其中:TprogN
10、inst CPIf clkN inst :指令数CPI :每条指令的平均时钟周期数。fclk :时钟频率。请结合该公式分析提高嵌入式系统工作效率的途径有哪些 ?优化代码,提高时钟频率,降低 cpi,提高cpu指令执行效率8、 “ ARM 处理器指令大部分可以作为条件指令来执行,大部分的指令也可以影响条件, 但是都不是强制的” ,这里所 说“条件”具体指的是什么?“不是强制的”是什么意思?如何才能让一条指令影响条件标志?又如何才能使一条 指令变成条件执行指令。ARM 体系结构包含一个当前程序状态寄存器( CPSR), CPSR 中的 ALU 状态标志 N 、 Z、C、 V 均为条件码标志位。 它
11、们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。在 ARM 模式下,任何一条数据处理指令可以选择是否根据操作的结果来更新CPSR 寄存器中的 ALU 状态标志位,在数据处理指令中使用 S 后缀来实现该功能。但有一些指令的执行总是会影响条件代码标志。每条ARM 指令的条件码域包含4位条件码,共16种。几乎所有指令均根据 CPSR中条件码的状态和指令条件码域的设置有条件地执行。当指 令执行条件满足时,指令被执行,否则被忽略。在 Thumb 模式,大多数操作总是更新状态标志位,并且只能使用条件转移指令(B) 来实现条件执行。该指令 (B) 的后缀和在 ARM 模式下是一样的。
12、其他指令不能使用条件执行。每条ARM指令的条件码域包含 4位条件码,共16种。几乎所有指令均根据 CPSR中条件码的状态和指令条件码域的 设置有条件地执行。当指令执行条件满足时,指令被执行,否则被忽略。9、什么是“有效立即数” ,有效立即数在 ARM 指令中的表示方法是怎样的?为什么采用这样的表示方法?有效立即数由一个 8位的常数循环移位偶数位得到,在 12位的 shifter_operand 中, 8位存数据, 4位存移位的次数。 shifter_operand 占的位数为 12 位。要用一个 1 2位的编码来表示任意的 32 位数是绝对不可能的,只有在表示数的数量 上做限制,通过编码来实现
13、用 12位的编码来表示 32位数, 8位存数据, 4位存移位的次数10、ARM 处理器指令大多都是采用寄存器作为其操作数,以提高指令的执行效率,为此ARM 处理器设置了大量的寄存器,可是数据的最初来源和最终归宿都是存储器,ARM 是如何来解决这一问题的?11、ARM 处理器的堆栈有哪些类型?在 ARM 状态和 Thumb 状态下分别如何实现堆栈操作。ARM 微处理器支持这四种类型的堆栈工作方式,即: 满递增方式 FA(Full Ascending ):堆栈指针指向最后入栈的数据位置,且由低地址向高地址生成。 满递减方式FD( Full Decending):堆栈指针指向最后入栈的数据位置,且由
14、高地址向低地址生成。 空递增方式EA (Empty Ascending):堆栈指针指向下一个入栈数据的空位置,且由低地址向高地址生成。 空递减方式ED ( Empty Decending):堆栈指针指向下一个入栈数据的空位置,且由高地址向低地址生成。LDM (或 STM) 条件 类型 基址寄存器 !,寄存器列表LDM (或STM )指令用于从由基址寄存器所指示的一片连续存储器到寄存器列表所指示的多个寄存器之间传送数据, 该指令的常见用途是将多个寄存器的内容入栈或出栈。其中,类型 为以下几种情况:FD 满递减堆栈; ED 空递减堆栈; FA 满递增堆栈; EA 空递增堆栈;LDM和STM指令可以
15、将任何范围为 R0R7的寄存器子集加载或存储,PUSH和POP指令使用堆栈指针 R13作为基址实现满递减堆栈,除 R0R7外,PUSH指令还可以存储链接寄存器R14,并且POP指令可以加载程序指令 PC。PUSH 和 POP 指令格式:PUSH 低寄存器的全部或其子集 PUSH 指令用于把寄存器列表中的寄存器POP 低寄存器的全部或其子集 这两条指令是栈操作指令,用于在寄存器和堆栈之间进行成组的数据传送, 数据推进堆栈; POP 指令用于把栈区的数据弹出列表的寄存器中。12、在ARM “伪指令”和“汇编指令”中都有LDR指令,如何区分指令中的 LDR为“伪指令”还是“汇编指令” ?请举例说明。
16、单一数据加载 /存储指令 LDR格式为:LDR 条件 目的寄存器, LDR 指令是字加载指令,用于从存储器中将一个 32位的字数据传送到目的寄存器中。LDR R3,R4;LDR 伪指令语法格式 :LDRcond Rd, = 数值表达式;加载数字常量LDRcond Rd, = 语句标号 +数值表达式;加载地址LDR 伪指令是把一个数字常量或一个地址加载到低端寄存器伪指令。 如果所加载的是一个 32位的数字常量, 则编译程 序就可以把这条语句编译成一条 MOV 指令,如果不能用 MOV 指令来表达,则编译成一条 LDR 指令。如果所加载的 是地址的话,编译程序会把这条语句编译成 LDR 指令。13
17、、ATPCS 标准的具体内容是什么?建立该标准的目的是什么?为了使单独编译的 C 语言程序和汇编程序能够互相调用,定义了统一的函数过程调用标准ATPCS ( ARM-ThumbProcedure Call Standard)。ATPCS定义了寄存器组中的R0R3作为参数传递和结果返回寄存器,如果参数数目超过四 个,则使用堆栈进行传递。内部寄存器的访问速度是远远大于存储器的,所以要尽量使参数传递在寄存器里面进行,即应尽量把函数的参数控制 在四个以下。14、Boot Loader 在嵌入式系统中主要起什么作用?完成哪些主要的工作?BootLoader 是一段汇编代码,存放在MBR(Master B
18、oot Record- 主引导扇区 )中,它的主要作用就是将操作系统启动代码读入内存。从功能上看, Bootloader 就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或 用户应用程序准备好正确的环境。15、简述嵌入式 Linux 交叉编译环境搭建及开发步骤交叉编译器完整的安装一般涉及到多个软件的安装,包括 binutils 、 gcc、 glibc 等软件。交叉编译器的安装有两种方法: 一种是利用网上交叉编译包安装,第二种是利用交叉链 Crosstool 自
19、己构建交叉编译器。1 、利用交叉编译包安装交叉编译器网上有很多编译好的交叉编译器,将下载的压缩包解压,复制到usr/local/arm, 下面以安装 3.4.1 为例:仓U建目录: mkdir p /usr/local/arm将解压得到的文件夹复制到 usr/local/arm指定交叉编译器路径: export PATH=$PATH:/usr/local/arm/3.4.1/bin这样交叉编译器就算是安装好了。2、利用 crosstool 构建交叉编译器1. 做好准备工作。下载上述工具的源码包和补丁、准备内核头文件和创建工作目录等。2. 编译 binutils 。3. 编译辅助编译器。4. 使
20、用交叉编译工具链,如 arm-linux-gcc 编译 glibc 库。5. 编译生成完整的 gcc 编译器。重新配置 gcc 功能,使其完整的支持 C 、C 等语言。1.建立开发环境2.配置开发主机,3. 建立引导装载程序 Bootloader4. 移植 Linux 操作系统5. 建立根文件系统6. 建立应用程序的 flash 磁盘分区7. 开发应用程序8. 应用程序开发结束后,需要烧写内核、根文件系统、应用程序。最后进行产品的发布。16、在编写嵌入式 Linux 设备驱动程序中,如何对 I/O 物理地址进行读写?17、简述在多线程开发中互斥锁 (Mutex) 的作用及使用步骤互斥锁是同一时
21、间只能有一个线程获得控制权的机制。互斥锁的使用步骤:( 1) 声明互斥锁,并设置为快速锁(常用的锁) pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;( 2) 在对共享数据或者变量修改前,调用pthread_mutex_lock (&mutex) 加锁;如果此时 mutex 已经被别的线程获取,那么 pthread_mutex_lock 将会一直等待,直到别的线程释放了锁。( 3) 修改完成后,再调用 pthread_mutex_unlock (&mutex) 释放锁。释放后,别的等待锁的线程将会被唤醒18、分析下面两条指令的作用,并分析基址
22、寄存器的变化有什么不同?LDMIASTMIAR0!,R2-R9R1,R2-R9LDMIA R0!,R2-R9 (将 R0 指向的单元中数据读出到 R2R9 中)加载数据到 R2R9 ,由于存在!最后的地址写入 基址寄存器STMIA R1,R2-R9 保存 R2R9 的数据到 R1 指向的地址,基址寄存器的数据不变19、请阅读如下指令段,并分析这段指令的功能MOVMOVLOOP: LDRLDRMLASUBSBNER11,#20R10,#0R0,R8,#4R1,R9,#4R10,R0,R1,R10R11,R11,#1LOOPMOV R11,#20MOV R10,#0LOOP: LDR R0,R8,
23、#4LDR R1,R9,#4MLA R10,R0,R1,R10设定循环次数为 20 次初始化和为 0把以 R8+4 后为地址的内容加载到R0把以R9+4后为地址的内容加载到R1SUBS R11,R11,#1R11=R11-1R10=R0*R1+R10BNE LOOP减到 0 跳出循环20、编写S3C2440X处理器的端口控制程序,实现在GPC5上输出一周期为 50Hz的方波,要求利用C语言编写主控制程序,汇编实现精确定时。若干 ms 的汇编延时程序如下:delayxms stmfd sp!,r11; sub r0,r0,#1 ;r0=r0-1 ldr r11,=1000loop2sub r11
24、,r11,#1cmp r11,#0x0bne loop2cmp r0,#0x0;将 r0 与 0比较bne delayxms ; 比较的结果不为 0,则继续调用 delayxms ldmfd sp!,r11;mov pc,lr; 返回要求程序结构要完整。#include #defineGPCCON (*(volatile#defineGPCDAT (*(volatileunsignedlong*)0x56000020unsignedlong*)0x56000024extern void delayxms();int main()GPCCON=110;GPBDAT = 0x0; while(1)
25、GPCDAT |=15;delayxms(); delayxms();GPCDAT &=(15);delayxms();delayxms();Return 0;AREA asmfile, CODE, READONLY EXPORT delayxms delayxmsstmfd sp!,r11; sub r0,r0,#1 ;r0=r0-1 ldr r11,=1000loop2sub r11,r11,#1cmp r11,#0x0bne loop2cmp rO,#OxO;将 r0 与 0比较bne delayxms ; 比较的结果不为 0,则继续调用 delayxms ldmfd sp!,r11;mov pc,lr; 返回ENDIMPORT mainarea Init,code,readonly entrycode32 *JSetup interrupt/exceptionvectors *startb Reset_HandlerUndefined_Handler b Undefined_HandlerSWI_Handler b SWI_HandlerPrefetch_handlerAbort_Handler b b Prefetch_handlerAbort_Handlernop IRQ_Handler
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国增效醚行业投资前景及策略咨询研究报告
- 2024至2030年中国二氧化氯测定仪行业投资前景及策略咨询研究报告
- 2024至2030年中国不锈钢热轧带钢数据监测研究报告
- 2024年贵州省中考语文试题含解析
- 2024年中国进水支管市场调查研究报告
- 2024年中国滚涂型玻璃鳞片树脂市场调查研究报告
- 2024年中国毛袖绒里二指羊皮手套市场调查研究报告
- 2024八年级数学上册第五章平行四边形2平行四边形的判定第3课时由对角线的关系判定平行四边形习题课件鲁教版五四制
- 2024年大兴安岭客运从业资格证理论考试题
- 珍惜时间演讲稿
- 富士M225打印机无线连接
- 交警高清抓拍监控系统技术方案
- 妇幼保健院急诊预检、分诊流程图
- B737-300轮舱部件图
- 各种注射法(课堂PPT)
- 中国加工贸易的发展历程与政策演变
- 译林牛津英语7A-unit3-Welcome-to-our-school教案(6课时)
- 新规范箱涵结构设计(单孔)
- 医师执业注册授权委托书
- 飞利浦16排螺旋CT机操作规程(1)
- (完整版)初中英语同义词(近义词)归纳
评论
0/150
提交评论