嵌入式系统原理与接口技术习题答案.docx
《嵌入式系统原理与接口技术习题答案.docx》由会员分享,可在线阅读,更多相关《嵌入式系统原理与接口技术习题答案.docx(20页珍藏版)》请在冰豆网上搜索。
嵌入式系统原理与接口技术习题答案
《嵌入式ARM基础》习题
第一章
什么是嵌入式操作系统
答:
嵌入式系统是以应用为中心,以计算机技术为基础,软/硬件可裁减,功能。
可靠性,成本,体积,功耗要求严格的专用计算机系统。
与通用计算机相比,嵌入式系统有哪些特点
答:
(1).嵌入式系统通常是面向特定应用的;
(2).嵌入式系统是将计算机技术,半导体技术和电子技术与各行各业的具体应用相结合的后的产物,是一门综合技术学科;
(3).嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式产品一旦进入市场,就有较长的生命周期;
(4).为了提高执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中;
(5).嵌入式系统本身不具有自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。
根据嵌入式的复杂程度,嵌入式系统可分为哪4类
答:
1.单个微处理器;
2.嵌入式处理器可扩展系统;
3.复杂的嵌入式系统;
4.在制造或过程控制中使用的计算机系统;
举例介绍嵌入式处理器有哪几类
答:
1.嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU);
2.嵌入式微控制器;(EmbeddedMicrocontrollerUnit,EMCU)
3.嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP);
4.嵌入式片上系统(EmbeddedSystemonChip,EsoC);
从硬件系统来看,嵌入式系统由哪几个部分组成画出简图。
电源模块
Flash
微处理器
MPU
时钟
RAM
复位
ROM
外设
USB
LCD
keyboard
other
.嵌入式系统中,非数值数据编码主要包括哪几种
答:
1.字符表示;
2.汉字编码;
3.语音编码;
若在嵌入式系统采用CRC码进行信息传输,接收端接收到的码字为101011,已知生成多项式g(x)=1011,问收到的码字是否正确出错的是哪一位
解:
收到的码字不正确;出错的是第4位。
方法:
(将收到的码字与生成多项式相除,所得结果为0011。
对“CRC出错模式(G(x)=1011)”可查找出出错位为第四位)。
第三章
编写1+2+3+***+100的汇编程序。
AREAEXAMPLE1,CODE,READONLY;定义一个代码段,名称为
;EXAMPLE1
ENTRY;入口
MOVR0,#0;给R0赋值为0
MOVR1,#0;用R1来存放1~100的总和,初
;始化为0
STARTADDR0,R0,#1;用来判断终止的,每次加1
ADDR1,R1,R0;从1加到100
CMPR0,#100;执行R0-100的操作,但不保存,
;只影响CPSR的值
BLTSTART;带符号数小于时跳转到START处
;执行
STOP
BSTOP;死循环
END
如何实现128位数的减法,请举例说明。
AREAEXAMPLE2,CODE,READONLY
ENTRY
START
SUBSR5,R5,R9
SBCSR4,R4,R8
SBCSR3,R3,R7
SBCSR2,R2,R6
STOP
BSTOP
END
将存储器中起始地址M1处的4个字数据移动到M2处。
AREAEXAMPLE2,CODE,READONLY
ENTRY
LDRR0,=0X10;把地址0X10赋给R0
LDRR5,=0X20;把地址0X20赋给R5
START
STMIAR0,{R1-R4};把R1到R2的值依次赋给R0为首地址
;的内存单元中,每次赋完一次值,R0自
;动加1
LDMIAR5,{R1-R4};把R1到R4的值依次赋给以R5为首地
;址的内存单元中,R5每次自动加1
STOP
BSTOP;死循环
END
参考CPSR寄存器中各标志位的含义,使处理器处于系统模式。
AREAEXAMPLE2,CODE,READONLY
ENTRY
START
MOVR0,#0X1F;给R0赋值,2进制为11111
MSRCPSR_c,R0;把CPSR的条件位置1
STOP
BSTOP;死循环
END
用跳转指令实现两段程序间的来回切换。
AREAEXAMPLE5,CODE,READONLY
ENTRY
BLa;跳到a对R0,R1,赋值
START
CMPR0,R1;比较R0,R1的值
BNEb;不等是跳转到b
BEQSTOP;相等时跳转到STOP
a
MOVR0,#3;对R0,R1赋值
MOVR1,#2
MOVR15,R14;返回
b
ADDR1,R1,#1;R1自加1
BSTART;跳转到START
STOP
BSTOP;死循环
END
第四章
什么是伪指令和伪操作在ARM汇编中有哪几种伪指令
答:
在ARM汇编语言程序中有些特殊助记符,这些助记符与一般指令的助记符的不同之处在于没有相对应的操作码或者机器码,通常称这些特殊指令助记符卫伪指令,他们多完成的操作成为伪操作;
在ARM汇编中,有如下几种伪指令:
(1)符号定义伪指令;
(2)数据定义伪指令;
(3)汇编控制伪指令;
(4)信息报告伪指令;
(5)宏指令及其他伪指令。
如何定义寄存器列表,试举一个使用寄存器列表的例子,要求实现4个字的内存复制。
答:
AREAEXAMPLE1,CODE,READONLY
ENTRY
LDRR0,=0XFF;把地址0XFF赋给R0
LDRR5,=0X0F;把地址0X0F赋给R5
START
PBLOCKRLIST{R1-R4};把R1-R4定义为PBLOCK
STMIAR0,PBLOCK;把R1到R2的值依次赋给
;R0为首地址
;的内存单元中,每次赋完一次
;值自动加1
LDMIAR5,PBLOCK;把R1到R4的值依次赋给以R5
;为首地址的内存单元中,R5每
;次自动加1
STOP
BSTOP;死循环
END
参考CPSR寄存器中各标志位的含义,使处理器处于系统模式。
AREAEXAMPLE2,CODE,READONLY
ENTRY
START
MOVR0,#0x1F
MSRCPSR_c,R0
STOP
BSTOP
END
如何定义一个宏,宏与子程序的区别是什么
答:
宏的格式为:
MARCO和MEND
[$标号]宏名[$参数1,$参数2…..]
指令序列
MEND
MARCO表示一个宏定义的开始,MEND表示一个宏的结束,MARCO和MEND前呼后应可以将一段代码定义为一个整体,又称宏,然后在程序中就可以在程序中通过宏的名称及参数调用该段代码。
宏指令可以重复使用,这一点的使用方式与子程序有些相似,子程序可以节省存储空间,提供模块化的程序设计。
但使用子程序机构时需要保存/恢复现场,从而增加了系统的开销,因此,在代码传递的参数较多并且比较短时,可以使用宏代替子程序,宏在被调用的地方展开。
汇编中如何定义一个段,段有几种属性
答:
AREA用于定义一个代码段,数据段,或者特定属性的段。
段的几种属性如下:
READONLY表示只读属性;
READWRITE表示本段可读写;
CODE定义代码段;
DATA定义数据段;
ALIGN=表达式的对齐方式为2的表达式次方;;
COMMON:
定义一个通用段,这个段不包含用户代码和数据。
在一个汇编源文件中如何包含另一个文件中的内容
答:
通常可以使用GET/INCLUDE指令,在某源文件中定义一些宏指令,用MAP和FIELD定义结构化数据结构类型,用EQU定义常量的符号名称,然后用GET/INCLUDE将这个源文件包含到其他源文件中。
分别编写一个函数和一个宏,实现字符串的复制。
MACRO
COPY$P1,$P2;定义一个宏
$P1DCB"HELLO";分配一个字节的空间,并初始化为一个
;字符串
$P2DCB"WORLD!
";同上
LDRR0,=$P1;把P1的首地址加载到R0
LDRR6,=$P2;把P2的首地址加载到R1
LDRIAR0,[R1-R5];把R0每载一次,自加一次
;实现把P1加载到R0
STRIAR6,[R1-R5];同理(上)
MEND
AREACOPY,CODE,READONLY
ENTRY
START
MACROSTR1,STR2;调用宏
BSTART;死循环
END
解释归纳变量,同族的归纳变量及基本的归纳变量。
4.8试将下面这段C代码翻译为等效的汇编代码:
intFactorial(int)要有以下几个特点:
具有大量的指令和寻址方式;
大多数程序只使用少量的指令就能够运行。
绝大多数嵌入式处理器:
精简指令系统计算机(RISC)有一个精简的指令系统。
从而提高了微理器的效率,但需要更复杂的外部程序,也就是把在处理器层没有完成的工作放到了上层进行,而处理器层少的这些成本可以用对物理器件速度的提高上去。
RISC有下特点:
8/2原则:
80%的程序只使用20%的指令;
采用Load/store指令模式,凡数据由外存到内存、内存到寄存器方向的流动统一用Load指令,而对于反方向的操作,都用store;
用小指令集、多寄存器、指令执行简单快速;
统一用单周期指令,从根本上克服了CISC指令周期数有长有短、偶发性不确定、运行失常的缺点。
(4)ARM7、ARM9内核处理器各采用几级流水线,分别是哪几级流水线结构
答:
ARM7TDMI采用三级流水线,分另为取指令、解码指令和执行操作。
ARM9TDMI采用5级流水线结构,分别为取指令、译码、执行、存储、写操作五级。
(5)从内部结构及功能来看,ARM7、ARM9、Xscal内核处理器各自有哪些不同,主要应用在哪些领域
答:
ARM7内部结构框图,包括AddressRegister(地址寄存器)、AddressIncrementer(地址累加器)、ResisterBank(寄存器块)、Booth’sMultiplier(乘法器)、32位ALU单元、Write/ReadDataRegister(读/写数据寄存器)、逻辑控制单元等部分。
没有内存管理单片。
ARM9TDMI处理器内核采用ARMV4T架构,增加了可用的存储器宽度、指令存储器接口以及数据存储器接口,可以支持16bitThumb指令集和32btiARM指令,ARM9作为高性能的32位RISC处理器内核,可以实现对指令和数据存储器的同时访问。
如图2-9所示为ARM9功能结构图。
主要包含以下结构:
16KB指令和16KB数据缓存;
存储管理单元MMU,这有别于ARM7TDMI;
一个AMBA(AdvancedMicroprocessorBusArchitecture)总线接口;
一个EmbeddedTraceMacrocell(ETM)接口。
有内存管理单元,便于移植操作系统。
第3章
(1)试列举ARM处理器工作模式,各工作模式主要完成怎么样的功能
答:
User:
用户模式。
绝大部分的任务执行都在这种操作模式下,此为正常的程序执行模式。
FIQ:
快速中断模式。
当一个高优先级中断产生时,系统将会进入这种操作模式,用于高速数据传输和通道处理,由FIQ请求位发出请求信号。
IRQ:
普通中断模式。
当一个低优先级中断产生时将会进入这种操作模式,本模式用于通常的中断处理,由IRQ请求位发出请求信号。
Supervisor:
管理模式。
当复位或软中断指令执行时将会进入这种操作模式,是一种可以供操作系统使用的保护模式。
Abort:
中止模式。
当存取异常时将会进入这种操作模式,此模式可以被用作虚拟存储及存储保护,可由ABORT请求位发出请求信号。
Undef:
未定义模式。
当执行未定义指令时会进入这种操作模式,多被用于软件仿真硬件协处理器时。
(2)试列举ARM处理器各寄存器功能,在不同的模式下可以访问哪些寄存器
答:
1个寄存器用作PC(ProgramCounter),即程序寄存器,指向程序执行位置。
1个寄存器用作CPSR(CurrentProgramStatusRegister),即当前状态寄存器,保存当前CPU状态。
5个寄存器用作SPSR(SavedProgramStatusRegisters),备份不同模式下CPSR的值。
30个寄存器作为通用寄存器,存储数据使用。
(3)试说明CPSR寄存器各位功能。
答:
标志位含义
NN=1表示运算的结果为负数;N=0表示运算的结果为正数或零
ZZ=1表示运算的结果为零;Z=0表示运算的结果为非零
CC=1表示有进位,C=0表示没有进位
VV=1表示符号位溢出,V=0表示结果没有溢出
Q在ARMvTE/J架构支持,指示DSP指令是否溢出
J仅ARM5TE/J架构支持,J=1表示处理器处于Jazelle状态
II=1表示禁止IRQ
FF=1表示禁止FIQ
T仅ARMxT架构支持,T=0表示处理器处于ARM状态,T=1表示处理器处于Thumb状态
(4)试列出ARM处理器常见中断方式,并说明ARM处理器在响应这些中断时要经历哪些主要步骤
答:
异常类型具体含义
FIQ当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常
IRQ当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常
异常中断当外部的ABORT输入产生时,发生异常断
软件中断该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令,可使用该异常机制实现系统功能调用
复位当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行
未定义指令当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。
可使用该异常机制进行软件仿真
ARM处理异常时,将立即通过备份寄存器保存当前CPU的状态。
PC和CPSR寄存器中的内容被分别拷贝到R14和SPSR中,PC和CPSR中的模式位M[0:
4]根据异常类型被强制改变。
在异常中断处理中,如果要禁止其它难以管理异常的嵌套,可以置位中断标志位禁止再次中断请求。
在需要重复进入中断处理程序的情况下,R14和SPSR应该在中断被使能之前保存到主存储的堆栈中;当传送SPSR寄存器到堆栈或者从堆栈传送时,需要注意的是必须传送整个字(32位)。
当多个异常同时产生时,优先级决定异常响应的顺序。
异常处理完毕之后,ARM微处理器将连接寄存器LR的值减去相应的偏移量后送到PC中,同时将SPSR复制回CPSR中,若在进入异常处理时设置了中断禁止位,要在此清除。
(5)为什么说ARM处理器是32位处理器,主要体现在哪些方面,其汇编采用怎样的指令编码格式
答:
数据线32位,寄存器32位,编码32位。
(6)试列出16类指令条件域所对应的CPSR寄存器相应位状态。
答:
条件码助记符后缀标志含义
0000EQZ置位相等
0001NEZ清零不相等
0010CSC置位无符号数大于或等于
0011CCC清零无符号数小于
0100MIN置位负数
0101PLN清零正数或零
0110VSV置位溢出
0111VCV清零未溢出
1000HIC置位Z清零无符号数大于
1001LSC清零Z置位无符号数小于或等于
1010GEN等于V带符号数大于或等于
1011LTN不等于V带符号数小于
1100GTZ清零且(N等于V)带符号数大于
1101LEZ置位或(N不等于V)带符号数小于或等于
1110AL忽略无条件执行
(7)ARM处理器主要有哪些类型的寻址方式,各有什么特点
答:
立即寻址
寄存器寻址
基地址变址寻址
寄存器偏移寻址
寄存器间接寻址
多寄存器寻址
(8)ARM指令和伪指令主要功能是什么在ARM处理器中,有哪些类型的ARM指令,试举例说明相应指令编码格式,在ARM汇编程序设计时,有哪些主要类型的伪指令,试举例说明各类伪指令功能。
答:
ARM指令:
指示处理器如何工作。
伪指令:
协助编译器。
指令略。
(9)试用汇编程序实现求两个数中最大数。
答:
(10)试用汇编程序实现1~100的加法运算。
答:
(11)试用汇编程序实现10的阶乘运算。
答:
(12)完成本章中所有源代码编写及调试。
答:
第4章
(1)试列举在进行嵌入式软件开发时,ARM汇编语言多用来开发哪些类型的程序。
答:
Bootloader程序中多采用汇编程序和C语言汇合编程。
操作系统中有少部分是汇编程序,绝大部分采用C语言编写,例如Linux内核。
(2)在使用ADS平台进行嵌入式应用程序开发时,armasm、armcc、armcpp、armlink主要功能是什么,如果要编译Thumb指令集程序,需要使用哪些命令。
答:
armasm:
此命令用来编译汇编程序。
armcc:
用来编译C程序。
armcpp:
用来编译C++程序。
armlink:
此命令用来链接目标文件。
(3)试编写一段汇编程序,实现64位加法运算,并使用
(2)中所列工具进行编译链接,生成可执行二进制代码。
答:
(4)在ARM应用程序中,在存储时可执行文件主要分为哪几个部分,在运行时又分成哪几个主要部分,各部分主要存储形式和存储内容是什么
答:
图4-3 存储态和运行态代码分布
(5)使用平台创建工程项目文件过程是什么,试安装平台创建一个工程项目,然后添加相应源代码,使用AXD调试,写出详细操作步骤。
答:
(6)试编写一段C语言与汇编程序的混合程序,在此汇编程序中,实现输入的任意两个数的整数除法运算,在C文件中实现测试。
答:
(7)试编写一段C语言与汇编程序的混合程序,在此汇编程序中,实现两个64位数的乘法运算,在C文件中调用该函数实现测试,要求明确函数参数传递及返回。
答:
(8)为什么要尽可能的遵循APCS标准,有什么好处,在APCS中,函数调用及返回遵循哪些规则。
答:
第5章
(1)从硬件和软件两个方面分析一个嵌入式系统主要具备哪些显著特点
答:
(2)试列出一个嵌入式设备在硬件常见的外围接口及主要功能
答:
(3)试列出一个嵌入式设备在所具备的层次结构以及各层主要功能
答:
(4)试指出嵌入式软件开发和传统的X86平台软件开发的差异,常见的嵌入式开发工具和开发平台有哪些
答:
(5)什么是嵌入式交叉编译环境,这种开发模式有哪些主要特点
答:
第六章
(1)ARM处理器有哪几种主要的中断异常,如果进入这些中断异常,如何从这些中断异常服务程序中恢复。
答:
(2)为什么要设置中断优先级,其主要功能是什么
答:
(3)什么是中断向量表地址值,主要在什么时候需要使用它们
答:
(4)有哪几种加载中断服务子程序地址的方式使用直接跳转方式有哪些限制
答:
(5)使用C语言程序获得中断处理程序地址有哪两种方式,请写出步骤
答:
(6)试分析SWI中断处理原理及过程。
答:
第七章
(1)试列举S3C2410处理器的常用外围接口及主要功能;
答:
(2)根据通信方向和时间可以将通信分为哪几类,各有什么特点
答:
(3)试说出串行通信协议的基本原理及数据帧格式
答:
(4)试列出RS232C串行接口标准的基本特点
答:
(5)试分析S3C2410芯片的UART单元各部分主要功能以及主要寄存器功能
答:
(6)在进行外围接口电路设计时,驱动芯片的主要功能是什么,为什么要设计驱动电路
答:
(7)试分析说明ZLG7290芯片的工作原理
答:
(8)试说明IIC通信协议的基本原理
答:
(9)试说明触摸屏的工作原理以及ADS7843的驱动原理
答:
(10)试说明SPI通信协议的基本原理
答:
(11)试列出常见的AD转换器类型及工作原理
答:
(12)试说明LCD的工作原理及常见类型
答:
第8章
(1)试分析实时操作系统的基本特点
答:
(2)试说明实时操作系统在嵌入式系统中的地位
答:
(3)什么是程序、任务、进程、调度、调度算法、优先级,它们之间有什么区别和联系
答:
(4)μC/OS-II提供了哪些任务管理功能各任务之间是通过什么调度算法来实现任务调度的,μC/OS-II是抢占式还是非抢占式操作系统
答:
(5)μC/OS-II提供了哪几类任务间通信方式,各应用在哪些方面
答:
(6)为什么说μC/OS-II具有很好的可移植性
答:
(7)μC/OS-II有哪两种上下文切换方式的,各自切换过程是什么,有什么区别
答:
(8)μC/OS-II在ARM处理器中是怎样实现FIQ和IRQ的,试分析处理过程
答: