嵌入式系统原理与接口复习要点及思考题答案计.docx
《嵌入式系统原理与接口复习要点及思考题答案计.docx》由会员分享,可在线阅读,更多相关《嵌入式系统原理与接口复习要点及思考题答案计.docx(16页珍藏版)》请在冰点文库上搜索。
嵌入式系统原理与接口复习要点及思考题答案计
各位:
根据掌握要点认真复习,后面附有作业题答案。
第1章掌握要点
1.1.1节嵌入式系统的概念
1.1.3节嵌入式系统的特点
1.3节嵌入式处理器
1.4节嵌入式系统的组成〔看课件,有补充的内容〕
补:
1.嵌入式系统开发过程?
2.嵌入式系统调试常用的根本方法
3.交叉编译和交叉调试
第2章掌握要点
2.1节计算机体系结构分类
2.3.1节ARM和Thumb状态
2.3.2节RISC技术
2.3.3节流水线技术
2.4.1ARM存储系统
2.4.2Cache:
写通、写回、读操作分配cache、写操作分配cache、工作原理、地址映像
2.4.3节ARM存储系统
补充:
(见课件)
1.ARM简介:
ARM的命名方式、5种变形
2.理解片内Flash的3种编程方法。
3.理解ARM7芯片存储器存储空间分布。
〔8个bank,每个bank32MB〕
第3章掌握要点
3.1节ARM编程模式:
处理器模式、处理器工作状态、存放器组织、异常中断
3.2节指令格式和寻址方式
3.3节指令系统:
掌握和熟练应用课件所讲的指令、可编程序段
第5章掌握要点
5.1节键盘接口:
行扫描法原理、掌握编写驱动程序
5.2节LED显示器接口:
理解工作原理,掌握编写驱动程序
5.5.1节UART异步串行接口:
异步通信格式、接收的4种错误类型、初始化、发送程序、接收程序
第1章作业题答案:
1.什么是嵌入式系统?
∙第一种,根据IEEE〔国际电气和电子工程师协会〕的定义:
嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置〞〔原文为devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants〕。
∙第二种,嵌入式系统是以应用为中心、以计算机技术为根底、软件硬件可裁剪、功能、可靠性、本钱、体积、功耗严格要求的专用计算机系统。
两种定义之一即可。
2.与通用型计算机相比,嵌入式系统有哪些特点?
⏹通常是面向特定应用的;
⏹空间和各种资源相对缺乏,必须高效率地设计,量体裁衣、去除冗余;
⏹产品升级换代和具体产品同步,具有较长的生命周期;
⏹软件一般都固化在存储器芯片或单片机本身;
⏹不具备自举开发能力,必须有一套开发工具和环境才能进行开发
3.举例介绍嵌入式微处理器有哪几类?
〔1〕嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU)
嵌入式处理器目前主要有Aml86/88、386EX、SC-400、PowerPC、68000、MIPS、ARM系列等。
(2)嵌入式微控制器(MicrocontrollerUnit,MCU)
嵌入式微控制器目前的品种和数量最多,比拟有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。
(3)嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP)
嵌入式DSP处理器比拟有代表性的产品是TexasInstruments的TMS320系列和Motorola摩托罗拉的DSP56000系列。
(4)嵌入式片上系统(SystemOnChip)
4.从硬件系统来看,嵌入式系统由哪几局部组成?
画出简图。
∙嵌入式核心芯片,EMPU——嵌入式微处理器、EMCU——嵌入式微控制器、EDSP——嵌入式数字信号处理器、ESoC——嵌入式片上系统。
∙用以保存固件的ROM〔非挥发性只读存储器〕。
∙用以保存程序数据的RAM〔挥发性的随机访问存储器〕。
∙连接微控制器和开关、按钮、传感器、模/数转化器、控制器、LED〔发光二极管〕、显示器的I/O端口。
5.嵌入式微处理器和嵌入式微控制器分别由哪些部件组成,两者有何区别。
答:
嵌入式微处理器的根底是通用计算机中的CPU。
嵌入式微处理器=运算器+控制器+存放器组+内总线,在应用中必须装配在专门设计的电路板上,在电路板上必须包括ROM、RAM、总线接口、各种外设等器件。
嵌入式微控制器=cpu内核+存储器+I/o接口+辅助电路〔时钟、A/D、D/A等〕
嵌入式微处理器与嵌入式微控制器的区别:
嵌入式微处理器只含有内核,嵌入式微控制器除含有内核外,内部还包含ROM、RAM存储器以及各种外设接口、辅助电路等。
6.嵌入式操作系统通常含有几层,主要实现何功能。
嵌入式操作系统通常包括:
〔1〕驱动层:
硬件相关的底层驱动软件和设备驱动接口;如:
LCD、触摸屏的驱动及接口。
〔2〕操作系统层:
系统内核〔根本模块〕,扩展模块〔可裁剪〕。
根本模块包含内存管理、文件管理和进程调度;扩展模块包含网络模块、图形驱动、数据库驱动等。
〔3〕应用层:
应用程序接口。
7.嵌入式系统开发过程?
答:
嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大局部。
流程如下图。
8.嵌入式系统调试常用的根本方法?
答:
常用的三种方法:
模拟调试〔Simulator〕、全仿真调试〔Emulator〕、BDM/JTAG调试〔BDM/JTAGDebugger〕。
模拟调试:
调试器和待调试的嵌入式软件都在主机上运行,由主机提供一个模拟的目标运行环境,可以进行语法和逻辑上的调试。
全仿真调试〔Emulator〕:
这种方式用仿真器完全取代目标板上的MCU,仿真器是仿照目标机上的CPU而专门设计的硬件。
仿真器与目标板通过仿真头连接,与主机有串口、并口、网口或USB口等连接方式。
BDM/JTAG调试:
这种方式有一个硬件调试体。
该硬件调试体与目标板通过BDM、JTAG等调试接口相连,与主机通过串口、并口、网口或USB口相连。
待调试软件通过BDM/JTAG调试器下载到目标板上运行。
9.理解交叉编译和交叉调试。
答:
嵌入式软件开发所采用的编译为交叉编译。
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,称这种编译器支持交叉编译。
简单地说,就是在一个平台上生成另一个平台上的可执行代码。
要进行交叉编译,需要在主机平台上安装对应的交叉编译器,然后用这个交叉编译器编译源代码,最终生成可在目标平台上运行的代码。
在嵌入式软件开发中,调试时采用的是在宿主机和目标机之间进行的交叉调试,调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式操作系统中,调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。
第二章作业答案
1.ARM处理器工作模式有几种?
各种工作模式下分别有什么特点?
答:
ARM微处理器支持用户、系统、快速中断、外部中断、管理、中止、未定义等7种工作模式。
各工作模式拥有自己的存放器组,不同的工作模式间可以相互切换,共有两种方式。
第一种,发生异常时,处理器自动改变CPSR中M[4:
0]的值,进入相应的工作模式;第二种,当处理器处于特权模式时,用指令向CPSR的M[4:
0]字段写入特定的值,以进入相应的工作模式。
当处理器处于用户模式时,不能改变工作模式,除非发生异常。
2.ARM处理器总共有多少个存放器,这些存放器按其在用户编程中的功能是如何划分的?
这些存放器在使用中各有何特殊之处?
答:
ARM处理器总共有37个存放器,各存放器均为32位。
31个通用存放器,包括程序计数器PC;6个状态存放器。
这些存放器按其在用户编程中的功能可划分为:
通用存放器和状态存放器。
根据ARM处理器不同工作模式,可将全部存放器分成7组;各工作模式拥有属于自己的存放器组,也只能访问自己的存放器组。
3.存放器R13,R14,R15的专用功能各是什么?
答:
1〕存放器R13用作堆栈指针SP;2〕存放器R14用作子程序链接存放器,也称为LR,用以保存返回地址;3〕R15〔PC〕用作程序计数器。
4.假设存放器R1=0x01020304,分别按小端模式和大端模式存储在0x30000字单元中,试分别画出两种模式下内存存储内容,并标出内存地址。
5.试述ARM处理器对异常中断的响应过程。
答:
当一个异常出现以后,ARM微处理器执行完当前指令后〔复位异常除外〕会执行以下几步操作:
(1)将CPSR复制到相应到相应模式下的SPSR中,设置CPSR:
置位I位〔禁止IRQ中断〕
清零T位〔进入ARM状态〕
设置MOD位,切换处理器至相应模式
(2)将下一条指令的地址存入相应连接存放器LR〔R14_XXX〕,以便程序在处理异常返回时能从正确的位置重新开始执行。
(3)强制PC从相关的异常向量地址取一条指令执行,从而跳转到相应的异常处理程序处。
6.如何从异常中断处理程序中返回?
需要注意哪些问题?
答:
异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:
(1)将SPSR复制回CPSR中,恢复原处理器工作模式。
(2)将连接存放器LR〔R14_XXX〕的值减去相应的偏移量后送到PC中,跳转到被中断的用户程序。
7.ARM存储器的存储周期有几种类型,对应于cache访问和存储器访问是何存储周期?
答:
〔1〕空闲周期I周期----内部周期,不执行存储器访问;可播送下一次访问的地址以便开始译码,与S周期配合实现总线上的突发传送。
(2)顺序周期S周期----顺序周期:
多用于实现总线上的突发传送,第一个周期必须是一个内部周期。
〔cache传送〕
(3)协处理器存放器传送周期C周期----协处理器存放器传递周期:
通过数据总线向或从协处理器传送数据;传送期间,存储系统不允许驱动数据总线。
(4)非顺序周期N周期----非顺序周期:
最简单的总线周期,存储控制器必须启动存储器访问来满足这个请求;该方式存储系统常需要长的访问时间。
(存储器读写)
cache访问:
I周期、S周期
存储器访问:
N周期
8.何谓cache?
简述cache的工作原理。
(第2版书P44)
9.何谓写通cache和写回cache,两者有何区别?
答:
〔1〕写回法是指CPU在执行写操作时,被写的数据只写入cache,不写入主存。
仅当需要替换时,才把已经修改的cache块写回到主存中。
采用写回法进行数据更新的cache称为写回cache。
(2)写通法是指CPU在执行写操作时,必须把数据同时写入cache和主存。
采用写通法进行数据更新的cache称为写通cache。
10.arm的MMU主要实现何功能。
答:
〔1〕虚拟存储空间到物理存储空间的映射。
在ARM中采用了页式虚拟存储管理,通过两级页表实现虚拟地址到物理地址的映射。
〔2〕存储器访问权限的控制。
〔3〕设置虚拟存储空间的缓冲特性:
Cache/writebuffer
11.协处理器cp15主要实现的功能?
答:
〔1〕用于处理、控制ARM的特殊性能
〔2〕片上存储器管理单元(MMU)
〔3〕指令、数据缓存
〔4〕写缓冲器
12、简述MMU使能时存储访问过程。
答:
芯片设置为MMU使能(设置cp15存放器):
〔1〕假设cache使能,根据arm输出的虚拟地址在CACHE中搜索;假设cache命中,arm处理器与cache交换数据。
假设cache禁止或cache未命中,首先访问TLB,参见〔2〕。
〔2〕根据arm输出的虚拟地址在TLB中搜索,假设找到,将其转换为物理地址,访问主存并把该块数据读取到cache(使能时)中。
13、ARM支持的物理页有几种类型,其容量为何值?
答:
ARM支持的存储块:
〔1〕段〔section〕:
由1MB的存储器块构成
〔2〕大页〔largepage〕:
由64KB的存储器块构成
〔3〕小页〔smallpage〕:
由4KB的存储器块构成
〔4〕微页〔tinypage〕:
由1KB的存储器块构成
14、简述基于段的地址变换过程。
15、简述使用粗页表和4k页的二级虚实地址转换过程。
补充题:
1.理解片内Flash的3种编程方法。
答:
通过内置JTAG接口编程、通过在系统编程〔ISP〕、通过在应用编程〔IAP〕
LPC2000系列存储器存储空间分布。
见课件。
3.S3C44BOX的存储空间的分布,由哪几局部组成?
答:
S3C44B0X的存储空间分成8组,每组容量为32MB,bank0---bank5起始地址固定,容量固定为32MB,bank6起始地址也固定,其容量和bank7的容量可编程改变,可以是2、4、8、16、32MB,并且bank7的起始地址与bank6的结束地址相连接。
第3章作业题答案
1、ARM的寻址方式有哪些?
各写一条说明。
答:
1〕立即寻址〔1〕ADDR0,R0,#1/*R0←R0+1*/
〔2〕ADDR0,R0,#0x3f/*R0←R0+0x3f*/;
2〕存放器寻址〔ADDR0,R1,R2/*R0←R1+R2*/〕;
3〕存放器间接寻址〔1〕LDRR0,[R1]/*R0←[R1]*/;
〔2〕STRR0,[R1]/*[R1]←R0*/;
4〕基址加偏址寻址〔1〕、LDRR0,[R1,#4];R0←[R1+4];
〔2〕、LDRR0,[R1,#4]!
;R0←[R1+4]、R1←R1+4;
〔3〕、LDRR0,[R1],#4;R0←[R1]、R1←R1+4
5〕堆栈寻址〔1〕、STMFDSP!
{R1-R7,LR};
〔2〕、LDMFDSP!
{R1-R7,LR};
6〕块拷贝寻址〔1〕、LDMIAR0!
{R2-R9};
〔2〕、STMIAR1,{R2,R9};
2.存储器生长堆栈可分为哪几种?
4种,满递增堆栈,满递减堆栈,空递增堆栈,空递减堆栈。
第5章作业题答案
1.S3C44B0X具有多少通用I/O口?
它们具有哪些功能?
(第2版P143)
2.简述矩阵式键盘线扫描检测法的工作原理。
(第2版P145)
3.〔1〕假设要将S3C44B0X的UART1设置为:
波特率9600b/s,8位数据位,1个停止位,无校验位,并采用非自动流控制方式工作,禁止超时中断、回送模式、发中止信号,允许产生错误状态中断,传送、接收模式都为中断请求模式,发送、接收中断为边沿方式,该如何初始化?
给出完成该设置功能的代码段。
〔2〕利用串口1实现两个开发平台间的双机通信,试给出发送子程序和接收子程序。
答:
〔1〕
rFCON0=0X00;不使用FIFO
rUMCON0=0X10;自动流控制
rULCON0=0X3;
rUCON0=0X45;//禁止超时中断、回送模式、发中止信号,允许产生错误状态中断,//发送、接收中断都为边沿方式,传送、接收模式都为中断请求模式
rUBRDIVO=〔〔int〕MCLK/16/baud+0.5〕-1〕;//根据波特率计算UBRDIVO的值
〔2〕发送子程序:
voidUart_SendByte(charch)
{
while(!
(rUTRSTAT1&0x2));
Delay(10);
WrUTXHO(ch);
}
接收子程序:
charUart_GetByte(void)
{
while(!
(rUTRSTATO&0x1));//等待,接收缓冲区接收数据
returnRdUTXH0();//返回接收的数据
}
4.现有两种简单的外设,一组3位开关,一组1位LED指示灯,要求:
〔1〕利用PF端口的低3位连接开关,PG端口驱动LED的段码,PF4驱动位控段,试画出接口电路。
〔2〕编制驱动程序,使开关的组合值在LED上显示出来。
答:
〔1〕
(2)驱动程序:
Unsignedcharled_dis[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};
Unsignedcharval,key;
rPCONG=0x5555;
rPCONF=0x0100;
key=rPDATF&0x07;
rPDATG=led_dis[key];
rPDATF=rPDATF|0x10;