嵌入式系统复习大纲精华浓缩.docx
- 文档编号:7667111
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:22
- 大小:92.02KB
嵌入式系统复习大纲精华浓缩.docx
《嵌入式系统复习大纲精华浓缩.docx》由会员分享,可在线阅读,更多相关《嵌入式系统复习大纲精华浓缩.docx(22页珍藏版)》请在冰豆网上搜索。
嵌入式系统复习大纲精华浓缩
1.什么是嵌入式系统?
与通用计算机相比,嵌入式系统有哪些特点?
2.嵌入式微处理器有哪几类?
试举例说明。
3.嵌入式系统的硬件、软件各由哪些部分组成.
4.嵌入式软件开发的交叉开发环境如何组成。
5.嵌入式系统位处理器选型应考虑哪些方面的需求。
6.目前常见嵌入式操作系统有哪些?
7.嵌入式系统调试按使用设备分哪3类。
8.ARM微处理器有何特点
9.ARM7系列、ARM9系列处理器的特点
10.ARM微处理器的工作状态、存储格式、指令流水线。
11.7种处理器模式各有何用途。
12.ARM状态下包括哪些通用寄存器、状态寄存器。
R13、R14、R15的作用。
13.CPSR、SPSR寄存器中各位的作用,怎样对它们操作以改变各位状态。
14.ARM有哪些异常、优先级如何?
ARM微处理器如何处理异常?
15.异常量表存放在哪里。
16.ARM指令格式。
寻址方式有哪些?
各有何特点?
17.在ARM的立即寻址方式下其立即数如何在指令编码中表示?
18.跳转、加载/存储指令、数据处理、程序状态寄存器处理指令的常见使用方法。
19.ADR和ADRL伪指令的作用,二者的区别是什么?
LDR伪指令的作用是什么?
其主要用途是什么?
20.嵌入式系统存储器有哪几种,它们的特点分别是什么.
21.s3c2410的OM[1:
0]的作用。
22.s3c2410x存储系统的特征,BANK1~7的总线宽度如何设置。
23.Nand-Flash与Nor-Flash的区别
24.S3C2410各个外围接口的功能
25.什么是LCD的虚拟显示
26.嵌入式Linux开发的步骤
27.Bootloader的概念其功能,包含有哪些基本的操作
28.Bootloader中进行内存映射的目的。
29.Bootloader的烧写的两种方式的特点,它们的区别?
30.Bootloader启动流程。
启动分为哪2个阶段,每个阶段主要完成哪些操作。
31.嵌入式Linux内核的移植的基本内容
32.虚拟存储器、ARM9中MMU对嵌入式Linux的作用是什么?
33.Linux文件系统的特点。
34.Linux文件的类型。
35.嵌入式Linux的3种专用文件系统的基本了解。
36.Busybox的功能是什么?
37.Linux设备分为哪3类,各自特点?
Linux如何通过设备号表示设备?
38.Linux的可加载模块的优点。
39.file_operations结构体类型定义了什么?
其功能是什么?
40.理解Linux设备驱动程序的编写步骤。
41.使用gcc进行Linux应用程序编译的过程。
42.了解make和Makefile的作用。
43.了解几种常用的嵌入式LinuxGUI开发工具。
1嵌入式系统概述
44.什么是嵌入式系统?
与通用计算机相比,嵌入式系统有哪些特点?
答:
嵌入式系统是“以应用为中心,以计算机技术为基础,软件、硬件可裁减,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统的特点:
1,多样性。
2,专用紧凑。
3,实时响应。
4,健壮可靠。
5,嵌入式操作系统支持。
6,需要专门的开发工具和环境。
45.嵌入式微处理器有哪几类?
试举例说明。
答:
1嵌入式微控制器(MCS51),2嵌入式微处理器(ARM),3嵌入式DSP处理器(TMS30),4,嵌入式片上系统(M-Core).
46.嵌入式系统的硬件、软件各由哪些部分组成.
硬件:
嵌入式处理器和外围设备(存储器类型,接口类型,I/O设备)
软件:
嵌入式操作系统,嵌入式支撑软件,嵌入式应用软件
。
47.嵌入式软件开发的交叉开发环境如何组成。
1)交叉编译环境,即支持某一种硬件体系的编译器,如arm-linux-gcc(支持arm硬件体系)
2)操作系统,也就是通过交叉编译工具编译后的Linux内核
3)文件系统
面向硬件的开发模式
此种开发模式适合开发目标机上没有安装操作系统的应用程序,在开发主机上完成程序的编写、编译之后可以通过ICE工具直接下载到目标系统上进行在线运行调试
优点:
可以对程序进行实时仿真和测试,可以直接针对硬件进行调试
缺点:
需要购买硬件调试工具,调试时必须要在目标系统
面向操作系统的开发模式
面向一个内部已经安装了操作系统的目标系统的开发时,采用这种开发模式
优点:
不需要购买硬件调试工具,节省开发成本。
缺点:
不适合于硬件资源不足的嵌入式系统的开发
2嵌入式系统基本设计方法
48.嵌入式系统位处理器选型应考虑哪些方面的需求。
P29
1总线的需求
2有没有通用的的串行接口
3是否需要USB总线
4有没有以太网接口
5系统内部是需要IIC总线,SPI总线
6音频D/A连接的IIS总线,
7外设接口
8系统是否需要A/D后者D/A转换器
9系统是否需要I/O控制接口
49.目前常见嵌入式操作系统有哪些?
WindowsCE
嵌入式Linux
VxWorks
μC/OS-Ⅱ
50.嵌入式系统调试按使用设备分哪3类。
P34
①仿真器方式
②监控器方式
③源程序模拟器方式
按调试方法分类:
①硬件调试,②软件调试
3嵌入式微处理器arm
51.ARM微处理器有何特点
1小体积、低功耗、低成本而高性能
2支持Thumb(16位)/ARM(32位)双指令集,能很好兼容8位/16位器件
3使用大量的寄存器,使执行速度加快
4大多数数据操作都在寄存器中完成
5寻址方式灵活简单,执行效率高
6指令长度固定
52.ARM7系列、ARM9系列处理器的特点
ARM7
1具有嵌入式ICE-RT(实时在线仿真)逻辑,调试开发方便
2极低的工号,适合对功耗要求较高的应用,如便携式产品
3能够提供0.9MIPS/MHz的三级流水线结构
4代码密度高,并兼容16位的Thumb指令集
5对系统要求广泛支持
6指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容、便于用户的产品升级换代
7主频最高可达130M,高速的运算处理能力能胜任绝多数的复杂应用
ARM9
1五级流水线,指令执行效率更高
2提供1.1Mips/MHz的哈佛结构
3支持32位ARM指令集和16位Thumb指令集
4支持32位的高速AMBA总线接口
5全性能的MMU,支持WindowsCE,Linux,PalmOS等主流嵌入式操作系统
6支持数据Cache和指令Cache,具有更高的指令和数据处理能力
53.ARM微处理器的工作状态、存储格式、指令流水线。
工作状态:
①进入ARM状态②进入Thumb状态
存储格式:
大端格式:
字数据的高字节存储在低地址中,而字数据的低字节存放在高地址中
小端格式:
字数据的高字节存储在高地址中,而字数据的低字节存放在低字节中。
指令流水线:
ARM系列微处理器普遍采用了多级流水线技术,在ARM7系统中使用了3级流水线。
3级流水线:
Fetch(从存储器读取指令),Decode(解码指令)Execute(读写及ALU操作)
54.7种处理器模式各有何用途。
模式
用途
用户模式
用于正常执行程序
快速中断模式
用于高速数据传输或通道处理
外部中断模式
用于通用的中断处理
管理模式
操作系统使用的一种保护模式,系统复位后的默认模式
中止模式
用于指令预取中止时或数据访问中止时的模式
未定义指令模式
当执行没有定义的指令(即处理器不能识别的指令)时进入该模式
系统模式
运行具有特权的操作系统任务(ARMV4以上)
55.ARM状态下包括哪些通用寄存器、状态寄存器。
R13、R14、R15的作用。
通用寄存器分三类:
1未分组寄存器(R0-R7)
2分组寄存器(R8-R14)
R13通常用作堆栈指针
R14通常也被称作子程序连接寄存器或链接寄存器。
在每一种运行模式下,当执行BL(带返回的跳转)或BLX(带状态切换的跳转)时,硬件就会自动地将R15(程序计数器PC)中的内容拷贝到R14中
3程序计数器(R15)
R15用作程序计数器(PC),在ARM状态下,由于指令总干事对齐的,所以R15[1:
0]总为0,R15[31:
2]用于保存地址
状态寄存器:
一种是CPSR(当前程序状态寄存器),它可再任何运行模式下访问,另一种是SPSR(备份的程序状态寄存器),当异常发生时,它用于保存CPSR的值,从异常突出时则可用它回复CPSR
56.CPSR、SPSR寄存器中各位的作用,怎样对它们操作以改变各位状态。
CPSR和SPSR的状态位格式是一样的,
CPSR主要分为3部分:
条件标志位、控制位和保留位。
条件标志位主要为CPSR的[28:
31],分别为N(Negative),Z(Zero)
C(Carry)和V(Overflow)。
1)N负数判断位。
当用补码表示有符号整数运算时,N=1表示结果为负数,N=0表示结果为正数。
2)Z结果零判断位。
当运算结果为0时,Z=1,当结果不为零时,Z=0.
3)C进位借位判断位。
在加法操作中,如果出现了进位,C=1,否则为0。
在减法操作中,如果出现了借位,C=1,否则为0。
4)V溢出判断位。
当运算的结果又溢出时,V=1,否则为0。
(2)控制位
1)中断禁止位I,F:
当I=1时禁止IRQ中断,当F=1时禁止FIQ中断。
2)T控制位:
T=0表示执行ARM指令,T=1表示执行Thumb指令。
3)控制位M[4:
0]用于控制处理器模式。
(3)保留位
CPRS中其余位为保留位,当改变CPSR中的条件码标志位或者控制位时,保留位不要改变,在程序中叶不讨使用保留位来存储数据。
57.ARM有哪些异常、优先级如何?
ARM微处理器如何处理异常?
按优先级高到低排列:
复位,数据中止,FIQ(快速中断),IRQ(中断),预取中止,未定义指令和SWI(软件中断)
异常类型
进入的工作模式
退出
复位
SVC(管理模式)
不需要
未定义指令
UND(未定义模式)
MovPC,R14_und
软件中断
SVC(管理模式)
MovPC,R14_svc
指令预取中止
ABT(中止模式)
MovPC,R14_abt,#4
数据中止
ABT(中止模式)
MovPC,R14_abt,#8
IRQ异常
IRQ(IRQ模式)
MovPC,R14_irq,#4
FIQ异常
FIQ(FIQ模式)
MovPC,R14_und,#4
处理异常的伪代码如下:
R14_
SPSR_
CPSR[4:
0]=exceptionmodenumber
CPSR[5]=0/*运行在ARM状态*/
CPSR[6]=1/*禁止新的IRQ中断*/
If
CPSR[7]=1/*当Reset或者FIQ异常时,禁止新的FIQ中断*/
PC=exceptionvectoraddress
58.异常量表存放在哪里。
存放在内存的底层固定存储器
59.ARM指令格式。
寻址方式有哪些?
各有何特点?
指令格式:
<指令>{<条件码>}{S}<目的寄存器>,<操作数>{,<操作数2>}
其中<>是必须的{}是可选的
寻址方式:
①立即寻址②寄存器寻址③寄存器偏移寻址④寄存器间接寻址⑤基址加偏移寻址⑥堆栈寻址⑦块复制寻址⑧相对寻址
ARM寻址方式
☞立即寻址
立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数,这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。
例如以下指令:
ADDR0,R0,#1/*R0←R0+1*/
ADDR0,R0,#0x3f/*R0←R0+0x3f*/
在以上两条指令中,第二个源操作数即为立即数,要求以“#”为前缀,对于以十六进制表示的立即数,还要求在“#”后加上“0x”。
☞寄存器寻址
寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。
以下指令:
ADDR0,R1,R2/*R0←R1+R2*/
该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。
☞寄存器间接寻址
寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中。
例如以下指令:
LDRR0,[R1]/*R0←[R1]*/
STRR0,[R1]/*[R1]←R0*/
第一条指令将以R1的值为地址的存储器中的数据传送到R0中。
第二条指令将R0的值传送到以R1的值为地址的存储器中。
☞基址加偏址寻址
基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。
变址寻址方式常用于访问某基地址附近的地址单元。
采用变址寻址方式的指令又可以分为以下几种形式:
前变址模式:
LDRR0,[R1,#4];R0←[R1+4]
自动变址模式:
LDRR0,[R1,#4]!
;R0←[R1+4]、R1←R1+4
后变址模式:
LDRR0,[R1],#4;R0←[R1]、R1←R1+4
☞堆栈寻址
堆栈是一种数据结构,按先进后出(FirstInLastOut,FILO)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。
当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(FullStack),而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(EmptyStack)。
即访问存储器时,存储器的地址向高地址方向生长,称为递增堆栈(ascendingstack)。
存储器的地址向低地址方向生长,称为递减堆栈(descendingstack)。
☞块拷贝寻址
块拷贝寻址是多寄存器传送指令LDM/STM的寻址方式。
LDM/STM指令可以把存储器中的一个数据块加载到多个寄存器中,也可以把多个寄存器中的内容保存到存储器中。
寻址操作中的寄存器可以是R0-R15这16个寄存器的子集或是所有寄存器。
LDM/STM指令依据其后缀名的不同其寻址的方式也有很大不同。
☞相对寻址
与基址变址寻址方式相类似,相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。
以下程序段完成子程序的调用和返回,跳转指令BL采用了相对寻址方式:
BLNEXT;跳转到子程序
;NEXT处执行
……
NEXT
……
MOVPC,LR;从子程序返回
补充类型题目:
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};7)相对寻址
60.在ARM的立即寻址方式下其立即数如何在指令编码中表示?
立即寻址是指操作数本身在指令中给出,只要取出指令也就取到了操作数,立即数必须对应8位位图格式,即立即数是一个16位或32位寄存器中的8位常数,经循环移动偶数位得到,移位后得到的数不能大于0xFF
在立即寻址当中,要求立即数以‘#’为前缀,对于以十六进制表示的立即数,还要求在‘#’后加上‘0x’或‘&’。
61.跳转、加载/存储指令、数据处理、程序状态寄存器处理指令的常见使用方法。
简练答案:
跳转指令:
B指令,BL指令,BX指令
加载/存储指令:
单一数据的传递(LDR,STR)多数据传送(LDM,STM),交换指令SWP
数据处理指令:
数据传送指令(MOV,MVN)
算术逻辑运算指令(ADD,SUB,RSB,ADC,SBC,RSC,AND,ORR,EOR,BIC)
比较指令(CMP,CMN,TST,TEQ)
乘法指令(MUL,MLA)
程序状态寄存器指令:
(MRS,MSR)
此部分详细内容见课本55-65页,建议看课本
ARM指令集分为6大类,分别是
(1)跳转指令:
含
ØB指令
ØBL指令
ØBX指令,
(2)加载/存储指令:
含
Ø单一数据的传递
Ø多数据的
Ø传送
(3)数据处理指令:
A.数据传送指令:
含
ØMOV指令(数据传送指令)
ØMVN指令(数据非传送指令)
B:
算术逻辑运算指令:
含
ØADD指令(加法运算指令)
ØSUB指令(减法运算指令)
ØRSB指令(逆向减法指令)
ØADC指令(带进位加法指令)
ØSBC指令(带借位减法指令)
ØRSC指令(带借位逆向减法指令)
ØAND指令(逻辑与操作指令)
ØORR指令(逻辑或操作指令)
ØEOR指令(逻辑异或操作指令)
ØBIC指令(位清除指令)
C:
比较指令:
含
ØCMP比较指令
ØCMN负数比较指令
ØTST位测试指令
ØTEQ相等测试指令,
D:
乘法指令
ØMUL32位乘法指令
ØMLA32位乘法加指令
(4)程序状态寄存器处理指令:
ØMRS读状态寄存器指令
ØMSR指令写状态寄存器指令
(5)协处理器指令(略)
(6)异常产生指令(略)
62.ADR和ADRL伪指令的作用,二者的区别是什么?
LDR伪指令的作用是什么?
其主要用途是什么?
ADRL伪指令将相对于程序或相对于寄存器的地址载入寄存器中。
与ADR指令相似。
ADRL所加载的地址比ADR所加载的地址更宽,因为它可生成两个数据处理指令。
LDR伪指令的主要功能如下:
当立即数由于超出了MOV和MVN指令的范围,而不能被移入寄存器中时,生成文字常数。
将相对于程序的地址或外部地址载入寄存器中。
无论链接器将包含LDR的ELF代码段置于何处,该地址始终有效。
根据课本组织的答案:
ADR伪指令——小范围的地址读取伪指令
ARDL指令——中等范围的地址读取伪指令
LDR指令——大范围的地址读取指令
ADR和ADRL作用与区别:
ADR的定义为:
小范围的地址读取伪指令,ADR指令将基于PC相对偏移的地址值读取到寄存器中,在编译源程序时ADR伪指令被编译器替换成一条合适的指令。
通常,编译器用一条ADD指令或SUB指令来实现该ADR伪指令的功能,若不能用一条指令实现,刚产生错误,编译失败。
指令格式为:
ADR{cond}register,expr;
注意:
在如上的定义中,有两个关键信息:
⑴将基于PC相对偏移的地址值读取到寄存器中;⑵被编译器替换成一条合适的指令。
ADR指令只能将地址值读取到寄存器中,而不能是其它的立即数,并用只能用一条指令。
ADRL与ADR不同的是只是,ADRL有更大的读取地址范围。
在汇编程序编译源程序时,ADRL伪指令被编译为两条合适的指令。
通常用ADD或者SUB来实现ADRL的功能。
如果两条指令实现,则产生错误,编译失败。
指令格式为:
ADRL{cond}register,expr;
LDR的作用:
LDR为大范围地址读取伪指令,LDR伪指令用于加载32们的立即数或一个地址值到指定寄存器。
在汇编编译源程序时,LDR伪指令被编译器替换成一条合适的指令。
若加载的常数未超出MOV或者MVN的范围,刚使用MOV或MVN指令代替该LDR伪指令,否则汇编器将常量放入字池,并使用一条程序相对偏移的LDR指令从文字池读出常量。
与ARM指令的LDR相比,伪指令的LDR的参数有"="号。
注意:
在如上的定义中,有三个关键信息:
⑴用于加载32们的立即数或一个地址值到指定寄存器;⑵被编译器替换成一条合适的指令;⑶优先使用MOV或MVN指令代替该指令。
4嵌入式系统存储器和常用接口
63.嵌入式系统存储器有哪几种,它们的特点分别是什么.
嵌入式存储器与普通存储器相同,按照易失性分为两种:
易失性存储器和非易失性存储器。
1.易失性存储器
易失性存储器主要包括SRAM和DRAM。
(1)SRAM(静态随机存储器)
存储密度小,4管结构,占用较大芯片面积,价格较高,功耗较高,容量较小,存取速度快,接口时序简单
(2)DRAM(动态随机存储器)
存储密度大,单管结构,单位存储成本较低,功耗较低,容量较大,接口时序复杂,需要刷新电路
(3)EEPROM
非挥发,存储密度小,单位存储成本较高,容量小,写入有限制,页写要等待,接口时序简单,一般采用串行接口,小量参数存储
2.非易失性寄存器
1)Flash
主要目标是替代EEPROM
存储容量大,读取速度快,成本低,保护机制。
不足之处:
必须先擦除后写入,
擦写速度较慢,必须以Block方式写入
(1)NORFlash——英特尔所发展的架构
随机读取任意单元的内容,读取速度较快,写入和擦除速度较低,可在单位块上直接进行数据的读写,应用程序可以直接在Flash内运行,常用于BIOS存储器和微控制器的内部程序存储器等
(2)NANDFlash——东芝所发展的架构
读取速度较NORFlash慢,写入和擦除速度要比NORFlash快很多
在相同密度下,成本较NOR型低,适用于大容量存储装置(SSD、U盘)
特点:
非易失性存储器的特点是在断电时不会丢失内容。
闪速存储器就是一类非易失性存储器,即使在供电电源关闭后仍能保持片内信息;而诸如DRAM、SRAM这类易失性存储器,当供电电源关闭时片内信息随即丢失。
64.s3c2410的OM[1:
0]的作用。
OM[1:
0]是S3C2410X的总线控制信号,用于接收外部的输入信号,从而设置S3C2410X为测试模式或者设置nCCSO的总线密度。
具体为00为NandFlash模式,01为16位宽度,10为32位宽度,11为测试模式
65.s3c2410x存储系统的特征,BANK1~7的总线宽度如何设置。
系统特征
1支持数据的大端和小端模式存储
2地址空间有8个存储体,每个存储体可达128MB,总共可达1GB
3所有存储体的存取位均可编程改变
4总共8个存储体,其中6个支持ROM,SRAM;率为两个除支持ROM,SRAM外,还支持SDRAM等
57个存储体的起始地址固定,1个存储体的起始地址可编程改变
6所有存储
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 复习 大纲 精华 浓缩