西南民族大学嵌入式系统复习资料.docx
- 文档编号:840520
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:9
- 大小:24.11KB
西南民族大学嵌入式系统复习资料.docx
《西南民族大学嵌入式系统复习资料.docx》由会员分享,可在线阅读,更多相关《西南民族大学嵌入式系统复习资料.docx(9页珍藏版)》请在冰豆网上搜索。
西南民族大学嵌入式系统复习资料
第一章
1.什么是嵌入式系统?
它由哪几部分组成?
有何特点?
以应用为中心,计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统、应用软件等几大部分组成。
嵌入式处理器与通用处理器的最大不同点在其大多工作在为特定用户群设计的系统。
外围设备包括:
存储器、接口、人机交互。
嵌入式操作系统的特点:
软硬件一体化,集计算机技术、微电子技术和行业技术为一体;需要操作系统支持,代码小,执行速度快;专用紧凑,用途固定,成本敏感;可靠性要求高;多样性,应用广泛,种类繁多。
2.嵌入式处理器分为哪几类?
低端的微控制器(MicroConctrollerUnit,MCU)
中高端的嵌入式微处理器(EmbeddedMicroProcessorUnit,EMPU)
通信领域的DSP系统(DigitalSignalProcessor,DSP)
高度集成的片上系统(SystemonChip,SoC)
3.ARM英文原意是什么?
它是个怎样的公司?
其处理器有何特点?
ARM(AdvancedRISCMachines)公司是全球领先的16/32位RISC微处理器知识产权设计供应商。
ARM公司通过将其高性能、低功耗、低成本的RISC微处理器,外围和系统芯片设计技术转让给合作伙伴来生产各具特色的芯片。
ARM处理器的特点:
小体积、低功耗、低成本而性能高。
16/32位指令集。
全球至多的合作伙伴。
4.什么是实时系统?
它由哪些特征?
如何分类?
实时系统是具有实时性且能支持实时控制系统工作的操作系统。
其首要任务是调动一切可利用的资源来完成实时控制任务,其次才着眼于提高计算机系统的使用效率,其重要特点是能满足对时间的限制和要求。
实时性:
实时系统所产生的结果在时间上有严格的要求,只有符合时间要求的结果才是正确的。
并行性:
要求系统有并行处理能力,以便能同时相应来自不同端口的输入信号。
多路性:
对多个不同的现场进行采集,以及对多个对象和多个执行实行控制。
独立性:
每个用户向实时系统提出服务请求,相互间是独立的。
在实时控制系统中对信号的采集和对象控制也是独立的。
可预测性:
实时系统的实际行为必须处在一定的限度内,而这个限度由系统的定义获得。
可靠性:
一方面指系统的正确性,另一方面指系统的健壮性,即使系统出现错误,仍然处于可预测状态,仍可以安全地带错运行和平缓降级它的性能。
分类:
强实时系统(保质、保量、在限定时间内完成任务)、弱实时系统(没有限制完成时间)、一般实时系统(强和弱的折中)。
5.RTOS由几部分组成?
它由哪些特点?
与一般操作系统有何不同?
实时内核(主要实现任务管理,定时器管理,存储器管理、任务间通信与同步,中断管理等)、网络组件、文件系统、图形用户界面。
特点:
支持异步事件的响应;中断和调度任务的优先级机制;支持抢占式调度;确定的任务切换时间和中断延迟时间;支持同步。
6.实时操作系统常用的任务调度算法有哪几种?
基于优先级的调度算法:
非抢占式调度,抢占式调度
同一优先级的时间轮转调度算法(执行一段时间无论完成与否,处理器均转入下一个就绪的同一优先级任务)
单调速率调度算法(执行频率越高,其优先级越高)
7.用什么方法解决优先级反转问题?
(1)优先级继承:
设C为正占用着某项共享资源的进程P以及所有正在等待占用此项资源的进程集合;找出这个集合的优先级最高者P_h,其优先级为p’;把进程P的优先级设置成P成’。
(2)优先级封顶:
设C为所有可能竞争使用某项共享资源的进程的集合。
事先为这个集合规定一个优先级上限p’,使得这个集合的所有优先级都小于p’;在创建保护该项资源的信号量或互斥量时,将P将’作为一个参数;每当有进程通过这个信号量或互斥量取得对共享资源的独占使用权时,就将此进程的优先级暂时提高到P’’,一直到释放该项资源时菜恢复对其原有的优先级。
第二章
1.嵌入式系统开发过程分为哪几个阶段?
每个阶段的特点是什么?
(1)需求分析阶段:
对问题的识别和分析;制定规格说明文档;需求评审
特点:
采用成熟、易于二次开发的系统易于节省时间,从而以最短时间面世。
(2)设计阶段:
数据流分析-划分任务-定义任务间接口
特点:
DARTS的设计方法-是结构化设计的扩展,划分出任务,并提供定义任务间的接口机制,适合设计多个并发执行的任务。
(3)生成代码阶段:
代码编程-交叉编译和链接-交叉调试-测试(单元和集成测试)
特点:
一般采用的方法是现在通用PC机上编程,然后通过交叉编译、链接,将程序做成目标平台上可以运行的二进制代码格式,最后将程序下载到目标平台上的特定位置,在目标板上启动这段二进制代码。
(4)固化阶段:
嵌入式应用软件完成以后,编译器要对源代码重新编译一次,以产生固化到目标坏境的可执行代码,再烧到环境目标环境的Flash中。
固化的可执行代码和用于调试的可执行代码有些不同。
固化用的代码在目标文件中把调式用的信息都屏蔽掉了。
固化后没有监控器执行硬件的启动和初始化,这部分工作必须由固化的程序自己完成,所以启动模块必须包含在固化代码中。
特点:
程序需要写入到Flash中固化,保证每次运行后下一次运行无误,所以嵌入式开发相比增加了软件的固化阶段。
2.嵌入式系统有哪几种调试方式?
现在流行的哪种?
使用什么接口?
(1)源程序模拟器方式:
在pc机上,通过软件手段模拟执行为某种嵌入式处理器写的源程序的测试工具。
三级模拟功能(指令级、周期级、定时级)
(2)监控器方式:
宿主机和目标机建立物理上的连接,通过串口、以太口等把两台机器相连,使之正常工作,然后在宿主机上运行调试器,目标机运行监控程序和被调试程序。
(3)仿真器方式:
使用处理器内嵌的调试模块接管中断及异常处理。
用户通过设置CPU内部的寄存器来指定哪些中断或异常发生后处理器直接进入调试状态,而不进入操作系统的处理程序。
JTAG、IDE(在线仿真器in-circuitEmulator)、ICD(in-circuitDebugger在线调试器)接口。
通过JTAG既可以对目标系统进行测试,也可以对目标系统的存储单元进行编程。
3.什么是板级支持包?
它一般应完成哪些工作?
板级支持包(BoardSupportPackage)是操作系统与目标应用硬件环境的中间接口,它是软件包中具有平台依赖性的那一部分。
功能:
在系统启动时,对硬件进行初始化;为驱动程序提供访问硬件的手段。
工作:
在系统启动时,对硬件进行初始化进行:
(1)将系统代码定位到CPU将要执行的内存入口处,比便硬件初始化完毕后CPU能够执行系统代码
(2)根据不同CPU在启动时的硬件规定,BSP要负责将CPU设置为特定状态。
(3)对内存进行初始化,根据系统的内存配置将系统的内存划分为代码、数据、堆栈等不同的区域。
(4)如果有特殊的启动代码,BSP要将控制权移交给启动代码。
(5)如果应用软件中包含一个嵌入式操作系统,BSP要负责将操作系统需要的模块加载到内存中。
(6)如果应用软件中包含一个嵌入式操作系统,BSP还要在操作系统初始化之前,将硬件设置为静止状态,以免造成操作系统初始化失败。
为驱动程序提供访问硬件的手段进行:
(1)将驱动程序提供的ISR(中断服务程序)挂载到中断向量表上。
(2)创建驱动程序初始化所需要的设备对象,BSP将硬件设备描述为一个数据结构。
(3)为驱动程序提供访问硬件设备寄存器的函数。
(4)为驱动程序提供可重用性措施。
只要不同的硬件系统BSP提供的接口相同,驱动程序就可在不同的硬件系统上运行。
第三章
1.从技术角度讲,Linux是一个什么样的操作系统?
你认为它由哪些不足?
Linux是一个类Unix操作系统,它完全是一个自由的操作系统,它是一个单一内核的操作系统,这是由于LinusTorvalds以代码执行效率为自己操作系统的第一要务,比起结构的清晰他们更加注重功能的强大和高效率,他们花大量的经历在优化代码上,而这样以损失结构精炼作为代价,导致Linux中的每个部件都不能被轻易拆出,否则破坏效率。
虽然Linux是单一结构但是他和UNIX操作系统不一样Unix操作系统所有代码是静态编译的,而在Linux中代码可以动态装入和卸载内核中的部分代码。
Linux不支持用户态线程,Linux中通过另一种方法解释并实现LWP的机制。
Linux高效而稳定,以独占的方式执行最底层的任务,保证其他程序的正常运行。
缺陷:
只有抢占式的操作系统才可以成为“实时”操作系统。
要对Linux的中断处理、进进程调度和进程抢占这3个方面进行改进。
2.GPL协议的主要内容是什么?
你了解自由软件的开发模式,愿意让大家共享你的软件么?
为什么?
GPL(Generalpubliclicense)通用公共许可证,GPL保证任何人有共享和修改自由软件的自由,任何人有权取得、修改和重新发布自由软件的源代码,并且规定在不增加费用的条件下得到源代码(基本的发布费除外)。
开发模式是“巴扎模式”,一大批广泛分布于世界各地的软件爱好者,以互联网为纽带,通过BBS、新闻组及电子邮件等现代通信方式,同时参与一个软件开发项目。
以个初步工作的软件雏形首先发布出来,然后大家同时开始工作,分别结合自己的实际经验和需要,寻找软件中的漏洞,提出修改意见,发布在互联网上,然后其他人也发现了漏洞,接着提出改进方案,给出补丁,这个软件像滚雪球一样不断完善。
3.进程和程序有什么区别?
什么是进程间的互斥和同步?
可执行文件由指令和数据组成。
进程就是在计算机上运行的可执行文件针对特定的输入数据的一个实例,同一个可执行程序文件如果操作不同的输入数据就是两个不同的进程。
互斥:
是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。
但互斥无法限制访问者对资源的访问顺序,即访问是无序的。
同步:
是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。
在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。
少数情况是指可以允许多个访问者同时访问资源
4.进程调度的功能是什么?
Linux的进程调度发生在什么情况下?
Linux系统的实时调度和普通调度有什么区别?
高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:
高级调度:
(High-LevelScheduling)又称为作业调度,它决定把后备作业调入内存运行;
低级调度:
(Low-LevelScheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;中级调度:
(Intermediate-LevelScheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。
调度发生的情况:
(1)正在执行的进程执行完毕。
这时如果不选择新的就绪进程执行,将浪费处理机资源。
(2)执行中进程自己调用阻塞原语将白己阻塞起来进入睡眠等状态。
(3)执行中进程调用了P原语操作,从而因资源不足而被阻塞;或调用了v原语操作激活了等待资源的进程队列。
(4)执行中进程提出I/O请求后被阻塞。
(5)在分时系统中时间片已经用完。
(6)在执行完系统调用等系统程序后返回用户进程时,这时可看作系统进程执行完毕,从而可调度选择一新的用户进程执行。
(7)就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进程调度。
区别:
Linux根据政策从整体上区分实时进程和普通进程,因为实时进程和普通进程度调度是不同的,它们两者之间,实时进程应该先于普通进程而运行,然后,对于同一类型的不同进程,采用不同的标准来选择进程:
对于普通进程,Linux采用动态优先调度,Linux中某个进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南 民族大学 嵌入式 系统 复习资料