嵌入式课后题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1/8嵌入式操作系统体系结构1宏内核结构2分层结构3微内核结构列举3个常用的嵌入式操作系统,并说明其特点1VxWorks特点:它具备良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式试试操作系统领域逐渐占据一席之地。价格较高,通常需要花费10万元以上人民币才能建起一个可用的开发环境2WInCE特点:是一种针对小容量、移动式、智能化、32位模块化实时嵌入式操作系统3嵌入式Linux特点:其最大特点是源代码公开并且遵循GPL协议。Linux内核版本有何规定?Linux内核的版本号合适是:x.y.zz-,Linux内核的版本号分为主版本好、次版本号和扩展版本号等。稳定版本号的主版本号用偶数表示,例如:2.2、2.4、2.6。每隔2~3年启动一个Linux稳定主版本号。紧接着是次版本号,例如2.6.13、2.6.14、2.6.15。次版本号不分奇偶数,顺序递增。每隔1~2个月发布一个稳定版本。然后是升级版本号,例如2.6.14.3、2.6.14.4、2.6.14.5。升级版本号不分奇偶数,顺序递增。在下一个稳定版本发布之前,修正最新的稳定版本的问题。Linux下的分区和目录有何关系?Linux中的/boot分区、swap分区和“/”分区有何作用?关系:任何一个分区都必须挂载到某个目录上。目录是逻辑上的区分。分区是物理上的区分。磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。/boot分区就是操作系统的内核及在引导过程中使用的文件,这个目录存放操作系统启动时所要用到的程序swap:Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。2/8Linux常见的系统文件有哪些,VFS有何作用?常见:JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV和PROCVFS的作用:采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统,即为各类文件系统提供了一个统一的操作界面和应用编程接口。Linux中“/boot”目录、“/etc”目录有何作用?boot:在这个目录下存放操作系统启动时所要用到的程序etc:该目录下存放了操作系统管理时要用到的各种配置文件和子目录若有一文件的属性为“-rwxr-xrw-”,说明各项的含义。普通文件,root用户对它可读,可写,可执行;该用户组对该文件可读,可执行,不能写;其他用户对该文件可读,可写,不可执行。简述Linux启动过程分为哪几个阶段?(1)BIOS引导阶段。(2)BootLoader引导阶段(3)Kernel加载阶段。(4)Init初始化阶段。简述Linux下C语言开发开发流程,分别要用到什么工具软件。(1)编写源代码:gedit或vim(2)编译源代码:GCC(3)运行程序:./hello“.”表示当前目录,起指示路径的作用,表示运行当前目录下的hello程序。(4)调试程序:GDB(5)交叉编译(6)编写Makefile:Make工程管理器Vim编辑器有哪几种模式?各模式下主要实现什么功能?(1)命令模式:在此模式下各种键盘输入都是作为命令来执行的,主要操作包括:移动光标、复制文本、删除文本和找出行数等命令。(2)编辑模式:输入数据。按“a”键从目前光标所在位置的下一个字符开始输入;按“i”键从光标所在位置开始插入新输入的字符;3/8按“o”键新增加一行,并将光标移到下一行的开头。(3)底行模式:指可以在界面最底部的一行显示输入命令,一般用来执行查找特定的字符串、保存及退出等任务。GDB调试器有何功能?什么是远程调试?GDB调试器的功能:(1)启动程序,可以按照用户自定义的要求随心所欲的运行程序。(2)可让被调试的程序在用户所指定的调试的断点处停住(断点可以是条件表达式)。(3)当程序停住时,可以检查此时程序中所发生的事。(4)动态地改变程序的执行环境。远程调试:远程调试环境由宿主机GDB和目标主机stub共同构成,两者通过串口或tcp连接。使用GDB标准串行协议协同工作,实现对目标主机上的系统内核和上层应用的监控和调试功能。GDBstub是调试器核心,它处理来自主机上GDB的请求,控制目标主机上的被调试进程。Make工程管理器有何作用?所谓的工程管理器,是指管理较多的文件。人们利用Make工具来自动完成编译工作。(实现了批处理)基本IO操作函数有哪些?分别实现什么功能?open,read,write,lseek,closeOpen:表示打开文件Read/write:表示读写文件Close:表示关闭文件什么是程序,进程和线程,三者有何区别?进程是可并发执行的程序在一个数据集合上的运用过程。进程是一个程序的一次执行的过程。是一个动态的概念,他是程序执行的过程,包括动态创建,调度和消亡的整个过程。他是程序执行和资源管理的最小单位。程序是静态的,他是一些保存在磁盘上的指令的有序集合,没有任何执行的概念。线程是指进程中的一个执行流程,有时也称为执行情景。一个进程可以由多个线程组成,即在一个进程中可以同时运用多个不同的线程。他们分别执行不同的任4/8务。进程间通信和同步有哪几种方式?答:1:管道和有名管道2:信号3:报文队列(消息队列)4:共享内存5:信号量6:套接口简述Linux守护进程的创建过程?1:创建子进程,父进程退出2:在子进程中创建新会话3:改变当前目录为根目录4:重设文件权限掩码5:关闭文件描述符简述基于Linux的嵌入式软件组成,各部分有何作用?1:引导加载程序作用:固话在软件中的Boot代码和Boot-Loader两大部分。2:Linux内核作用:特定于嵌入式硬件的定制内核以及内核的启动参数。3:文件系统作用:包括根文件系统和建立于Flash内存设备之上的文件系统,通常用ramdisk来作为根文件系统。4:用户应用程序作用:特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面GUI。嵌入式开发中为何要用交叉编译开发方法?基于开发板的二次开发有何优势?因为嵌入式系统上的能运行的二进制文件格式与一般的X86Linux平台上运行的二进制文件的格式不一样,所以需要在Linux平台上利用能编译出目标平台二进制文件的编译器进行交叉编译。通过基于ARM架构的GCC编译器将源程序编译成嵌入式产品的可执行程序。缩短了开发周期,提高了产品的可靠性,降低了开发难度。改进在软件设计过程中过多的考虑硬件,给开发和调试都带来不便的问题。避免了延长整个系统开发周期的问题。简述基于linux的嵌入式软件开发流程p214①立开发环境②配置开发主机③建立引导装载程序BootLoader④移植Linux操作系统⑤建立根文件系统⑥建立应用程序的文件系统⑦开发应用程序⑨发布产品什么是NFS服务,嵌入式软件开发中为什么要用到NFS服务?p222NFS是NetworkFileSystem的简称,也就是网络文件系统的意思,NFS是可以5/8使不同的计算机直角通过网络进行文件共享的一种网络协议,一般用于Linux网络系统中。一台NFS服务器就如同一台文件服务器,只要将文件系统共享出来,NFS客户端就可以将它挂载到本地系统中,从而可以像使用本地文件系统中的文件一样使用那些远程文件系统中的文件。Linux内核分成几个部分,什么是内核空间和用户空间,这种划分有何优缺点?内核空间中存放的是内核代码和数据用户空间中存放的是用户程序的代码和数据。内核和用户空间的应用程序使用的是不同的保护地址空间。每个用户空间的进程都使用一节课的虚拟地址空间,而内核则占用单独的地址空间。简述Linux的移植过程以及各过程中用到的工具和命令p255①下载内核。②给Linux2.6.18打补丁③准备交叉编译环境。交叉编译环境工具链一般包括binutils、arm-gcc、glibc④修改相关的配置文件。如修改内核目录下的Makefile文件关于交叉编译工具相关的内容,使用这个Makefile进行编译。⑤修改Linux内核源码,主要修改和CPU相关的部分⑥内核的裁剪,根据项目的需要裁剪内核模块⑦内核的编译,将裁剪好的内核进行编译,生成二进制映像文件⑧内核的下载,将生成的二进制映像文件,烧写到目标平台常见的嵌入式文件系统有哪些?p261jffs2、yaffs、cramfs、romfs、ramdisk、ramfs/tmpfs设备驱动程序有何作用,Linux设备驱动程序分为哪些?p267设备驱动程序,是一种可以使计算机和设备通信的特殊程序,可以说相当于硬件的接口层操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。字符设备、块设备、网络设备。简述Linux设备驱动的加载方式。p289加载方式分为动态和静态两种方式,静态加载就是把驱动程序直接编译到内6/8核里,在执行makemenuconfig命令进行内核配置裁剪时,在窗口中可以选择是否编译入内核,还是放入“/lib/modules/”下相应内核版本目录中,还是不选。驱动编译进内核后,系统启动后可以直接调用。动态加载利用了LInux的module特性,可以在系统启动后用insmod命令把驱动程序添加上去,在不需要的时候用rmmod命令来卸载,动态加载是将驱动模块加载到内核中,而不能放入“/lib/modules/”下。信号和槽机制的工作原理p326信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。在我们所熟知的很多GUI工具包中,窗口小部件(widget)都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针。但是,在QT中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了。信号和槽能携带任意数量和任意类型的参数,他们是类型完全安全的,不会像回调函数那样产生coredumps。所有从QObject或其子类(例如Qwidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射(emit)出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。你可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接,甚至于将一个信号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射系统都将立刻发射第二个信号。总之,信号与槽构造了一个强大的部件编程机制。什么是嵌入式数据库,有何特点?嵌入式数据库将数据库系统与操作系统和具体应用集成在一起,运行在各种智能嵌入式设备上。由于应用环境的特殊限制。嵌入式数据库相对普通数据库系统而言有其自身特点:7/8A.支持常用嵌入式系统和通信协议。内核小,占用内存少。B.提供数据库功能的自由定制,能够根据具体应用或行业特点定制系统功能。C.方便的查询功能,支持SQL查询语句。D.完善的数据管理功能,支持SQL标准的子集,提供数据库及数据表的管理等功能。E.操作简单方便,提供简明的API接口,可在高级语言中方便调用。结合实例列举嵌入式数据库的应用领域医疗领域,军事设备和系统,地理信息系统,工业控制,网络通信,空间探索,消费类电子简述TCP连接建立的过程TCP连接的建立是通过3次握手实现第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1)

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功