嵌入式系统离线作业解读

发布 2020-02-28 10:29:28 阅读 4040

浙江大学远程教育学院。

嵌入式系统》课程作业。

简答题。简答题。

1.请简述用户自定义一个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;

_asmloop:

cmp n, #

beq out

ldrb c, [s], #

strb c, [d], #

sub n, n, #

b loop

out:请将该函数补充完整。

的作用和功能是什么?

作用:bios 硬件与软件程序之间的一个“连接器”或者说是接口,负责解决硬件的即时需求,并按软件对硬件的操作要求具体执行。它为计算机提供最低级的、最直接的硬件控制,计算机的原始操作都是依照固化在bios里的内容来完成的。

功能:1自检及初始化2程序服务3设定中断。

8.南桥和北桥的主要功能各是什么?

北桥连接高速数据传输设备。北桥芯片负责与cpu的联系并控制内存、agp、pci数据在北桥内部传输,提供对cpu的类型和主频、系统的前端总线频率、内存的类型(sdram,ddr sdram以及rdram等等)和最大容量、isa/pci/agp插槽、ecc纠错等支持,整合型芯片组的北桥芯片还集成了显示核心。

南桥连接低速数据传输设备。南桥芯片负责i/o总线之间的通信,如pci总线、usb、lan、ata、sata、音频控制器、键盘控制器、实时时钟控制器、高级电源管理等。

9.描述总线性能的有哪些参数?什么样的情况会导致总线冲突?后果是什么?采用什么样的技术来避免这种情况的发生?

1、描述总线性能的参数有总线带宽、总线宽度、总线的单元时钟频率和总线的负载能力。

2、如果两个设备正好同时把数据放到总线上,就可能发生总线冲突。

3、后果是可能会使设备失效。

4、采用三态门。

10.可编程门阵列由哪几部分组成?各自的作用是什么?

1、可编程逻辑宏单元:通过编程来实现用户所需的逻辑。

2、可编程输入输出宏单元:通过编程来实现所需的输入输出方式控制。

3、互连资源:内部互连。

4、重构逻辑的程序存储器:存储配置程序。

11.简述soc设计的三种方法。

系统集成法、 部分集成法 、 ip集成法。

12.简述软硬件划分的原则。

软硬件划分的基本原则是高速,低功耗由硬件实现;多品种、小批量由软件对应,处理器和专用硬件并用以提高处理速度和降低功耗。

13.简述各各嵌入式微处理器之间的特点以及微处理器与微控制器之间的优劣。

1. ram微处理器的一般特点。大量寄存器,绝大操作都在寄存器中,寻址方式简单,固定长度的指令格式。

2. mips 其机制是尽量利用软件方法避免流水线中的数据相关。

3. powerpc独特的分支出来单元可以让指令预期效率大大提高;超标量的设计;可处理“字节非对齐”的数据存储。

4.微处理器与微控制单元区别:微控制单片化,体积大大减少,从而功耗和成本下降、可靠性提高。

14.分析嵌入式linux 操作系统特点,以及与其他操作系统的不同。

互操作性强、任务和多用户支持、 多处理器支持、 多硬件平台支持、 多文件系统支持 、多格式可执行文件支持 、 内存保护模式 、共享库支持 、按需调入执行 tcp/ip、slip和ppp支持 。

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的消息接收和与其他任务的通信以及消息队列的维护。

core的底层图形接口是什么?它的驱动程序的实现分为哪两个方面?

framebuffer。framebuffer驱动程序的实现分为两个方面:一方面是对lcd以及其相关部件的初始化,包括画面缓冲区的创建和对dma通道的设置;另外一方面是对画面缓冲区的读写。

19.请简述bootloader程序启动流程。

20.列出设备驱动作为linux内核模块基本实现函数。

1、初始化模块函数init_module

2、cleanup_module函数

3、printk调用

4、devfs_register_chrdev函数

5、llseek

6、read

7、write

8、readdir

9、poll

10、ioctl

11、mmap

12、open

13、flush

14、release

15、fsync

16、fasync

17、check_media_change

18、revalidate

19、lock

的概念以及voip传输的基本过程。

voip就是voip over ip,又称ip**。

传输的基本过程:voip终端---压缩语音数据编码---ip网络---压缩语音数据译码---voip终端。

怎么对资源访问进行同步?

通过创建mutex互斥体,并用函数lock(sdl_mutexp())和unlock(sdl_mutex())防止多个线程同时访问资源。

23.如何利用开源项目进行嵌入式应用程序开发,其移植过程是怎样的?

1.**开源**。

2.在主机linux环境下进行交叉编译。

3.把交叉编译好的可用于arm的库文件**到目标板。

嵌入式系统离线作业答案

浙江大学远程教育学院。嵌入式系统 课程作业答案。简答题。1.请简述用户自定义一个linux系统调用的步骤过程。修改三个地方。1 usr src linux kerner 中添加自定义系统函数,如 asmlinkage int sys mysyscall int a return a 2 定义系统调用...

嵌入式系统离线作业答案

浙江大学远程教育学院。嵌入式系统 课程作业答案。简答题。修改三个地方。1 usr src linux kerner 中添加自定义系统函数,如 asmlinkage int sys mysyscall int a return a 2 定义系统调用号,usr src linux include asm...

嵌入式系统复习解读

第1章嵌入式系统导论。1.嵌入式系统的概念 是以现代计算机技术为基础,以应用为中心,可以根据系统或用户需求 功能 可靠性 成本 体积 功耗 环境等 灵活裁剪软硬件模块的专用计算机系统。2.嵌入式系统的分类及分类依据 嵌入式系统由硬件和软件两大部分组成,用于实现对其他设备的控制 监视或管理等功能。前者...