简答与应用题简化版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简答题与应用题:
1、什么是嵌入式系统?主要有什么特点?
答:以应用为中心,以计算机技术为基础的,并且软件硬件是可剪裁的,能满足应用系统对功能、可靠性、成本、体积、功耗等指标的严格要求的专用计算机系统。他可以实现对其他设备的控制、监视或者管理等功能。
与通用的计算机系统相比,特点为:
(1)面向特定应用,一般都有实时要求;
(2)集先进性的计算机技术、半导体工艺、电子技术和通信网络技术于一体的并且在不断创新的知识集成系统;
(3)嵌入式系统是和具体应用对象有机结合在一起,因而其升级换代也是和具体的产品同步进行的。
(4)嵌入式系统的软硬件设计着重于高效率性。在最大限度满足应用需求的前提下,降低成本是必须要考虑的主要问题。
(5)嵌入式系统软件一般都固化在存储器芯片中。
2、嵌入式系统有哪几个部分?
答:嵌入式系统通常由嵌入式处理机、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。3、嵌入式操作系统的作用是什么?
*实际是一组软件模块集合
满足多任务处理、稳定运行、安全可靠、占用系统资源少、特有的实时事件处理、便于维护和管理、简洁良好的用户界面
4、什么是Linux?什么是嵌入式Linux?
答:严格来讲,Linux是指由Linux本人维护并不断更新的内核。
一个嵌入式Linux系统指的是一个基于Linux内核的,但不包含有关这个内核的任何专业的库或是用户工具的嵌入式系统。
5、用Linux内核构建嵌入式操作系统有什么优势(优良特性)?
答:(1)程度代码是可以获取的,可高度高;
(2)有完整的源码,软件丰富并且免费;
(3)得到众多硬件生产家的广泛支持;包括cpu、计算机外围设备
(4)完善的通信协议、软件标准和文件管理机制;
(5)提供完全免费且优秀的开发工具;
(6)广泛的社群支持
(7)无需购买licence,是免费的;
(8)不依赖特定厂商、供应商;
(9)成本相对低廉。
6、RTOS(嵌入式操作系统)强调的实时是什么概念?与中断的关系?
答:实时指的是特定操作所消耗的时间(以及空间)的上限是可预知的。操作系统能够在规定响应时间内完成客户服务程序。中断程序响应中断并完成是在固定时间内。
7、什么是实时Linux?涉及到哪些软硬件内容?
答:实时Linux(RT-Linux)通过在Linux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux 内核作为实时内核的一个进程与用户进程一起调度,标准的Linux内核的优先级最低,可以被实时进程抢断。正常的Linux进程仍可以在Linux内核上运行,这样既可以使用标准分时操作系统即Linux的各种服务, 又能提供低延时的实时环境。它在硬件上涉及到硬件中断,软件上涉及到对高优先级的实时硬件中断的快速响应。能在规定的时间内完成对突发事件的处理的Linux系统;
软件:中断服务程序、进程调度程序,硬件:嵌入式系统所采用的中断管理硬件。
8、试简要说明Linux内核构成,并简要说明各部分的功能?
答:
MMU:内存管理单元,完成地址映射(应用虚拟地址方式)
VFS
:虚拟文件管理系统,提供了统一管理计算机资源的途径。使统一规范计算机资源的使用格式成为可能,方
便传输
SCHED :进程调用单元。支持多任务运行。利用软件中断的特点,将CPU 的时间线划分给各个任务,完成多任
务管理
IPC :进程间通信单元。实现多个不同程序在运行时可以进行数据交换、通信。
NET :网络。网络不做为通用设备,以特定工作单元存在。负责计算机系统与其他计算机相互通信的接口。
9、 通常可采用哪几种方式来开发嵌入式Linux 系统?给出示意图。
答:方式有:
(1)连接型(宿主机/目标板链接开发)
(2)可移动连接型(利用可移动的存储器作为宿主机/目标板之间的中介)
(3)标准化(在开发板上进行独立开发)
10、 为什么要建立交叉开发平台?在何种情形下可以不必建立?
答:嵌入式系统的构造决定。嵌入式处理器多为专用的cpu ,1、必须将用C 编写的程序编译成能在该专用平台主机
∙ 跨平台开
发环境 目标板 ∙ 引导加载程序 ∙ 内核
∙ 根文件系统 主机
∙ 跨平台开
发环境 (1) 目标板 ∙ 引导加载程序 ∙ 第二引导加载程序
∙ 内核
∙ 根文件系统 (2)
目标板 ∙ 引导加载程序
∙ 内核
∙ 完整的根文件系统 ∙ 固有的开发环境
(3)
上运行的机器码。2、C语言库是必需的,必需提供能在专用cpu上运行的库的二进制代码。以上两点要求有这么一种编译工具能够实现两种CPU之间的交叉。当执行应用程序的平台和用来建立应用程序的平台相同时就可以不建立交叉开发平台。
11、试简要叙述GNU及其所提供的开发工具链。
答:GNU是“GNU's Not Unix”的递归缩写,它是一个自由软件工程项目组织。提供各种开源代码。提供一整套的开发工具链包括:GNU工具链基础,内核头文件安装程序,Binutils(二进制工具)的安装程序,引导编译器安装程序,C库安装程序,全编译器安装程序,完成工具链的设置。
12、试解释make和makefile的关系?简单举例说明。
答:使用make就必须写makefile文件,它描述工程中文件之间的关系,提供更新每个文件的命令。Makefile就是一组规则,它指导make程序的运行,告诉make需要做什么,多数情况是怎样编译和链接一个程序。目标和目标运行规则一旦建立,make就会按此进行工作。
edit : main.o kbd.o command.o display.o \
insert.o search.o utils.o
cc -o edit main.o kbd.o command.o display.o \
insert.o search.o utils.o
main.o : main.c defs.h
cc -c main.c
kbd.o : kbd.c defs.h command.h
cc -c kbd.c
command.o : command.c defs.h command.h
cc -c command.c
display.o : display.c defs.h buffer.h
cc -c display.c
insert.o : insert.c defs.h buffer.h
cc -c insert.c
search.o : search.c defs.h buffer.h
cc -c search.c
: defs.h buffer.h command.h
cc -c
utils.o : utils.c defs.h
cc -c utils.c
clean :
rm edit main.o kbd.o command.o display.o \
insert.o search.o utils.o (此段为Makefile)
make clean (此为make执行上述Makefile规则)
13、G CC是什么?为什么说它是必不可少的?
答:GCC是由GNU组织开发的一个免费的C/C++编译工具,由它将高级语言转换为机器语言。因为GCC是一个交叉平台的编译器,几乎所有主流CPU处理平台上目标代码的变换,它有力的支持了Linux系统的发展。
没有就无法获得可执行程序。
14、C库是什么概念?在嵌入式Linux系统中对此有何要求?
答:提供C语言里包含常用函数的源代码。在嵌入式Linux系统中是必不可少的。否则无法获得可执行程序的完整代码。因为操作系统是用C语言编写的。
15、在设计嵌入式Linux系统时为什么要配置内核?可用哪几种命令来配置?
答:针对嵌入式系统,内核需要知道运行在怎么样的平台上,它要管理的硬件单元,这就需要我们重新组装内核