孟祥莲--嵌入式系统原理及应用教程-部分习题答案20150618
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
孟祥莲--嵌入式系统原理及应用教程-部分习题答案20150618 习题1 1. 嵌入式系统的概念的是什么? 答:嵌入式系统是嵌入式到对象体系中的,用于执行独立功能的专用计算机系统。 2. 嵌入式系统的特点是什么? 答:系统内核小; 专用性强 ;运行环境差异大 ;可靠性要求高; 系统精简和高实时性操作系统; 具有固化在非易失性存储器中的代码 嵌入式系统开发和工作环境 4.嵌入式系统的功能是是什么? 答:提供强大的网络服务 小型化,低成本,低功能;人性化的人机界面;完善的开发平台 5.嵌入式系统的硬件平台由哪些部分组成? 答:嵌入式系统的硬件是以嵌入式处理器为核心,由存储器I/O单元电路,通信模块,外部设备必要的辅助接口组成的。 7.嵌入式操作系统的主要特点是什么? 答:体积小;实时性;特殊的开发调试环境。 8.叙述嵌入式系统的分类。 答:按嵌入式微处理器的位数分类可以分为4位、8位、16位、32位和64位等;按软件实时性需求分类可以分为非实时系统(如PDA),软 实时系统(如消费类产品)和硬实时系统(如工业实时控制系统);按嵌入式系统的复杂程度分类可以分为小型嵌入式系统,中型嵌入式系统和复杂嵌入式系统。 习题2 1.ARM9处理器和工作状态有哪些? 答:ARM状态:此时处理器执行32位的的字对齐的ARM指令。 Thumb状态:此时处理器执行16位的,半字对齐的Thumb指令 2.叙述ARM9内部寄存器结构,并分别说明R13、R14、R15寄存器的作用。 答:共有37个内部寄存器,被分为若干个组(BANK),这些寄存器包括31个通用寄存器,包括程序计数器(PC指针)6个状态寄存器。R13用作堆栈指针,R14称为子程序链接寄存器,R15用作程序计数器。 4.ARM处理器的工作模式有哪些? 答:用户模式:ARM处理器正常的程序执行状态。 快速中断模式:用于高速数据传输或通道处 理 外部中断模式:用于通用中断处理 管理模式:操作系统使用的保护模式 数据访问终止模式:当数据或指令预期终止时进入该模式,可用于虚拟存储器及存储保护 系统模式:运行具有特权的操作系统任务 未定义指令终止模式:当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。 5.ARM微处理器支持的数据类型有哪些? 答:ARM微处理器中支持字节(8位)、半字(16位),字(32位)三种数据类型。其中,字需要4字节对齐,半字需要2字节对齐。 7.叙述CPSR寄存器及其各位数据位的作用? 答:CPSR是当前程序状态寄存器,是在任何模式下都可以访问的通用状态寄存器,它包括条件标志位,中断禁止位,当前处理器模式标志位,以及其他一些相关的一些相关的控制和状态位①条件码标识;N,Z,C,V均为条件码标识,它们的内容可被算术或逻辑的结果所改变,并且可以决定某条指令是否被执行。②控制位:CPSR的低8位称为控制位,当发生异常时这些位可被 改变,如果处理器运行特权模式,这些位也可以由程序修改。③保留位:CPSR中的其余位为保留位,当改变CPSR中的条件码标志位或者控制位时保留位不要被改变,在程序中也不要使用保留位来存储数据 习题3 1.ARM指令有哪几种寻址方式?试分别叙述其各自的特点,并举例说明。 答:①寄存器寻址:寄存器寻址就是利用寄存器中的内容作为操作数,寄存器本身就是操作数地址,例:MOV R2,R3 ;R2—R3指R3中的内容赋给R2 ②立即寻址:操作数没有存储在寄存器或存储器中,而是包含在指令的操作码中,只要取出指令也就取到了操作数.例:ADD R1,R2,#1234;R1—R1+1234 ③寄存器间接寻址:以寄存器中的内容作为操作数的地址,而操作数本身存放在存储器中。例:LDR R1,[R2] ;R1—[R2] ④变址寻址:将寄存器的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地 址。例 LDR R0,[R1,#8] ;R0—[R1+8]⑤寄存器移位寻址:操作数由寄存器的数值进行相应移位而得到 例MOV R0,R1,LSL#4 ⑥多寄存器寻址:一条指令可以完成多个寄存器值的传送 例:LDMIA R1,{R2—R4,R5}; R2—[R1]R3—[R1+4] R4—[R1+8] R5—[R1+12] ⑦堆栈寻址:一种数据结构,按先进后出的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。 ⑧相对寻址:以程序计数器PC的当前值为基地址,指令中的地址标号作为为偏移量,将两者相加之后得到操作数的有效地址 2.简述ARM9指令集的分类 答:交换指令、ARM数据处理器指令、ARM分支指令、ARM协处理器指令⑤ARM软件中断指令 4.请叙述处理器如何实现ARM状态和Thumb状态的切换。 答:进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状 态,此外,当处理处于Thumb状态时发生异常,则异常返回时,自动切换到Thumb状态。 进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以微处理器从Thumb状态切换到ARM状态,此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以是处理器模式切换到ARM状态 6.简述ARM9的LDM/STM堆栈指令中空、满,递增、递减的含义。 答:当堆栈指针指向最后压入堆栈的数据时,称为满堆栈。当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈;当堆栈由低向低地址向高地址生成时,称为递增堆栈; 当堆栈由高地址向低地址生成时,称为递减堆栈 10.BX和BL指令有什么不同 答:BX指令是分支和交换指令,寄存器的地址是目标地址其中的位[0]不是地址信息,当寄存器的位[0]为1时,表明目标地址处是Thumb指令,当寄存器的位[0]为0时,表明目标地址是ARM指令,此时,要求字对准,BL指令是分支和链接指令,将一条指令的地址复制到R14,并引起 处理器移位到目标地址,但目标地址不可以是ARM指令,BL指定不能转移到当前指令+4MB以外的地址。 习题4 1. ARM伪指令与Thumb伪指令有什么区别? 答:与ARM指令相关的伪指令共有4条:ADR 、ADRL、 LDR 、NOP,这四条伪指令和通用的指令不同,在程序编译过程中,编译程序会为这四条指令产生代码,但这些代码不是它们自己的代码,所以尽管它们可以产生代码,但还是伪指令,与Thumb指令相关的伪指令共有3条,ADR、LDR、NOP ,但这些伪指令必须出现在Thumb程序段。 3.编写一个完整的程序,结构是什么? 答:在汇编语言程序中,用AREA伪指令定义一个段,并说明所定义段的相关属性,ENTPY伪指令标示程序的入口点,接下来为语句段,执行主代码后,通过返回控制终止应用程序,并返回到DEBDG通过使用软件中断指令实现返回,在程序的末尾为END伪指令, 该伪指令通知编译器停止对源文件的处理,每一个汇编程序段都必须有一条END伪指令,指示代码段的结束。 4..汇编语言中的表达式有哪些?试举例说明 答:数字表达式、逻辑表达式、字符串表达式、以寄存器和程序计数器(PC)为基址的表达式。例:BASE:A. 5.汇编语言中的运算符有哪些?试说明它们的特点及使用方法. 答:数字运算符:表明两个表达式之间的关系。 算术运算符“+”、“-”、 “x”及“MOD” 移位运算符”RDR”、“RDL“、“SHL、“SHR“ 逻辑运算符“AND”、“OR”、“NOT”、”EOR” 逻辑运算符包括LAND,LDR,LNOT,LEOR运算符 关系运算符:“=”、“>“、“>=”,“=<”,“/=”、“<”运算符 单目运算符,双目运算符 7.汇编语言与C/C++的混合编程通常有几种方式? 答:有三种方式:在C/C++代码中嵌入汇编指令; 在汇编程序和C/C++的程序之间进行变量的互访;汇编程序,C/C++程序间的相互调用。 习题5 1. S3C2440A芯片外部可寻址的存储空间是多少? 答S3C2440A芯片外部可寻址的存储空间是1GB,被分为8个存储模块,每块128MB 2. S3C2440A中的中断控制器可以从多少个中断源接收中断请求? 答:S3C2440A中的中断控制器可以60个中段源接收中断请求。这些中断源由内部的外围I/O端口或部件如DMA控制器,UART,IIC等提供。 4.S3C2440A芯片有几个通道DMA,共有多少个寄存器? 答:S3C2440A芯片有4个通道DMA,共有36个寄存器,其中6个用于控制DMA传输,3个用于监视DMA的控制器的状态。 5.看门狗定时器原理是什么? 答:看门狗定时器用于当噪音或系统错误引起故障时恢复控制器操作的定时,看门狗定时器是一 普通的16位时间间隔定时器,定时溢出来请求中断服务,每128个PCLK时钟周期产生一个复位信号。 6.触摸屏接口模式分为几类? 答:触摸屏接口模式可分为:正常转换模式、分离xy坐标转换模式、自动xy坐标转换模式、等待中断模式、备用模式 习题6 1.S3C2440A芯片的IC总线时序中,ACK信号的2作用是什么?结合相应的时序图加以说明 答:在完成一个字节的传输操作后,接收器应该发送一个ACK位给发送器。ACK位应该出现在SCL线的第9个时钟,当接收器收到第9个时钟周期时,发送器应该通过使SDA 信号线变为高电平来释放SDA信号线变为低电平,以便使SDA信号线保持在低电平,而发出ACK信号。 2.S3C2440A芯片的IS总线有几条信号线?分2别是什么? IS总线有4线, 答:即串行数据输入(IISDI),2串行数据输出(IISDD),左右通道选择 (IISLRCK)和串行位时钟(IISCLK) 3.S3C2440A中的音频串行接口D模式是什么? 答:IS总线格式、MSBJUSTIFIED格式 、采2样频率和主设备时钟 4.S3C2440A芯片的AC97控制器的操作流程是什么? 答内部数据通路 流程图操作 AC—link数字接口协议 AC97掉电 5.S3C2440A的摄像头接口由哪几部分组成? 答:共由图像多路复用器,捕捉单元,预览计数器,多媒体数字信号编解码器,DMA 预览,DMA编解码器及特殊功能寄存器7个部分组成。 习题7 1.CodeWarrior IDE包括什么功能? 答: <1>建立一个工程 <2>编译和链接工程 3.什么是交叉编译?为什么要进行交叉编译? 答:交叉编译是嵌入式操作系统开发过程中的一项重要技术。其主要特征是某机器中执行的程序代码不是在本机编译生成,而是在另一台机器编译生成。一般前者成为目标机,后者称为主机 采用交叉编译的原因在于多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译过程转移到高性能的主机上进行。这就需要在强大的PC上建立一个用于目标机的交叉编译环境。 4.Linux下的交叉编译环境主要包括几部分? 答:<1>针对目标系统的编译器GCC。<2>针对目标系统的二进制工具binutils;<3>目标系统的标准C库glibc,有时出于减小libc库大小的考虑,也可以用别的C库来代替glibc,例如uclibc,newlibc等;<4>目标系统的LInux内核头文件。 7.简述嵌入式系统开发流程? 答: <1>驱动调试的准备 <2>调试 10.简述嵌入式系统的交叉调试方法? 答:内核打FP函数 获取内核信息 处理出错信息 内核源码调试 习题8 1.什么是Boot loader? 答:Boot loader就是在操作系统内核运行之前运行的一段程序,通过这段程序可以初始化硬件设备,以便为最终调用操作系统内核准备好环境。 2..简述Boot loader的启动过程。 答:首先加载引导程序,然后进入Linux内核,接着是文件系统,最后进入用户应用程序。 例:可以放在FLASH里启动,或者用Jtag仿真器.由于使用NOR FLASH,根据2410的手册,片内的4K DRAM在不需要设置便可以直接使用,而其他存储器必须先初始化,比如告诉memory controller,BANK6里有两块SDRAM,数据宽度是32bit,= =.否则memory control会按照复位后的默认值来处理存储器.这样读写就会产生错误. 所以第一步,通过仿真器把执行代码放到0x4000_0000,(在编译的时候,设定TEXT_BAS E=0x40000000) 第二步,通过 AxD把linux KERNEL IMAGE放到目标地址(SDRAM)中,等待调用 第三步,执行BOOTLOADER代码,从串口得到调试数据,引导armlinux 3.vivi运行可以分为几个阶段?说明每个阶段的主要工作 答:vivi运行分为两阶段,第一阶段是完成含依赖于CPU的体系结构硬件初始化代码,第二阶段是main()函数开始,同一般的C语言程序一样/init/main.c文件中,然后进行初始化工作。 4.简述ARM Linux内核启动三个阶段的功能 答:第一阶段功能为系统选择映像,第二阶段可以启动Linux内核,第三阶段主要完成剩余的与硬件平台相关的初始化工作,在进行一系列与内核相关的初始化工作后,调用第一个用户进程,这样整个Linux内核启动完成该函数所有具体工作。 5.ARM系统中Boot loader的主要作用是什么? 答:初始化硬件设备、操作系统引导。 本文来源:https://www.wddqw.com/doc/9365910ae1bd960590c69ec3d5bbfd0a7956d5e0.html