嵌入式系统复习资料概要.docx
- 文档编号:12773224
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:32
- 大小:123.32KB
嵌入式系统复习资料概要.docx
《嵌入式系统复习资料概要.docx》由会员分享,可在线阅读,更多相关《嵌入式系统复习资料概要.docx(32页珍藏版)》请在冰豆网上搜索。
嵌入式系统复习资料概要
第一章
1.1什么是嵌入式系统(P1)
IEEE(国际电气和电子工程师协会)关于嵌入式系统的定义:
嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”。
1.2与通用计算机系统比较,嵌入式系统本身有何特点?
(P4)
1.编码体积小。
2.面积应用,可裁剪可移植。
3.实时性强。
4.可靠性高。
5.专用性强。
1.3根据嵌入式系统的复杂程度,嵌入式系统可分为哪4类?
(P6)
1)单个微处理器;
2)嵌入式处理器可扩展的系统;
3)复杂的嵌入式系统;
4)在制造或过程控制中使用的计算机系统。
1.4嵌入式处理器有哪几类?
试举例说明。
(P7)
1)嵌入式微处理器(EMPU);
2)嵌入式微控制器(EMCU);
3)嵌入式DSP处理器(EDSP);
4)嵌入式片上系统(ESoC)。
1.5从硬件系统来看,嵌入式系统由哪几部分组成?
画出见图。
(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状态的更少,访问寄存器R8~R15受到一定限制。
除MOV和ADD指令访问器R8~R15外,其它数据处理指令总是更新CPSR中的ALU状态标志。
访问寄存器R8~R15的Thumb数据处理指令不能更新CPSR中的ALU状态标志。
单寄存器加载和存储指令
在Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7。
批量寄存器加载和存储指令
LDM和STM指令可以将任何范围为R0~R7的寄存器子集加载或存储。
PUSH和POP指令使用堆栈指令R13作为基址实现满递减堆栈。
除R0~R7外,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级流水线。
ARM9采用五级流水线技术
1)取指:
将指令从内存中取出来。
2)译码:
操作码和操作数被译码以决定执行什么功能。
3)执行:
执行已译码的指令。
2.7ARM采用怎样的数据存储格式?
(P40)
ARM处理器的数据存储格式有两种:
大端模式和小端模式。
✧大端模式:
较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。
✧小端模式:
较高的有效地址存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址。
默认情况下的存储格式是小端模式。
ARM采用单周期指令集
2.8若寄存器R1=0x01020304,分别按小端模式和大端模式存储在0x30000字节单元中,是分别列出两种模式下内存存储内容,并标出内存地址。
0x3001F~0x30018
0x30017~0x30010
0x3000F~0x30008
0x30007~0x30000
大端
04
03
02
01
小端
01
02
03
04
2.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)
位
31~20
19~12
11~10
9
8~5
4
3
2
1
0
无效
0
0
粗表
粗粒度二级页表基地址
0
域标志
用户定义
0
1
段
段基址
为0
AP
0
域标志
用户定义
C
B
1
0
细表
细粒度二级页表基址
为0
域标志
用户定义
1
1
AP为访问权限控制位。
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中M[4:
0]的值,进入相应的工作模式。
2)当处理器处于特权模式时,用指令向CPSR的M[4:
0]字段写入特定的值,以进入相应的工作模式。
3.2ARM寄存器的组织形式(P57)
ARM处理器共有37个寄存器,各寄存器均为32位:
✧31个通用寄存器R1~R15,包括程序计数器PC。
✧6个状态寄存器CPSR、SPSR。
根据ARM处理器不同工作模式,可将全部寄存器分成7组。
R1~R7为不分组寄存器,R8~R14为分组寄存器,不同处理器模式下是不同的。
R8~R12有两组寄存器,分别为快速模式和其他模式。
R13、R14有6组寄存器,用户和系统模式公用一组。
R13为堆栈指针SP,R14为连接寄存器LR,R15为程序计数器PC。
3.3试述ARM处理器对异常中断的响应过程。
(P59)
当异常发生时,处理器首先自动保存当前状态,即返回地址存入寄存器R14(连接寄存器LR),当前寄存器CPSR存入SPSR中,接着进入相应的工作模式,并执行特定地址的指令。
ARM有7种类型的异常,不同类型的异常将导致处理器进入不同的工作模式,并执行不同特定地址的指令。
(P59)
3.4ARM指令的编码格式和条件域(P63)
指令的编码格式
31~28
27~25
24~21
20
19~16
15~12
11~0
cond
opcode
S
Rn
Rd
Op2
0000
001
0100
1
0001
0000
000000000010
条件域
Cond
CPSR中标志位
含义
EQ
Z置位
相等
NE
Z清零
不相等
CS
C置位
无符号数大于或等于
CC
C清零
无符号数小于
MI
N置位
负数
PL
N清零
正数或零
VS
V置位
溢出
VC
V清零
未溢出
HI
C置位Z清零
无符号数大于
LS
C清零Z置位
无符号数小于或等于
GE
N等于V
带符号数大于或等于
LT
N不等于V
带符号数小于
GT
Z清零且(N等于V)
带符号数大于
LE
Z置位或(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)
加载存储指令(字节=8bits半字=16bits字=32bits{!
}表示将最后的地址写入基址寄存器)
字数据加载
LDR{
字节数据加载
LDR{
用户模式的字节数据加载
LDR{
半字数据加载
LDR{
有符号字节数据加载
LDR{
有符号半字数据加载
LDR{
用户模式的字数据加载
LDR{
字数据存储
STR{
字节数据存储
STR{
用户模式的字节数据存储
STR{
半字数据存储
STR{
用户模式的字数据存储
STR{
批量数据加载
LDM{
},
批量数据存储
STM{
},
字数据交换
SWP{
字节数据交换
SWP{
数据处理指令(S表示是否影响标志位cond为条件域Rd(RdlRdh)目标操作数Rn源操作数op1~3操作数1~3)
数据传送Rd=op1
MOV{
数据取反传送Rd=!
op1
MVN{
加法Rd=Rn+op2
ADD{
带进位加法Rd=Rn+op2+carry
ADC{
减法Rd=Rn-op2
SUB{
反向减法Rd=op2-Rn
RSB{
带借位减法Rd=Rn-op2-!
carry
SBC{
带借位反向减法Rd=op2-Rn-!
carry
RSC{
32位乘法Rd=Rn*op2
MUL{
32位乘加Rd=Rn*op2+op3
MLA{
64位有符号乘法RdhRdl=Rn*op2
SMULL{
64位有符号乘加RdhRdl=Rn*op2
+RdhRdl
SMLAL{
64位无符号乘法
UMULL{
64位无符号乘加
UMLAL{
逻辑与Rd=RnANDop2
AND{
逻辑或Rd=RnORop2
ORR{
逻辑异或Rd=RnXORop2
EOR{
位清除Rd==RnAND(!
op2)
BIC{
比较Rn-op1影响标志位
CMP{
反值比较Rn-(-op1)
CMN{
位测试RnANDop1
TST{
相等测试RnXORop1
TEQ{
type
IA
传送后地址加1
IB
传送前地址加1
DA
传送后地址减1
DB
传送前地址减1
FD
满递减堆栈
ED
空递减堆栈
FA
满递增堆栈
EA
空递增堆栈
伪操作
符号定义伪操作
LCLALCLLLCLS
局部变量分别为数字(0),逻辑(False),字符串(空串)
GBLAGBLLGBLS
全局变量分别为数字(0),逻辑(False),字符串(空串)
SETASETLSETS
为变量赋值分别为数字,逻辑,字符串
RLIST
对通用寄存器列表定义名称
数据定义伪操作
变量名DCB数据
DCB
分配连续字节并使用指定数据初始化
DCWDCWU
半字
DCDDCDU
字
DCQDCQU
8字节
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)JFFS
2)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口数据寄存器输入输出时对应引脚为多功能口时无效
PUPF—PF口上拉电阻寄存器0-使能1-禁止
PCONF—PF口控制寄存器设置PF口引脚功能详见P146表5-3考试附表
扫描子程序流程图
扫描子程序
#include
#include
charReadKeyVal(void)
{
unsignedchari,j,H_val,L_val;
charkeyval=-1;初始化键值为-1
rPCONF=0x55;设置接口F引脚功能
rPUPF=0xff;上拉电阻禁止
rPDATF=0xf0;使PF0~PF3(行输出)全0即低电平
if((L_val=(rPDATF&0xf0))!
=0xf0)获取PF4~PF7的输入(列输入)并判断是否全1
{
H_val=0xfe;设置行扫描码一行置0低电平其他都值1高电平
1111111111111110
for(i=0;i<4;i++)扫描4列
{
rDATF=H_val;输出行扫描码
for(j=0;j<100;j++);延时等待
if((L_val=(rPDATF&0xf0))!
=0xf0)获取列输入并判断是否全1
{
L_val=((L_val>>4))|0xf0;调整列输入
Keyval=get_val(H_val)*4+get_val(L_val);计算键值
returnkeyval;
}
else
H_val=(H_val<<1)|0x01;行扫描码循环左移1位
0x01补最后一位出现的0
}
}
returnkeyval;
}
get_val子函数由扫描值分别得到行号和列号
charget_val(unsignedcharval)
{
unsignedchari,x;
x=0;
for(i=0;i<4;i++)扫描输入的值的后四位
{
if((~val)==1)returnx;判断当前最后一位是否为0低电平
val=(val>>1)|0x80;循环右移1位0x80补第一位出现的0
x=x+1;
}
}
5.4多位7段LED的显示程序、接口电路图、流程图(P150)(设计题)
用到的寄存器
rPCONF、rPCONG–PF、PG口控制寄存器设置PF、PG口引脚功能
rPUPF、rPUPG--PF、PG口上拉电阻寄存器0-使能1-禁止
电路图(P151图5-4)
端口G
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 复习资料 概要