版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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时,执行BX指令进入ARM状态。6、 ARM有哪7种工作模式?各自的用途是什么?其中
8、哪些是特权模式?哪些是异常模式?系统开机时应该为这些工作模式做哪些准备?ARM微处理器支持7种运行模式,分别为:用户模式(usr): ARM处理器正常的程序执行状态。系统模式(sys):运行具有特权的操作系统任务。快速中断模式(fiq):用于高速数据传输或通道处理。外部中断模式(irq):用于通用的中断处理。管理模式(svc):操作系统使用的保护模式。数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内
9、外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。后五种为异常模式,它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。管理模式SVC,复位后缺省模式;多种特权模式变化,主要完成各模式的堆栈设置,注意不要进入用户模式;用户程序的运行模式,一般为用户模式User。7、 一个程序执行时间的计算公式: 其中: Ninst :指令数 CPI :每条指令的平均时钟周期数。 fclk:时钟频率。 请结合该公式
10、分析提高嵌入式系统工作效率的途径有哪些?优化代码,提高时钟频率,降低cpi,提高cpu指令执行效率8、 “ARM处理器指令大部分可以作为条件指令来执行,大部分的指令也可以影响条件,但是都不是强制的”,这里所说“条件”具体指的是什么?“不是强制的”是什么意思?如何才能让一条指令影响条件标志?又如何才能使一条指令变成条件执行指令。ARM体系结构包含一个当前程序状态寄存器(CPSR),CPSR中的ALU状态标志N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。在ARM模式下,任何一条数据处理指令可以选择是否根据操作的结果来更新CPSR寄存器中的
11、ALU状态标志位,在数据处理指令中使用S后缀来实现该功能。但有一些指令的执行总是会影响条件代码标志。每条ARM指令的条件码域包含4位条件码,共16种。几乎所有指令均根据CPSR中条件码的状态和指令条件码域的设置有条件地执行。当指令执行条件满足时,指令被执行,否则被忽略。在Thumb模式,大多数操作总是更新状态标志位,并且只能使用条件转移指令(B)来实现条件执行。该指令(B)的后缀和在ARM模式下是一样的。其他指令不能使用条件执行。每条ARM指令的条件码域包含4位条件码,共16种。几乎所有指令均根据CPSR中条件码的状态和指令条件码域的设置有条件地执行。当指令执行条件满足时,指令被执行,否则被忽
12、略。9、 什么是“有效立即数”,有效立即数在ARM指令中的表示方法是怎样的?为什么采用这样的表示方法?有效立即数由一个8位的常数循环移位偶数位得到,在12位的shifter_operand中,8位存数据,4位存移位的次数。shifter_operand占的位数为12位。要用一个12位的编码来表示任意的32位数是绝对不可能的,只有在表示数的数量上做限制,通过编码来实现用12位的编码来表示32位数,8位存数据,4位存移位的次数10、 ARM处理器指令大多都是采用寄存器作为其操作数,以提高指令的执行效率,为此ARM处理器设置了大量的寄存器,可是数据的最初来源和最终归宿都是存储器,ARM是如何来解决这
13、一问题的?11、 ARM处理器的堆栈有哪些类型?在ARM状态和Thumb状态下分别如何实现堆栈操作。ARM微处理器支持这四种类型的堆栈工作方式,即:满递增方式FA(Full Ascending):堆栈指针指向最后入栈的数据位置,且由低地址向高地址生成。满递减方式FD(Full Decending):堆栈指针指向最后入栈的数据位置,且由高地址向低地址生成。空递增方式EA(Empty Ascending):堆栈指针指向下一个入栈数据的空位置,且由低地址向高地址生成。空递减方式ED(Empty Decending):堆栈指针指向下一个入栈数据的空位置,且由高地址向低地址生成。LDM(或STM)条件
14、类型 基址寄存器!,寄存器列表LDM(或STM)指令用于从由基址寄存器所指示的一片连续存储器到寄存器列表所指示的多个寄存器之间传送数据,该指令的常见用途是将多个寄存器的内容入栈或出栈。其中,类型为以下几种情况:FD满递减堆栈;ED空递减堆栈;FA满递增堆栈;EA空递增堆栈;LDM和STM指令可以将任何范围为R0R7的寄存器子集加载或存储,PUSH和POP指令使用堆栈指针R13作为基址实现满递减堆栈,除R0R7外,PUSH指令还可以存储链接寄存器R14,并且POP指令可以加载程序指令PC。PUSH和POP指令格式:PUSH 低寄存器的全部或其子集POP 低寄存器的全部或其子集 这两条指令是栈操作
15、指令,用于在寄存器和堆栈之间进行成组的数据传送,PUSH指令用于把寄存器列表中的寄存器数据推进堆栈;POP指令用于把栈区的数据弹出列表的寄存器中。12、 在ARM“伪指令”和“汇编指令”中都有LDR指令,如何区分指令中的LDR为“伪指令”还是“汇编指令”?请举例说明。单一数据加载/存储指令LDR格式为:LDR条件 目的寄存器,<存储器地址>LDR指令是字加载指令,用于从存储器中将一个32位的字数据传送到目的寄存器中。LDRR3,R4;LDR伪指令语法格式 :LDRcond Rd, =数值表达式;加载数字常量LDRcond Rd, =语句标
16、号+数值表达式 ;加载地址LDR伪指令是把一个数字常量或一个地址加载到低端寄存器伪指令。如果所加载的是一个32位的数字常量,则编译程序就可以把这条语句编译成一条MOV指令,如果不能用MOV指令来表达,则编译成一条LDR指令。如果所加载的是地址的话,编译程序会把这条语句编译成LDR指令。13、 ATPCS标准的具体内容是什么?建立该标准的目的是什么?为了使单独编译的C语言程序和汇编程序能够互相调用,定义了统一的函数过程调用标准ATPCS(ARM-Thumb Procedure Call Standard)。ATPCS定义了寄存器组中的R0R3作为参数传递和结果返回寄存器,如果参数数目超过四个,则
17、使用堆栈进行传递。内部寄存器的访问速度是远远大于存储器的,所以要尽量使参数传递在寄存器里面进行,即应尽量把函数的参数控制在四个以下。14、 Boot Loader在嵌入式系统中主要起什么作用?完成哪些主要的工作?BootLoader是一段汇编代码,存放在MBR(Master Boot Record-主引导扇区 )中,它的主要作用就是将操作系统启动代码读入内存。从功能上看,Bootloader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确
18、的环境。15、 简述嵌入式Linux交叉编译环境搭建及开发步骤交叉编译器完整的安装一般涉及到多个软件的安装, 包括binutils、 gcc、 glibc等软件。交叉编译器的安装有两种方法:一种是利用网上交叉编译包安装,第二种是利用交叉链Crosstool自己构建交叉编译器。1、利用交叉编译包安装交叉编译器网上有很多编译好的交叉编译器,将下载的压缩包解压,复制到usr/local/arm,下面以安装3.4.1为例:创建目录:mkdir p /usr/local/arm将解压得到的文件夹复制到usr/local/arm指定交叉编译器路径:export PATH=$PATH:/usr/local/
19、arm/3.4.1/bin这样交叉编译器就算是安装好了。2、利用crosstool构建交叉编译器1. 做好准备工作。下载上述工具的源码包和补丁、准备内核头文件和创建工作目录等。2. 编译binutils。3. 编译辅助编译器。4. 使用交叉编译工具链,如arm-linux-gcc编译glibc库。5. 编译生成完整的gcc编译器。重新配置gcc功能,使其完整的支持C、C等语言。1.建立开发环境 2.配置开发主机,3.建立引导装载程序Bootloader 4.移植Linux 操作系统 5.建立根文件系统 6.建立应用程序的flash磁盘分区 7.开发应用程序 8.应用程序开发结束后,需要烧写内核
20、、根文件系统、应用程序。最后进行产品的发布。16、 在编写嵌入式Linux设备驱动程序中,如何对I/O物理地址进行读写?17、 简述在多线程开发中互斥锁(Mutex)的作用及使用步骤互斥锁是同一时间只能有一个线程获得控制权的机制。互斥锁的使用步骤:(1) 声明互斥锁,并设置为快速锁(常用的锁)pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; (2) 在对共享数据或者变量修改前,调用pthread_mutex_lock (&mutex)加锁; 如果此时mutex已经被别的线程获取,那么pthread_mutex_lock将会一直等待,直
21、到别的线程释放了锁。 (3) 修改完成后,再调用pthread_mutex_unlock (&mutex)释放锁。释放后,别的等待锁的线程将会被唤醒18、 分析下面两条指令的作用,并分析基址寄存器的变化有什么不同? LDMIA R0!,R2-R9 STMIA R1,R2-R9LDMIA R0!,R2-R9 (将R0指向的单元中数据读出到R2R9中)加载数据到R2R9,由于存在!最后的地址写入基址寄存器STMIA R1,R2-R9-保存R2R9的数据到R1指向的地址,基址寄存器的数据不变19、 请阅读如下指令段,并分析这段指令的功能 MOV R11,#20 MOV R10,#0 LOOP
22、: LDR R0,R8,#4 LDR R1,R9,#4 MLA R10,R0,R1,R10 SUBS R11,R11,#1 BNE LOOPMOV R11,#20 设定循环次数为20次 MOV R10,#0 初始化和为0LOOP: LDR R0,R8,#4 把以R8+4后为地址的内容加载到R0 LDR R1,R9,#4 把以R9+4后为地址的内容加载到R1 MLA R10,R0,R1,R10 R10=R0*R1+R10 SUBS R11,R11,#1 R11=R11-1 BNE LOOP 减到0跳出循环20、 编写 S3C2440X 处理器的端口控制程序,实现在GPC5上输出一周期为50Hz的
23、方波,要求利用语言编写主控制程序,汇编实现精确定时。若干ms的汇编延时程序如下:delayxms stmfd sp!,r11; sub r0,r0,#1 ;r0=r0-1 ldr r11,=1000loop2 sub r11,r11,#1 cmp r11,#0x0 bne loop2 cmp r0,#0x0;将r0与0比较 bne delayxms ;比较的结果不为0,则继续调用delayxms ldmfd sp!,r11; mov pc,lr;返回要求程序结构要完整。#include <stdio.h>#define GPCCON (*(
24、volatile unsigned long *) 0x56000020#define GPCDAT (*(volatile unsigned long *) 0x56000024extern void delayxms();int main()GPCCON =1<<10;GPBDAT = 0x0;while(1) GPCDAT |= 1<<5; delayxms();
25、delayxms(); GPCDAT &= (1<<5); delayxms();delayxms();Return 0;AREA asmfile, CODE, READONLYEXPORT delayxmsdelayxms stmfd sp!,r11; sub r0,r0,#1 ;r0=r0-1 ldr r11,=1000loop2 sub r11,r11,#1 cmp r11,#0x0 bne loop2 cmp r0,#0x0;将r0与0比较 bne delayxms ;比较的结果不为0,则继续调用delayxms ldmfd
26、 sp!,r11; mov pc,lr;返回 ENDIMPORT mainarea Init,code,readonly entrycode32; * Setup interrupt/exception vectors *start b Reset_Handler Undefined_Handler b Undefined_HandlerSWI_Handler b SWI_HandlerPrefetch_handler b&
27、#160;Prefetch_handlerAbort_Handler b Abort_Handlernop IRQ_Handler b IRQ_HandlerFIQ_Handler b FIQ_HandlerReset_Handler bl initstack 初始化各模式下的堆栈指针 切换至用户模式堆 msr cpsr_c,#0xd0 110 10000 bl mainhalt b halt initstack mov r0,lr r0<-lr,因为各种模式下r0是相同的而各个模式? 设置管理模式堆栈msr cpsr_c,#0xd3 110 10011 ldr sp,stacksvc 设置中断模式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《矿物质水介绍》课件
- 八下期末考拔高测试卷(2)(原卷版)
- 第23课 内战爆发(原卷版)
- 2014年高考语文试卷(湖北)(空白卷)
- 农耕之路模板
- 建筑行业工人培训总结
- 人力资源的战略驱动
- 会计个人述职报告汇编15篇
- 网络公司前台接待工作总结
- 2023年-2024年项目部安全培训考试题附完整答案(夺冠)
- 中医儿科病例
- 2024年中国光电耦合市场调查研究报告
- 2024年高中语文课内文言文复习《五代史伶官传序》课后练习、探究性阅读含答案解析翻译
- 《4 平平安安回家来》教学设计-2024-2025学年道德与法治一年级上册统编版
- 智研咨询发布-中国医学影像诊断中心行业现状、发展环境及投资前景分析报告
- 员工宿舍固定资产管理制度
- 2023中国人工智能系列白皮书-大模型技术(2023版)
- 2024中考语文《朝花夕拾》历年真题专练(学生版+解析版)
- 智慧水务行业发展报告2024-2025
- 2024年7月国家开放大学专科《社会调查研究与方法》期末纸质考试试题及答案
- 《陆上风力发电建设工程质量监督检查大纲》
评论
0/150
提交评论