-1-第一章1-1.简述嵌入式系统的定义。嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。1-2.简述嵌入式系统的组成。从体系结构上看,嵌入式系统主要由嵌入式处理器、支撑硬件和嵌入式软件组成。其中嵌入式处理器通常是单片机或微控制器,支撑硬件主要包括存储介质、通信部件和显示部件等,嵌入式软件则包括支撑硬件的驱动程序、操作系统、支撑软件及应用中间件等。嵌入式系统的组成部分是嵌入式系统硬件平台、嵌入式操作系统和嵌入式系统应用。嵌入式系统硬件平台为各种嵌入式器件、设备(如ARM、PowerPC、Xscale、MIPS等);嵌入式操作系统是指在嵌入式Linux、uCLinux、WinCE等。1-3.ARM7处理器使用的是(ARMv4)指令集。ARM7内核采用冯·诺依曼体系结构,数据和指令使用同一条总线。内核有一条3级流水线,执行ARMv4指令集。1-6.ARM9采用的是(5)级流水线设计。存储器系统根据哈佛体系结构(程序和数据空间独立的体系结构)重新设计,区分数据总线和指令总线。第二章2-1.简述ARM可以工作在几种模式。ARM处理器共有7种工作模式:用户模式(User)、快速终端模式(FIQ)、外部中断模式(IRQ)、特权模式(svc)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(System)。除用户模式外其他6种模式称为特权模式。在特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式切换。再除去系统模式,其余5种模式又称为异常模式。2-2.ARM核有多少个寄存器?ARM处理器有如下37个32位长的寄存器:(1)30个通用寄存器;(2)6个状态寄存器:1个CPSR(CurrentProgramStatusRegister,当前程序状态寄存器),5个SPSR(SavedProgramStatusRegister,备份程序状态寄存器);(3)1个PC(ProgramCounter,程序计数器)。2-3.什么寄存器用于存储PC和LR寄存器?寄存器R15称为程序计数器(ProgramCounter,PC),寄存器R14又被称为连接寄存器(LinkRegister,LR)。2-4.R13通常用来存储什么?R13(theStackPoint,SP,栈指向),用于存储堆栈指针。2-5.系统模式使用的寄存器最少。(不确定)2-6.CPSR的(第5位T位)反映了处理器的状态。P152-7.ARM有哪几个异常类型?P20ARM体系结构中,存在7种异常处理。复位异常、未定义指令异常、软中断、预取指令异常、数据访问中止异常、外部中断请求、快速中断请求。2-8.复位后,ARM处理器处于何种模式、何种状态?ARM状态?!(不清楚)2-9.BIC指令有什么作用?BIC(BitClear)位清零指令,将寄存器Rn的值与第2个源操作数shifter_operand的值的反码按位做“逻辑与”操作,结果保存到Rd中。指令的语法格式BIC{cond}{S}Rd,Rn,shifter_operand-2-2-10.当指令SWI指令时,会发生什么?软件中断指令(SoftwareInterrupt,SWI)用于产生软中断,从而实现从用户模式变换到管理模式,CPSR保存到管理模式的SPSR中,执行转移到SWI向量,在其他模式下也可以使用SWI指令,处理器同样切换到管理模式。第三章3-2.如何从ARM状态切换到Thumb状态?P54对于汇编程序来说,可以有两种方法来实现程序状态的切换。第一种方法是利用连接器提供的交互子程序Veneer来实现程序状态的切换,这时用户可以使用指令BL来调用子程序;第二种方法是用户自己编写状态切换的程序。BX指令ARM状态下的BX指令,使程序跳转到指令中指定的参数Rm所指定的地址执行程序,Rm的第0位复制到CPSR中的T位,bits[31∶1]移入PC。指令的语法格式如下:BX{cond}Rm3-3.在ARM汇编中如何定义一个全局的数字变量?P61GBLA、GBLL和GBLS伪操作用于定义一个ARM程序中的全局变量并将其初始化。其中GBLA伪操作用于定义一个全局的数字变量并初始化为0。格式为:GBLAvariable3-5.AAPCS过程调用标准的内容是什么?(书上没有,一下为网上收集的内容,如果有听课的同学,请更正并通知大家)过程调用标准ATPCS(ARM-ThumbProduceCallStandard)规定了子程序间相互调用的基本规则,ATPCS规定子程序调用过程中寄存器的使用规则、数据栈的使用规则及参数的传递规则。寄存器使用规则(1)子程序间通过寄存器R0~R3传递参数,寄存器R0~R3可记作A1~A4。被调用的子程序在返回前无须恢复寄存器R0~R3的内容。(2)在子程序中,ARM状态下使用寄存器R4~R11来保存局部变量,寄存器R4~R11可记作V1~V8;Thumb状态下只能使用R4~R7来保存局部变量。(3)寄存器R12用作子程序间调用时临时保存栈指针,函数返回时使用该寄存器进行出栈,记作IP;在子程序间的链接代码中常有这种使用规则。(4)通用寄存器R13用作数据栈指针,记作SP。(5)通用寄存器R14用作链接寄存器;(6)通用寄存器R15用作程序计数器,记作PC。数据栈使用规则过程调用标准规定数据栈为FD类型,并且对数据栈的操作时要求8字节对齐的。参数传递规则1.参数个数可变的子程序参数传递规则对于参数个数可变的子程序,当参数个数不超过4个时,可以使用寄存器R0~R3来传递;当参数个数超过4个时,还可以使用数据栈进行参数传递。2.参数个数固定的子程序参数传递规则如果系统不包含浮点运算的硬件部件且没有浮点参数时,则依次将各参数传送到寄存器R0~R3中,如果参数个数多于4个,将剩余的字数据通过数据栈来传递;如果包括浮点参数则要通过相应的规则将浮点参数转换为整数参数,然后依次将各参数传送到寄存器R0~R3中。如果参数多于4个,将剩余字数据传送到数据栈中,入栈的顺序与参数顺序相反,即最后一个字数据先入栈。如果系统包含浮点运算的硬件部件,将按照如下规则传递:各个浮点参数按顺序处理为每个浮点参数分配寄存器。分配方法是:找到编号最小的满足该浮点参数需要的一组连续的FP寄存器进行参数传递。子程序结果返回规则(1)结果为一个32位的整数时,通过寄存器R0返回;结果为一个64位整数时,通过寄存器R0,R1返回。(2)结果为一个浮点数时,可以通过浮点运算部件的寄存器F0、D0或者S0来返回;结果为复合型的浮点数(如复数)-3-时,可以通过寄存器F0~Fn或者D0~Dn来返回。(3)对于位数更多的结果,需要通过内存来传递。3-7.汇编代码中如何调用C代码中定义的函数?P90如C中定义函数intg(int,int,int);先在汇编程序开始处声明C程序g(),如:IMPORTg汇编中调用指令为:BLg网上资料:在ARM开发工具编译环境下,汇编程序中要使用IMPORT伪操作声明将要调用的C程序。第四章主要考ARM汇编指令实验一、二基本上是MOV、LDR、STR指令的应用。P110第五章5-4.NorFlash的特点是什么?P134(以上为网上的说法)Flash存储器是一种可在系统(In-System)进行电擦写,掉电后信息不丢失的存储器。它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,并且可由内部嵌入的算法完成对芯片的操作。1)NorFlash带有通用的SRAM接口,可以轻松的挂接在CPU的地址、数据总线上,对CPU接口要求低。其特点是芯片内执行(XIP),这样,应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。2)容量较小,一般在1~16M之间,但是价格要比NandFlash高。3)不存在坏块问题,位翻转现象出现的几率较小。4)寿命:擦写次数在十万次。5)其升级比较麻烦,更换不同容量的器件时不方便。6)读写性能:要求在进行擦除前先要将目标块内所有的位都写为1.,执行一个写入/擦除操作的时间约为5s,而Nand为4ms,但是读速度稍快一些。5-5.比较NandFlash和NorFlash的不同。(同上,见P134)6方面不同1.接口对比2.容量和成本对比3.可靠性对比4.寿命对比5.升级对比6.读写性能对比本章还会考察存储空间细节,OM引脚设置。第六章主要考6.1实验程序,应该会考IO口的数据赋值(见P150)。voidled_on(void){inti,nOut;nOut=0xF0;//rGPFDAT=nOut&0x10;rGPFDAT=nOut&0xd0;//该形式的语句为赋值语句。for(i=0;i100000;i++);rGPFDAT=nOut&0x50;//0x70for(i=0;i100000;i++);rGPFDAT=nOut&0x40;//0x00-4-for(i=0;i100000;i++);rGPFDAT=nOut&0x00;//0x30for(i=0;i100000;i++);rGPFDAT=nOut;}第七章7-3.简述Bootloader的作用。(P208,并且注意其组成及结构。)Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映像表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。嵌入式系统世界已经有各种各样的Bootloader,种类划分也有多种方式。除了按照处理器体系结构不同划分以外,还有功能复杂程度的不同。7-8.利用NFS调试新文件系统有什么好处?(P253,还要熟悉其搭建过程和指令)包括以下几个方面:1)本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。2)用户不必在每个网络上机器里头都有一个home目录。Home目录可以被放在NFS服务器上并且在网络上处处可用。3)诸如软驱、CD-ROM之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的可移动介质设备的数量。