77范文网 - 专业文章范例文档资料分享平台

嵌入式系统设计大学教程 - 习题与解答(6)

来源:网络收集 时间:2019-08-26 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。 3)可固化(Romable)

?C/OS-II是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译、连接、下载和固化),?C/OS-II可以嵌入到读者的产品中成为产品的一部分。 4)可裁剪(Scalable)

可以只使用?C/OS-II中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个?C/OS-II调用,而另一个产品则使用了几乎所有?C/OS-II的功能,这样可以减少产品中的?C/OS-II所需的存储器空间(RAM和ROM)。这种可剪裁性是靠条件编译实现的。 5)占先式(Preemptive)

?C/OS-II是完全占先式的实时内核,?C/OS-II总是运行就绪条件下优先级最高的任务。 6)多任务

?C/OS-II可以管理64个任务,目前这一版本保留8个给系统。留给用户的应用程序最多可以有56个任务。赋予每个任务的优先级必须是不相同的,这意味着?C/OS-II不支持时间片轮转调度法(常用的非抢占式调度算法)。 7)可确定性

全部?C/OS-II的函数调用与服务的执行时间具有可确定性。 8)任务栈

每个任务有自己单独的栈,?C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。 9)系统服务

?C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。 10)中断管理

中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。

8、常用的linux操作系统采用怎样的内存管理机制和调度机制?(P130)

答:Linux内存管理程序通过映射机制把用户程序的逻辑地址映射到物理地址,在用户程序运行时,如果发现程序中要用的虚拟地址没有对应的物理内存时,就发出请页要求。如果有空闲的内存可供分配,就请求分配内存,并把正在使用的物理页记录在页缓存中;如果没有足够的内存可供分配,那么就调用交换机制,腾出一部分内存。为了支持虚拟存储器的管理,Linux系统采用分页(paging)的方式来载入进程。所谓分页即是把实际的存储器分割为相同大小的段,例如每个段1024个字节,这样1024个字节大小的段称为一个页面(page)。

Linux属于典型的多用户多任务操作系统。它采用分时技术,进

程交替执行,实现所谓的“假并行”。它主要有三种调度算法,一个是基于优先级的循环执行法,二是FIFO算法,三是传统的基于优先级的循环执行法。前两种调度算法都是软实时的,而第三种则并非实时的。

第6章 嵌入式Linux开发环境及其在ARM上的移植 1、试述嵌入式Linux系统移植的一般过程。(P141~142)

答:嵌入式系统的开发和应用层软件的开发不同,有其自身的特点,尤其在开发流程上有很大的不同。从大体上讲,Linux系统移植一般分为下面几步:

(1)开发环境的搭建

嵌入式系统移植过程中,目标机和宿主机往往在软硬件环境上有很大的不同,开发时常常在功能强大的宿主机上进行,这就形成了交叉开发环境的搭建与选择问题。同时由于宿主机和目标机在体系结构等方面的差异,编译时也需要采用交叉编译工具对目标代码进行编译,这样,才能使生成的可执行文件在目标机上能够执行。

(2)系统引导

在微处理器第一次启动的时候,会从预定的、固定的地址空间开始执行指令。一般的嵌入式系统中并没有PC机上的BIOS,而是由一种称为Bootloader的系统引导程序来完成上述功能,启动代码完全依赖于硬件,需要在系统移植中完成。

(3)内核引导

系统移植的开发人员还应当完成Bootloader和内核的衔接部分的移植以及I/O映射、存储器映射等与目标硬件平台相关的板级初始化和CPU自身初始化的移植工作。

(4)设备驱动程序

Linux内核源代码树中的相当大部分是各类驱动程序,在实际的开发过程中,也需要对相应的设备进行驱动,如LCD、网卡、触摸屏等等进行移植和编写。由于一般在Linux源码和相关社区中都拥有相当丰富的设备驱动源码资源,因此,设备驱动的任务主要是相近源码的移植修改工作。

(5)文件系统

在嵌入式Linux内核启动的最后阶段,将进行文件系统的加载。不同的嵌入式目标平台有不同的应用需求,需要根据具体情况实现对文件系统的移植工作。目前,常用的嵌入式文件系统有JFFS2、Cramfs、Romfs等。

2、Linux系统中常用的交叉编译工具有哪些?简述它们的功能和基本用法。(P143~153)

答:(1)GNU binutils是一套用来构造和使用二进制所需的工具集。建立嵌入式交叉编译环境,Binutils工具包是必不可少的,而且Binutils与GNU的C编译器gcc是紧密相集成的,没有binutils,gcc也不能正常工作。GNU binutils是一组开发工具,包括连接器、汇编

器和其他用于目标文件和档案的工具。

(2)GUN cc(GUN C Compiler,简称gcc)是GUN项目的C编译器套件,能够编译用C、C++、Objective C编写的程序。

(3)make工具通过一个称为makefile的文件来完成并自动维护编译工作。

(4)glibc 是提供系统调用和基本函数的C库,比如open,malloc,printf等等。所有动态连接的程序都要用到它。它是编译Linux系统程序很重要的组成部分。

(5)gdb是一个用来调试C和C++程序的调试器(Debugger),它能使用户在程序运行时观察程序的内部结构和内存的使用情况。gdb的功能主要是监视程序中变量的值、设置断点以使程序在指定的代码行上停止执行、支持单步执行等。

3、如何分步编译和安装交叉编译环境所需要的库和源代码?试着自己构建嵌入式Linux系统交叉编译环境。(P156~160) 答:[略]

4、5题应在第九章,此处为作者疏漏(见第九章习题)

6、Linux操作系统的移植工作主要分为哪几个方面?其中内核功能模块的裁剪主要有哪几种方法?(P162~164)

答:对Linux操作系统的移植工作主要分为两个方面,一方面是

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库嵌入式系统设计大学教程 - 习题与解答(6)在线全文阅读。

嵌入式系统设计大学教程 - 习题与解答(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/687994.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: