第一阶段习题1.简述什么是嵌入式系统,嵌入式系统有哪些特点。答:以应用为中心,以计算机技术为基础的,并且软件硬件是可剪裁的,能满足应用系统对功能、可靠性、成本、体积、功耗等指标的严格要求的专用计算机系统。2.简述嵌入式系统与通用计算机在使用与开发上相比有哪些主要不同特点。1.引导代码,嵌入式以bootloader引导,要针对不同开发板移植,而pc由bios引导,不需改动。2.操作系统,嵌入式需移植,而pc不需移植。3.驱动程序。嵌入式针对开发板开发式移植,一般不能直接下载使用,pc操作系统包含大多数驱动程序,或直接下载使用。4.开发环境。嵌入式使用交叉编译,pc为本机编译。3.简述嵌入式系统的组成结构。答:一般有嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。4.简述什么是复杂指令集和精简指令集,它们主要应用场合在哪里。复杂指令集采用庞大指令集,可以减少编程所需的代码行数,减轻程序员的负担;精简指令集包含了简单,基本指令,通过这些简单基本指令可以组合成复杂指令。复杂指令集—桌面电脑和服务器精简指令集—嵌入式微处器中占主要市场5.简述什么是微处理器的普林斯顿结构和哈佛结构。普林斯顿结构,也称冯·诺伊曼结构,程序指令存储器和数据存储器为同一个,取指令和操作数为同一条总线,当高速运行时,无法同时取指令和操作数。哈佛结构:程序存储器和数据存储器分开,各自有自己的总线,可同时取指令和存取操作数。6.简述ARM体系结构的流水线技术。流水线技术是一个重复的时序过程为若干个子过程,而每个子过程都可有效地在其专用功能段上与其它子过程同时执行。流水线技术通过多个功能部件并行工作来缩短程序执行时间,提高处理器核的效率和吞吐率。7.简述ARM处理器支持哪七种运行模式,主要用于什么场合,其中哪些是异常模式。1、用户模式(usr):ARM处理器正常的程序执行状态2、快速中断模式(fiq):高速数据传输式通道处理3、外部中断模式(irq):通用中断处理器4、管理模式(svc):操作系统使用的保护模式5、系统模式(sys):运行具有特权的操作系统任务6、数据访问终止模式(abt):用于虚拟存储及存储器操作7、未定义指令终止模式(und):用于协处理器的软件仿真可以通过软件来进行模式切换,或者发生各类中断、异常时CPU自动进入相应的模式。除用户模式外,其余6种工作模式都属于特权模式。特权模式中除了系统模式以外的其余5种模式称为异常模式。大多数程序运行于用户模式。进入特权模式是为了处理中断、异常、或者访问被保护的系统资源。8.简述ARM内部寄存器有几个,分为哪些类型。共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。9.简述ARM的CPSR寄存器和SPSR寄存器的作用。cpsr:当前程序状态的寄存器,任何模式都可访问。spsr:用于每一种模式下各自专用的物理状态寄存器,当异常发生时,spsr保存cpsr的当前值。10.简述ARM体系的异常类型有哪些。1.复位:处理器上一旦有复位信号输入,ARM处理器立刻停止执行当前指令,复位后,ARM处理器在禁止中断的管理模式下,从地址0X00000000开始执行程序。2.未定义指令:有两种情况:1当ARM处理器执行协处理器指令时,它必等待任一外部协处理应答后,才能真正执行这条指令。若协处理没有响应,会出现未定义指令异常。3.软件中断异常:软件中断异常指令SWI进入管理模式,以请求特定的管理函数4.预取指中止异常5.irq--中断引脚6.FIQ11.简述ARM体系的异常处理步骤。进入异常:1.将下一条指令的地址保存在相应的LR寄存器2.将cpsr复制到相应的spsr中3.迫使cpsr模式往M[4:0]值设置成对应的异常模式值4.迫使PC从相应的异常向量取下一条指令在完成异常处理后,完成以下动作:1.将LR寄存器的值减去相应的偏移量(偏移量根据异常的不同而不同),送到PC中2.将SPSR复制回CPSR中3.清除中断禁止位标志12.简述ARM体系支持哪两类指令系统,Thumb指令系统有何优点。Thumb指令集优点:指令代码是16位,是ARM指令集的子集,因此可以实现更高的代码密度,节约存储空间,而在指令执行阶段,16位的指令被解压成对等的32位指令,并没有性能的损失。第二阶段习题13.简述在嵌入式开发中,什么是宿主机和目标机,如何在宿主机建立目标机程序的开发环境。P55答:宿主机(host):编辑和编译程序的平台,一般是基于X86的PC机,通常也称为主机。通常我们在Windows平台下使用各种编辑器编写Linux代码,然后在Linux平台下进行编译。目标机:用户开发的系统,通常都是非X86平台。Host编译得到的可执行代码需要在target上运行。对于我们来说target就是ARM架构的S3C2410开发板。14.简述嵌入式开发中,什么是交叉编译,如何实现linux的交叉编译。P55答:交叉编译就是在一个平台上生成另一个平台上的可执行代码。15.简述一个基本的linux根文件系统中应包括哪些文件,BusyBox在制作根文件系统时的作用。P142-143答:包括:1.链接库;2.设备文件;3.系统应用程序;4.系统初始化文件。作用:BusyBox是一个集成了一百多个最常用的linux命令和工具的软件包。它包含了一些简单的Linux命令,还包含了一些更大、更复杂的Linux命令,它集成压缩了Linux的许多工具和命令。16.简述linux内核配置剪裁的命令采用makemenuconfig时,内核中kconfig文件、Makefile文件和配置结果文件.config的关系。答:xconfigMakemenuconfigmakefile结果17.简述一个嵌入式独立启动系统应包括建立哪些内容。答:(从以下三点展开)1.bootloader的作用P982.内核,剪裁3.根文件系统18.简述嵌入式系统程序自启动的设置方法。P154答:只需要将我们的可执行程序复制到相应的位置(bin或者sbin目录下),然后在etc/init.d/rcs后面加上带绝对路径的可执行文件名即可。例如:我们编译后的helloworld可执行文件,我们将它复制到sbin下,然后在rcs中最后一行键入:sbin/helloworld,即可让配置目录.configmakehellworld可执行程序自动执行。19.简述Makefile文件的规则包括哪些内容。P87答:一个是说明文件之间的依赖关系,另一个是告诉make工具如何生成目标文件的命令。20.设有一个工程包括以下的文件,以及编译的依赖关系如下图所示。试编写一个最基本的Makefile文件,作用是实现文件的编译及删除。P87Main.cHead1.hHead2.htest1.ctest2.cHead3.hMain.otest1.otest2.otest答:#MakefileexampleTest:main.otest1.otest2.ogcc-otestmain.otest1.otest2.oMain1.o:main.chead1.hhead2.hgcc-omain.cTest1.o:test1.chead2.hgcc-ctest1.cTest2.o:test2.chead3.hgcc-ctest2.cInstall:Cptest/home/tmpClean:Rm-f*.o21.请说明在字符设备驱动程序开发中file_operations结构体的作用,如果某个字符设备要实现对设备的读函数test_read、写函数test_write、打开设备函数test_open和关闭设备函数test_release,请完善以下file_operations结构初始化代码:(书P172-174)Staticconststructfile_operationstest_fops=(.owner=THS_MODULE,.read=Virtualmem_read,.write=Virtualmem_write,.open=Virtualmem_open,.release=Virtualmem_release,)22.主设备号和次设备号的概念。(书本P160)