嵌入式系统离线作业答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《嵌入式系统》课程作业
——————————————————
简答题
1.请简述用户自定义一个Linux系统调用的步骤过程。
如果用户在Linux中添加新的系统调用,应该遵循几个步骤才能添加成功。
(1)添加源代码
(2)连接新的系统调用
(3)重建新的Linux内核
(4)用新的内核启动系统
2.简述Linux的slab分配器作用和原理
slab分配器的作用
slab分配器源于Solaris 2.4 的分配算法,工作于物理内存页框分配器之上,管理特定大小对象的缓存,进行快速而高效的内存分配。slab 分配器为每种使用的内核对象建立单独的缓冲区。Linux 内核已经采用了伙伴系统(Buddy System)管理物理内存页框,因此slab分配器直接工作于伙伴系统之上。每种缓冲区由多个slab 组成,每个slab就是一组连续的物理内存页框,被划分成了固定数目的对象。
为了充分利用硬件高速缓存,slab 分配器允许对象在一级硬件高速缓存中对齐(创建缓冲区时,设置SLAB_HWCACHE_ALIGN 标志);同时使用着色(color)策略,使得同一缓冲区内不同slab 中相同编号的对象的地址相互错开,避免它们被放入同一物理高速缓存行而造成频繁换入/换出的性能损失。
为了支持多处理器同时分配对象,缓冲区为每个处理器维护一个本地缓存。处理器直接从本地缓存中分配对象,从而避免了锁的使用;当本地缓存为空时,从slab 中批量分配对象到本地缓存。
slab分配器的原理:slab分配器分配的各种内存块被看作不同类型的对象,采用对象复用技术可以对对象进行如下操作:①. 分配内存;②. 构造对象;③. 使用对象;④. 析构对象;⑤. 释放对象.有时系统会频繁地分配和释放对象,从而使对象构造和析构的开销很大, slab分配器采用基于对象缓存技术,可以大大优化这方面的性能.。
slab分配器的结构:slab分配器主要有三层数据结构:对象缓存, slab对象.
对象缓存slab分配器给每一种对象分配一个缓存,同时提供一组2次幂常用缓存给不需要私有对象缓存的用户.
Cache_cache缓存负责分配管理缓存的结构kmem_cache_s,再由kmem_cache_s以链表结构引出空闲对象.
slab分配器是一种快速,安全,高效,对硬件支持较好的分配器,预计在未来的Linux版本中还将使用slab分配器并对其做出改进
3.嵌入式系统设计流程
1产品定义
2硬件与软件部分划分
3迭代与实现
4详细的硬件与软件设计
5硬件与软件的集成
6系统测试与发布
4.嵌入式的软件调试方法有哪些?
插桩调试法,直接调试法,ROM仿真法,模拟器法
5.请简述ARM处理器的堆栈寻址和块拷贝寻址模式,并比较它们的不同点。
堆栈寻址: 按先入先出的方式工作。
块拷贝寻址: 一种多寄存器传送指令,用于将一块数据从存储器的某一块位置拷贝到多个寄存器中或相反。
主要不同点:两者存放数据的顺序相反。
6.函数strncpy的作用是将长度为n的数组s拷贝至d,
void strncpy(char *s, const char *d, int n)
{
int c;
__asm
{
loop:
CMP n, #0
BEQ out
LDRB c, [s], #1
STRB c, [d], #1
SUB n, n, #1
B loop
out:
}
}
请将该函数补充完整。
7.BIOS的作用和功能是什么?
作用:BIOS 硬件与软件程序之间的一个“连接器”或者说是接口,负责解决硬件的即时需求,并按软件对硬件的操作要求具体执行。它为计算机提供最低级的、最直接的硬件控制,计算机的原始操作都是依照固化在BIOS里的内容来完成的。
功能:1自检及初始化2程序服务3设定中断
8.南桥和北桥的主要功能各是什么?
北桥连接高速数据传输设备。北桥芯片负责与CPU的联系并控制内存、AGP、PCI数据在北桥内部传输,提供对CPU的类型和主频、系统的前端总线频率、内存的类型(SDRAM,DDR SDRAM以及RDRAM等等)和最大容量、ISA/PCI/AGP插槽、ECC纠错等支持,整合型芯片组的北桥芯片还集成了显示核心。
南桥连接低速数据传输设备。南桥芯片负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SA TA、音频控制器、键盘控制器、实时时钟控制器、高级电源管理等。
9.描述总线性能的有哪些参数?什么样的情况会导致总线冲突?后果是什么?采用什么样的技术来避免这种情况的发生?
1、描述总线性能的参数有总线带宽、总线宽度、总线的单元时钟频率和总线的负载能力
2、如果两个设备正好同时把数据放到总线上,就可能发生总线冲突
3、后果是可能会使设备失效
4、采用三态门
10.可编程门阵列由哪几部分组成?各自的作用是什么?
1、可编程逻辑宏单元:通过编程来实现用户所需的逻辑
2、可编程输入输出宏单元:通过编程来实现所需的输入输出方式控制
3、互连资源:内部互连
4、重构逻辑的程序存储器:存储配置程序
11.简述SoC设计的三种方法
系统集成法部分集成法IP集成法p227
12.简述软硬件划分的原则
软硬件划分的基本原则是高速,低功耗由硬件实现;多品种、小批量由软件对应,处理器和专用硬件并用以提高处理速度和降低功耗。P231
13.简述各各嵌入式微处理器之间的特点以及微处理器与微控制器之间的优劣。
1. RAM微处理器的一般特点。大量寄存器,绝大操作都在寄存器中,寻址方式简单,固定长度的指令格式。
2. MIPS 其机制是尽量利用软件方法避免流水线中的数据相关。
3. PowerPC独特的分支出来单元可以让指令预期效率大大提高;超标量的设计;可处理“字节非对齐”的数据存储。
4.微处理器与微控制单元区别:微控制单片化,体积大大减少,从而功耗和成本下降、可靠性提高。
14.分析嵌入式Linux 操作系统特点,以及与其他操作系统的不同。
1 互操作性强任务和多用户支持多处理器支持多硬件平台支持多文件系统支持多格式可执行文件支持内存保护模式共享库支持按需调入执行TCP/IP、SLIP和PPP支持。2写出Windows CE 和VxWorks的一两个特点比较即可
15.简述VxWorks的启动过程
第一阶段1代码已经位于RAM中2系统处于不会发生中断的静止状态(必须包括处理器中断被禁止和各个设备中断被禁止)在该阶段,“处理器初始化”和“代码装入”即通常所说的引导代码。
第二阶段1、激活多任务的内核2、安装设备驱动3、各种组件初始化
16.简述VxWorks下中断处理过程
1当设备产生IRQ(中断请求)时,中断当前任务并取中断类型号
2在中断应答期间,系统决定哪个设备需要服务(计算中断向量地址)
3为设备调用适当的函数(系统注册的设备中断服务程序)
4在VxWorks定义的中断包裹函数里,保存寄存器值及调用用户定义的中断服务程序
5中断处理结束后,从中断服务器程序返回并恢复寄存器值
6如果执行中断服务程序后,没有高优先级的任务运行,则恢复被中断任务的执行
17.嵌入式GUI的实现一般要划分为几个模块?简述各个模块的功能。
分为四个模块:
1、GUI用户接口模块:该模块为上层应用软件开发人员提供方便、易用的API接口函数
2、GUI对象模块:GUI对象模块对窗口环境中的逻辑对象进行组织管理。
3、GUI基本图形模块:在该模块中实现了对显示输出设备的操作,如画点、画线、画矩形等基本功能,还有对字符的解析输出以及对图形的解析输出。
4、GUI消息驱动模块:该模块是GUI系统的通信模块,负责GUI的消息接收和与其他任务的通信以及消息队列的维护。
18.Qtopia Core的底层图形接口是什么?它的驱动程序的实现分为哪两个方面?
Framebuffer。Framebuffer驱动程序的实现分为两个方面:一方面是对LCD以及其相关部件的初始化,包括画面缓冲区的创建和对DMA 通道的设置;另外一方面是对画面缓冲区的读写. (课本354页倒数第二段和355页第四段)
19.请简述Bootloader程序启动流程。
答