嵌入式复习资料整理修订威力加强版Word格式文档下载.docx

上传人:b****6 文档编号:17477025 上传时间:2022-12-01 格式:DOCX 页数:29 大小:126.89KB
下载 相关 举报
嵌入式复习资料整理修订威力加强版Word格式文档下载.docx_第1页
第1页 / 共29页
嵌入式复习资料整理修订威力加强版Word格式文档下载.docx_第2页
第2页 / 共29页
嵌入式复习资料整理修订威力加强版Word格式文档下载.docx_第3页
第3页 / 共29页
嵌入式复习资料整理修订威力加强版Word格式文档下载.docx_第4页
第4页 / 共29页
嵌入式复习资料整理修订威力加强版Word格式文档下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

嵌入式复习资料整理修订威力加强版Word格式文档下载.docx

《嵌入式复习资料整理修订威力加强版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《嵌入式复习资料整理修订威力加强版Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。

嵌入式复习资料整理修订威力加强版Word格式文档下载.docx

2)嵌入式微控制器(EMCU);

3)嵌入式DSP处理器(EDSP);

4)嵌入式片上系统(ESoC)。

1.6从硬件系统来看,嵌入式系统由哪几部分组成?

画出见图。

(P11)第二章2.1ARM7和ARM9基于什么体系结构,采用何种指令集?

ARM7基于冯诺依曼体系结构,采用RISC精简指令,兼容16位Thumb指令集;

ARM9基于哈佛体系结构,同样采用RISC精简指令,支持32位ARM指令集和16位Thumb指令集。

2.2ARM7TDMI中的TDMI分别代表什么?

T:

支持16位压缩指令集Thumb。

D:

支持片上Debug。

M:

内嵌硬件乘法器(Multiplier)。

I:

嵌入式ICE,支持片上断点和调试点。

T变种处理器有两种工作状态:

Thumb和ARM只要支持同版本的ARM体系版本,基于ARM处理器的应用软件将是兼容的。

2.3ARM处理器有几种工作模式?

各种工作模式分别有什么特点?

(P25)ARM状态和Thumb状态。

当ARM微处理器执行32位的指令集功能时,工作在ARM状态;

当ARM微处理器工作在16位的Thumb指令集时,工作在Thumb状态。

2.4对比ARM指令集合Thumb指令集Thumb指令集与ARM指令集的区别Thumb指令集没有协处理器指令,信号量指令以及访问CPSR或SPSR的指令,没有乘加指令及64位乘法指令等,且指令的第二操作数受到限制;

除了跳转指令B有条件执行功能外,其它指令均为无条件执行;

大多数Thumb数据处理指令采用2地址格式。

Thumb指令集与ARM指令的区别一般有如下几点:

跳转指令程序相对转移,特别是条件跳转与ARM代码下的跳转相比,在范围上有更多的限制,转向子程序是无条件的转移。

数据处理指令数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第3个寄存器中。

数据处理操作比ARM状态的更少,访问寄存器R8R15受到一定限制。

除MOV和ADD指令访问器R8R15外,其它数据处理指令总是更新CPSR中的ALU状态标志。

访问寄存器R8R15的Thumb数据处理指令不能更新CPSR中的ALU状态标志。

单寄存器加载和存储指令在Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0R7。

批量寄存器加载和存储指令LDM和STM指令可以将任何范围为R0R7的寄存器子集加载或存储。

PUSH和POP指令使用堆栈指令R13作为基址实现满递减堆栈。

除R0R7外,PUSH指令还可以存储链接寄存器R14,并且POP指令可以加载程序指令PC。

2.5如何转换ARM的两种工作状态?

(P25)进入Thumb状态:

当操作数寄存器的状态位(位0)为1时,可以执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。

进入ARM状态:

当操作数寄存器的状态位(位0)为0时,可以执行BX指令的方法,使微处理器从Thumb状态切换到ARM状态。

2.6ARM7采用几级流水线?

(P27)ARM7架构采用了3级流水线。

1)取指:

将指令从内存中取出来。

2)译码:

操作码和操作数被译码以决定执行什么功能。

3)执行:

执行已译码的指令。

ARM9采用五级流水线技术2.7ARM采用怎样的数据存储格式?

(P40)ARM处理器的数据存储格式有两种:

大端模式和小端模式。

大端模式:

较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。

小端模式:

较高的有效地址存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址。

默认情况下的存储格式是小端模式。

ARM采用单周期指令集2.8若寄存器R1=0x01020304,分别按小端模式和大端模式存储在0x30000字节单元中,是分别列出两种模式下内存存储内容,并标出内存地址。

0x3001F0x300180x300170x300100x3000F0x300080x300070x30000大端04030201小端010203042.9ARM存储器的存储周期有几种类型?

对应于Cache访问和存储器访问是何存储周期?

(P41)存储周期类型:

空闲周期。

非顺序周期。

顺序周期。

协处理器寄存器传送周期。

2.10ARM支持哪些存储数据类型?

(P40)ARM处理器支持以下6种数据类型:

8位有符号和无符号字节。

16位有符号和无符号半字,以2字节的边界对齐。

32位有符号和无符号字,以4字节的边界对齐。

2.12ARM支持的有几种页面类型?

其容量为何值?

(P48)段(Section):

大小为1MB的存储块。

大页(LargePages):

大小为64KB的存储块。

小页(SmallPages):

大小为4KB的存储块。

极小页(TinyPages):

大小为1KB的存储块。

2.13一级描述符可能的格式:

(P49)位31201912111098543210无效00粗表粗粒度二级页表基地址0域标志用户定义01段段基址为0AP0域标志用户定义CB10细表细粒度二级页表基址为0域标志用户定义11AP为访问权限控制位。

2.14ARM的MMU主要实现什么功能?

(P45)存储管理单元(MMU)用于在CPU和物理内存之间进行地址转换。

由于是将地址从逻辑空间映射到物理空间,因此这个转换过程一般称为内存映射。

在ARM系统中,存储管理单元(MMU)主要完成以下工作:

虚拟存储空间到物理存储空间的映射。

存储器访问权限的控制。

设置虚拟存储空间的缓冲特性。

2.15ARM系统中如何完成I/O操作?

(P54)ARM系统中I/O采用统一编址,I/O操作通常被映射成存储器操作,即输入/输出是通过存储器映射的可寻址外围寄存器和中端输入的组合来实现的。

第三章3.1ARM支持哪几种工作模式?

不同工作模式如何进行切换?

(P56)ARM微处理器支持7种工作模式:

用户模式。

快速中断模式。

外部中断模式。

管理模式。

中止模式。

未定义指令模式。

系统模式。

不同的工作模式间可以相互切换,有两种方式:

1)发生异常时,处理器自动改变CPSR中M4:

0的值,进入相应的工作模式。

2)当处理器处于特权模式时,用指令向CPSR的M4:

0字段写入特定的值,以进入相应的工作模式。

3.2ARM寄存器的组织形式(P57)ARM处理器共有37个寄存器,各寄存器均为32位:

31个通用寄存器R1R15,包括程序计数器PC。

6个状态寄存器CPSR、SPSR。

根据ARM处理器不同工作模式,可将全部寄存器分成7组。

R1R7为不分组寄存器,R8R14为分组寄存器,不同处理器模式下是不同的。

R8R12有两组寄存器,分别为快速模式和其他模式。

R13、R14有6组寄存器,用户和系统模式公用一组。

R13为堆栈指针SP,R14为连接寄存器LR,R15为程序计数器PC。

3.3试述ARM处理器对异常中断的响应过程。

(P59)当异常发生时,处理器首先自动保存当前状态,即返回地址存入寄存器R14(连接寄存器LR),当前寄存器CPSR存入SPSR中,接着进入相应的工作模式,并执行特定地址的指令。

ARM有7种类型的异常,不同类型的异常将导致处理器进入不同的工作模式,并执行不同特定地址的指令。

(P59)3.4ARM指令的编码格式和条件域(P63)指令的编码格式3128272524212019161512110condopcodeSRnRdOp200000010100100010000000000000010条件域CondCPSR中标志位含义EQZ置位相等NEZ清零不相等CSC置位无符号数大于或等于CCC清零无符号数小于MIN置位负数PLN清零正数或零VSV置位溢出VCV清零未溢出HIC置位Z清零无符号数大于LSC清零Z置位无符号数小于或等于GEN等于V带符号数大于或等于LTN不等于V带符号数小于GTZ清零且(N等于V)带符号数大于LEZ置位或(N不等于V)带符号数小于或等于AL忽略无条件执行3.5指令集的寻址方式有几种?

试分别叙述其各自的特点并举例说明。

(P64)1)立即数寻址:

在立即数寻址方式下,操作数本身直接在指令中给出,去除指令也就获得了操作数,这个操作数也称为立即数。

2)寄存器寻址:

在寄存器寻址方式下,寄存器的值即为操作数。

ARM指令普遍采用这种寻址方式,由于直接和寄存器交换数据,其执行效率较高。

3)寄存器移位寻址:

寄存器移位寻址的操作数由寄存器的数值进行相应移位而得到;

移位的方式在指令中以助记符的形式给出,而移位的位数可用立即数或寄存器寻址方式表示。

4)寄存器间接寻址:

寄存器中的值为操作数的物理地址,这样的寻址方式称为寄存器间接寻址。

实际的操作数存放在存储器中,其地址由寄存器给出。

5)基址变址寻址:

将寄存器(称为基址寄存器)的值与指令中给出的偏移地址量相加,所得的结果作为操作数的物理地址,这样的寻址方式称为基址变址寻址。

6)相对寻址:

相对寻址同基址变址寻址相似,区别只是将程序计数器PC作为基址寄存器,指令中的标记作为地址偏移量。

7)多寄存器寻址:

在多寄存器寻址方式中,一条指令可实现一组寄存器值的传送。

连续的寄存器间用“-”连接,否则用“,”分隔。

8)块复制寻址:

块复制寻址可实现连续地址数据从存储器的某一位置复制到另一位置。

9)堆栈寻址:

堆栈寻址用于数据栈与寄存器组之间批量数据传输。

堆栈是一种后进先出的数据结构,数据写入和读出内存的顺序不同,适用堆栈寻址可以很好地解决这个问题。

3.6ARM指令集是否有移位指令?

若没有如何实现移位操作?

无,通过切换至Thumb状态,通过Thumb指令实现。

3.7ARM指令集(加载存储指令,数据处理,运算,各种指令的例子)分析设计题,伪操作、伪指令。

(P68、P96)数据处理指令(S表示是否影响标志位cond为条件域Rd(RdlRdh)目标操作数Rn源操作数op13操作数13)数据传送Rd=op1MOVS,数据取反传送Rd=!

op1MVNS,加法Rd=Rn+op2ADDS,带进位加法Rd=Rn+op2+carryADCS,减法Rd=Rn-op2SUBS,反向减法Rd=op2-RnRSBS,带借位减法Rd=Rn-op2-!

carrySBCS,带借位反向减法Rd=op2-Rn-!

carryRSCS,32位乘法Rd=Rn*op2MULS,32位乘加Rd=Rn*op2+op3MLAS,64位有符号乘法RdhRdl=Rn*op2SMULLS,64位有符号乘加RdhRdl=Rn*op2+RdhRdlSMLALS,64位无符号乘法UMULLS,64位无符号乘加UMLALS,逻辑与Rd=RnANDop2ANDS,逻辑或Rd=RnORop2ORRS,逻辑异或Rd=RnXORop2EORS,位清除Rd=RnAND(!

op2)BICS,比较Rn-op1影响标志位CMPS,反值比较Rn-(-op1)CMNS,位测试RnANDop1TSTS,相等测试RnXORop1TEQS,加载存储指令字节=8bits半字=16bits字=32bits!

表示将最后的地址写入基址寄存器字数据加载LDR,字节数据加载LDRB,用户模式的字节数据加载LDRBT,半字数据加载LDRH,有符号字节数据加载LDRSB,有符号半字数据加载LDRSH,用户模式的字数据加载LDRT,字数据存储STR,字节数据存储STRB,用户模式的字节数据存储STRBT,半字数据存储STRH,用户模式的字数据存储STRT,批量数据加载LDM!

批量数据存储STM!

字数据交换SWP,字节数据交换SWPB,typeIA传送后地址加1IB传送前地址加1DA传送后地址减1DB传送前地址减1FD满递减堆栈ED空递减堆栈FA满递增堆栈EA空递增堆栈伪操作符号定义伪操作LCLALCLLLCLS局部变量分别为数字(0),逻辑(False),字符串(空串)GBLAGBLLGBLS全局变量分别为数字(0),逻辑(False),字符串(空串)SETASETLSETS为变量赋值分别为数字,逻辑,字符串RLIST对通用寄存器列表定义名称数据定义伪操作变量名DCB数据DCB分配连续字节并使用指定数据初始化DCWDCWU半字DCDDCDU字DCQDCQU8字节DCFSDCFSU单精度浮点数DCFDDCFDU双精度浮点数SPACE分配一块连续的存储单元FIELD分配一块结构化的内存表的数据域MAP定义一个结构化的内存表的首地址汇编控制指令MACROMEND宏定义开始、结束IFELSEENDIF条件编译WHILEWEND循环编译MEXIT退出宏第四章常见的嵌入式操作系统PalmOS,WindowsCE,VxWorks,C/OS-II,Linux.嵌入式Linux的优势1)Linux系统是层次结构且内核完全开放、丰富的软件资源2)强大的网络支持功能,完善的图形、文件管理机制3)内核功能强大,具有高效的性能4)Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障碍5)Linux有广泛的硬件支持特性6)良好的可定制性7)具有广泛的支持者,价格低廉4.1嵌入式Linux的发展方向(P139)1)减小内核2)减小动态链接库3)减小应用程序4.2嵌入式Linux的实时性存在哪些问题,如何进行改进(硬实时)?

(P138)存在的问题:

运行于Linux内核空间的进程(核心态)不能被抢先。

在Linux中,中断有时会处于保护临界区操作的目的而被屏蔽。

通用Linux的时间应答长度为10ms(硬件时钟频率100Hz),但是这对于时间精度要求很高(微秒级)的实施进程来说是不够的。

缺乏有效的实时任务调度机制和调度算法。

目前支持Linux的硬实时性一般有两种方法:

一种是直接修改Linux内核,重新编写一个由优先级驱动的实时调度器,替换原有内核中的进程调度器;

另一种是在Linux内核之外,以可加载内核模块的形式添加实时内核,确保其高响应特性,实时内核接管来自硬件的所有中断,并判断是否实时任务觉得是否直接相应。

4.3有哪些常见的嵌入式文件系统1)JFFS2)YAFFS第五章(本章会考设计题,所以请参照课本了解键盘、LED等的工作原理和初始化及工作编程示例)5.1S3C44B0X具有多少通用I/O口?

它们具有什么功能?

(P143)S3C44B0X具有71组通用多功能I/O引脚,分别包含在如下7组端口中1个10位输出端口(端口A)1个11位输出端口(端口B)1个16位输入/输出端口(端口C)2个8位输入/输出端口(端口D和G)2个9位输入/输出端口(端口E和F)端口配置寄存器:

PCONA,PCONB,PCONC,PCOND,PCONE,PCONF,PCONG.通常,PA为地址线,PB为bank选择线和SDRAM接口信号线,PC为数据线、IIS接口和LCD数据线,PD为LCD信号线,PE为串口信号线,PF、PG作多功能IO口。

键盘接口5.2简述矩阵行扫描检测法的工作原理。

使键盘上某一行线为低电平,而其余行为高电平,然后读取列值,如果列值中有某位为低电平,则表明行列交点处的键被按下;

否则扫描下一行,直至扫描完全部的行线为止。

行扫描法的步骤1、识别键盘哪一行的键被按下。

让所有行线为低电平,检查各列线是否为低电平,如果有列线为低,则该列有键被按下。

2、如果某列有键被按下,则是被是哪一行的键被按下。

逐行置低电平,其余行置高电平,检查各列线电平。

列线电平为低时,则可确定行列交叉点的键被按下。

识别键盘上的闭合键,通常采用两种方法,即行扫描法和行反转法。

5.3矩阵键盘的设计,键盘扫描程序流程图(P147)(设计题)用到的PF口相关寄存器PDATF-PF口数据寄存器输入输出时对应引脚为多功能口时无效PUPFPF口上拉电阻寄存器0-使能1-禁止PCONFPF口控制寄存器设置PF口引脚功能详见P146表5-3考试附表扫描子程序流程图扫描子程序#include#includecharReadKeyVal(void)unsignedchari,j,H_val,L_val;

charkeyval=-1;

初始化键值为-1rPCONF=0x55;

设置接口F引脚功能rPUPF=0xff;

上拉电阻禁止rPDATF=0xf0;

使PF0PF3(行输出)全0即低电平if(L_val=(rPDATF&

0xf0)!

=0xf0)获取PF4PF7的输入(列输入)并判断是否全1H_val=0xfe;

设置行扫描码一行置0低电平其他都值1高电平1111111111111110for(i=0;

i4;

i+)扫描4列rDATF=H_val;

输出行扫描码for(j=0;

j4)|0xf0;

调整列输入Keyval=get_val(H_val)*4+get_val(L_val);

计算键值returnkeyval;

elseH_val=(H_val1)|0x01;

行扫描码循环左移1位0x01补最后一位出现的0returnkeyval;

get_val子函数由扫描值分别得到行号和列号charget_val(unsignedcharval)unsignedchari,x;

x=0;

for(i=0;

i1)|0x80;

循环右移1位0x80补第一位出现的0x=x+1;

LED接口5.4多位7段LED的显示程序、接口电路图、流程图(P150)(设计题)用到的寄存器rPCONF、rPCONGPF、PG口控制寄存器设置PF、PG口引脚功能rPUPF、rPUPG-PF、PG口上拉电阻寄存器0-使能1-禁止电路图(P151图5-4)端口G的8条线与LED位驱动线相连,控制LED灯显示端口F与LED驱动器相连输出的代码送到相应位去显示。

每次输送整个LED代码,端口G每次只有一个位是低电平,故一次只有一个LED相应段亮。

LED显示程序(书本的LED程序有错)#include#includevoidDisplayLed1(unsignedchardis_8_num)unsignedcharled_dis=0xC0,0xF9,0x8C0F和小数位段码表unsignedchari.j.D_val,B_val;

rPCONF=0x12555;

设置端口F引脚功能rPCONG=0x5555;

设置端口G引脚功能rPUPF=0x00;

端口F上拉电阻使能rPUPG=0x00;

端口G上拉电阻使能B_val=0x80;

输出到G口的值for(i=0;

i8;

i+)循环显示8段LEDrPDATF=led_disdis_8_num;

取显示数的段码并送F口输出rPDATG=B_val;

对一段LED加高电平for(j=0;

j1;

是G口输出右移移位即下一段5.5LCD控制器的结构图(P155)5.6触摸屏接口专用芯片ADS7843的主要功能是什么?

(P164)1)完成电极电压的切换2)采集接触点的电压值,并进行A/D转换UART5.7S3C44B0XUART单元提供了提供了几个异步串口(SIO),每个模块包含哪几个部件?

(P173)2个,每个模块包含以下四个部件:

1)波特率发生器2)发送器3)接收器4)控制单元5.8URAT接收哪四种错误?

(P173)1)溢出错误2)奇偶校验错误3)帧错误4)暂停条件5.9S3C44B0X在何种情况下采用自动流控制?

(P173)S3C44B0X在UART连接UART时支持nRTS和nCTS信号进行自动流控制,而在UART连接MODEM时则不支持自动流控制,此时就应该在UMCONn寄存器中禁止自动流控制,由软件控制nRTS和nCTS信号。

帧格式设置线控制寄存器ULCONn175表5-23流设置寄存器Modem控制寄存器UMCONn4P177表5-26中断设置寄存器(P176)表5-24UART控制寄存器UCONn89回送模式设置寄存器(P176)表5-24UART控制寄存器UCONn5FIFO的使能寄存器(P176)表5-25UFCONn0P179例子UART应用对PC,PE端口进行设置rPCONC=0x0f000000|rPCONC;

设置PC12、PC13为功能三TxD1和RxD1rPUPC=0x3000;

设置PC12、PC13上拉禁止rPCONE=(rPCONE&

0xfc3)|0xeb;

设置为功能三TxD0和RxD0即rPCONE=0000xxxx11101011rPUPE=0x6;

设置PE1、PE2上拉禁止UART初始化:

staticintUartNum=0;

全局变量使用那个端口voidUart_Init(intwhichuart,intbaud)if(whichuart=0)设置0号UART端口UartNum=0;

rUFCON0=0x0;

FIFO控制寄存器FIFO为禁止rUMCON0=0x0;

Modem控制寄存器禁止自动流控制rULCON0=0x3;

线控制寄存器为正常模式、无校验、一个停止位、8个数据位|0|0|000|0|11|rUCON0=0x045;

设置UART控制器|0|0|0|1|0|0|01|01|发送中断类型:

脉冲接收中断类型:

脉冲接收超

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1