江苏科技大学 嵌入式系统设计及应用 复习大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统设计复习
题型:
1、填空,15分左右
2、选择,30分左右
3、简答题40分左右
4、综述15分左右
第一章嵌入式系统概述
提纲:
1、掌握嵌入式系统的定义
2、了解嵌入式系统的一般组成
嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序
(嵌入式系统一般由嵌入式计算机和执行部件组成。
其中嵌入式计算机是整个嵌入式系统的核心,主要包括硬件层、中间层、系统软件层以及应用软件层)
知识点:
1、嵌入式系统的定义与特点
定义:是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统
特点:软件硬件可裁剪
①专用性:嵌入式系统具有特定的功能,用于特定的任务;
②低成本:嵌入式系统极其关注成本;
③低功耗:嵌入式系统大都有功耗的要求;
④高实时性OS;
⑤嵌入式系统的运行环境广泛;
⑥嵌入式系统的软件通常要求固态化存储;
⑦嵌入式系统的软件、硬件可靠性要求更高;
2.RISC指令系统的特点
答:指令系统:RISC设计者把上要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。
对不常用的功能,常通过组合指令来实现。
因此,在RISC机器上实现特殊功能时,效率可能较低。
但可以利用流水技术和超标量技术加以改进和弥补。
存储器操作:RISC对存储器操作有限制,使控制简单化
程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计
中断:RISC机器在一条指令执行的适当地方可以响应中断
CPU:由于RISC CPU包含少的单元电路,因而面积小、功耗低
设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术易用性:RISC微处理器结构简单,指令规整,性能容易把握,易学易用
应用范围:由于RISC指令系统的确定与特定的应用领域有关,所以RISC机器更适合于嵌入式应用
3、嵌入式系统由硬件与软件组成,其中软件的组成
答:由实时多任务操作系统、文件系统、图形用户界面接口、网络系统及通用组件模块组成
4、嵌入式系统的运行可靠性指标
答:无故障运行时间
5、嵌入式操作系统的种类,最方便移植的操作系统答:种类:linux,vxworks,winCE、palm
linux是最方便移植的系统
6、根据嵌入式系统使用的微处理器,嵌入式系统的分类答:一般可以将嵌入式处理器分成4类,即
嵌入式微控制器(EMCU)
嵌入式微处理器(EMPU)
嵌入式数字信号处理器(EDSP)
嵌入式片上系统(ESOC)
7、实时嵌入式操作系统RTOS的特点
答:强调优先级
8、嵌入式系统与PC机的比较:
第二章ARM体系结构
提纲:
1、掌握ARM的7种工作模式,熟悉其模式的工作入口表3-2(简答/选择)
答:用户模式(User,usr):正常程序执行时,ARM处理器所处的状态。
快速中断模式(FIQ,fiq):用于快速数据传输和通道处理。
外部中断模式(IRQ,irq):用于通常的中断处理。
特权模式(Supervisor,sve):供操作系统使用的一种保护模式。
数据访问中止模式(Abort,abt):当数据或指令预取终止时进入该模式,用于虚拟存储及存储保护。
未定义指令终止模式(Undefined,und):用于支持硬件协处理器软件仿真。
系统模式(System,sys):用于运行特权级的操作系统任务。
表:在课件原版第三章
2、熟悉不同模式下寄存器的应用
答:p72 图3-2
3、掌握通用寄存器的组成,尤其是R13、R1
4、R15(选)
答:通用寄存器中R0~R7是所有处理器模式共用的一组寄存器,也就是说,在从一种模式切换到另一种模式时,必须保存它们的值。
R8~R14为备份寄存器,其中对于R8~R12来说,每一个寄存器对应两个不同的物理寄存器
R13通常用作堆栈指针,采用下面的记号区分各物理寄存器
R13_<MODE>:<MODE>取如下值:usr、svc、abt、und、irq、及fiq
R14寄存器有两个特殊作用:
用户模式下:R14用做链接寄存器(LR),存放子程序被调用时的返回地址。
异常处理模式下,R14用来保存异常的返回地址
R15为程序计数器,又被记做PC。
由于ARM采用了流水线机制,因此pc的值为当前指令地址的值加8个字节,也就是说,pc指向当前指令的下两条指令的地址。
4、掌握状态寄存器的组成,尤其是NZCV四位的作用
答:程序状态寄存器用来保存程序执行时的各种状态值,包括条件标志位、中断禁止位、当前处理器模式标志和其它一些位
Nzcv作用:条件标志位
图p73
5、熟悉ARM支持的存储器结构,大尾端与小尾端
答:p78
知识点
1、ARM存储器时的大尾端与小尾端结构(填/选)
答:
2、ARM的7种工作模式
答:见上
3、ARM寄存器组,通用寄存器个数,状态寄存器个数
答:37,31,6这些寄存器都是32位
4、程序状态寄存器CPSR的重要标志位与控制位
—第三章ARM处理器
提纲:
1、了解ARM版本的发展过程,从V1到V8
2、熟悉ARM处理器核家族的发展过程
3、熟悉ARM处理器命名规则,如TDMI、J、E、S
4、熟悉流水线机制,作用,以及不同处理器核所支持的流水线等级
5、了解改善处理器核的方法
知识点:
1、ARM处理器命名规则
答:·决定CPT:支持16位压缩指令集Thumb;
·D:支持片上Debug调试;
·M:内嵌硬件乘法器(Multiplier);
·I:嵌入式ICE,支持片上断点和调试点。
J:Java加速器Jazelle 提高java代码的运行速度
E:DSP指令,增加了DSP算法处理器指令:16位乘加指令,饱和的带符号数的加减法,双字数据操作,cache预取指令
S:可综合,提供VHDL或Verilog语言设计文件
2、决定cpu执行程序时间T的大小的因素
答:
3、PC在CPU取出一条指令后增加的值
答:pc+1→pc,,加一个cpu的字长
4、互斥的定义
答:互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。
但互斥无法限制访问者对资源的访问顺序,即访问是无序的。
5、流水线的作用,不同处理器核所支持的流水线等级
答:作用:提高执行速度,提高cpu的工作效率,ARM7采用了3级流水线;ARM9 5 级流水线;ARM9E 5 级流水线;ARM10E采用了6级流水线;ARM11 8级流水线;
第四章总线与存储扩展
提纲:
1、了解ARM处理器核外部的总线结构
2、掌握ARM外扩存储器的方法,地址线、数据线、控制线
知识点:
1、RAM与ROM的作用与区别:访问时间、掉电后信息是否丢失,使用场合
2、根据字节编址时,给定地址,会计算存储空间大小
*设内存字节编址,若8K*8存储空间的起始地址为7000H,则该存储空间的最大地址编号为多少
按照字节计算,1字节(Byte)=8b,计算8K+7000H
8K+7000H=2000H+7000H=9000H
最大为8FFFH 。
3、PCI总线
4、不同存储结构的访问速度,由高到低:
寄存器组、cache、RAM、ROM
5、给定地址线与数据线,会计算存储结构的容量
RAM芯片的存储容量
=地址线条数×数据线的条数bit
=字数(存储单元个数)×字长
例:芯片2732
即 4 K× 8bit=32Kb
地址线12根,数据线8根
芯片2114
1K ×4bit
地址线10根,数据线4根
所以,16K× 1b的RAM,地址线14根,数据线1根。
6、存储管理
第五章ARM指令集
提纲:
1、理解ARM汇编指令的作用及适用场合
2、熟悉ARM汇编指令的特点
答:所有指令都是32bit。
大多数指令都在单周期内完成。
所有指令都可以条件执行。
load/store体系结构。
指令集可以通过协处理器扩展
3、熟悉ARM指令的格式,大体了解32个比特各个域的作用
答:
Cond:指令的条件码。
Opcode:指令操作码。
S:操作是否影响cpsr。
Rn:包含第一个操作数的寄存器编码。
Rd:目标寄存器编码。
Operand2:第2操作数。
4、掌握ARM的四种寻址方式:立即数、寄存器、寄存器间接、寄存器移位
答:p80
5、对于立即数寻址,能够判别立即数合法与否
答:p80 在0x00-0xFF范围内,都是合法的;超过这个范围的,就要看那个数如果能通过8位常数通过偶数位的循环右移得到,则是合法的,否则不合法
6、掌握常用指令的用法,能够分析出小段代码执行后的结果及其对CPSR的影响。
知识点:
1、ARM指令集的分类
答:数据处理指令:数据传输指令,算术指令,逻辑指令,比较指令,乘法指令,前导零计数。
程序状态访问指令:mrs和msr。
跳转指令:b和bl。
访存指令:单数据访存指令,多数据访存指令,信号量操作指令。
异常中断产生指令:swi和bkpt。
协处理器指令
2、常用的ARM指令
答:p83-p84(例如:ADD:加法指令;AND:逻辑与指令;B:跳转指令;LDR:存储器到寄存器的数据传输指令;MOV:数据传送指令;STR:寄存器到存储器的数据传输指令;SUB:减法指令)
3、常用的寻址方式
答:立即寻址,寄存器寻址,寄存器间接寻址,基址变址寻址,多寄存器寻址,相对寻址、堆栈寻址。
4、ARM支持两种指令集,分别是ARM指令集和Thumb指令集,位数?
答:32;16
5、伪指令的作用
答:伪指令在源程序中的作用是为完成汇编程序作各种准备工作,也就是说这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成了。
6、堆栈的作用,对于堆栈的操作
答:现场保护,存放数据
7、ARM指令集中,程序控制类指令的主要功能
答:用于在程序状态寄存器和通用寄存器之间传送数据,程序状态寄存器访问指令包括以下两条:
—MRS程序状态寄存器到通用寄存器的数据传送指令
—MSR 通用寄存器到程序状态寄存器的数据传送指令
8、给定一段汇编程序,读懂,知道各寄存器的结果,尤其是CPSR
第六章嵌入式开发环境的搭建与开发工具使用
提纲:
1、掌握交叉编译的定义
2、理解掌握嵌入式系统设计中,如何搭建ARM所采用的交叉编译环境,熟悉JTAG、COM、以太口的作用,以及NFS的作用,熟悉搭建过程。
3、熟悉课本124页图5-1 ARM硬件平台结构图,熟悉超级终端的设置方法,熟悉Linux 虚拟机的安装步骤,NFS服务的配置方法
4、掌握GCC的使用,几个参数
答:gcc的使用语法如下:gcc [options] filenames ...
其中options就是编译器所需要的参数,必须以“-”开始
常用参数:-c、-o、-E、-v、-S
5、掌握make命令的作用,与GCC指令的区别,掌握简单的makefile文件书写,并理解何谓文件依赖关系
知识点:
1、GCC由哪个公司推出,若不指定文件名,默认输出的文件
答:由sun公司推出;默认文件名为a.out
2、make工具与Makefile的关系,各自的作用
答:make能实现这样的功能:它读入一个文件,叫makefile,这个文件不仅决定了源文件之间的依赖关系,而且还决定了源文件什么时候该编译,什么时候不应该编译。
make本质思想为:检查源代码和目标文件,以确定哪个源文件需要重新编译以创建新的目标文件。
3、交叉编译环境的作用与搭建过程
4、简单Makefile的编写,文件之间的依赖关系
一个简单的makefile
prog:prog1.o prog2.o
gcc -o prog1.o prog2.o prog
prog1.o:prog1.c lib.h
gcc -c -I. -o prog1.o prog1.c
prog2.o:prog2.c
gcc -c prog2.c
依赖
第七章引导程序B.T
提纲:
1、掌握B.T的作用功能
答:BootLoader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,也即开始启动操作系统。
2、熟记课本171页图7-3,熟悉各部分烧录的过程
3、熟悉B.T 启动时的两种模式:启动加载、下载(填/选)
5、掌握一个特例VIVI 主要完成的工作,分几个阶段,每个阶段完成的功能
Vivi 的主要完成的工作有:
① 检测目标板;
② 下载代码保存到Flash 中;
③ 初始化硬件;
④ 将代码从Flash 复制到RAM 中并且启动代码;
屏蔽所有的中断。
设置CPU 的速度和时钟频率;
RAM 初始化;
初始化LED ;
关闭CPU 内部指令/数据cache 。
函数开始,通过putstr(vivi_banner)打印出Vivi 的版本;
对开发板进行初始化(board_init 函数);
内存映射初始化和内存管理单元的初始化工作;
初始化堆栈,heap_init(),具体定义在\vivi\lib\heap.c 文件中; 初始化MTD 设备,mtd_dev_init();
初始化私有数据,init_priv_data(),具体定义在\vivi\lib\priv_data\rw.c
初始化内置命令,init_builtin_cmds();
启动boot_or_vivi()。
6、了解VIVI 的调试与烧写方法
Vivi 的第一阶段: Vivi 的第二阶段:
知识点:
1、B.T 的作用、阶段、每个阶段的功能
答:作用:引导加载程序;硬件初始化。
阶段:
2、B.T 的启动方式与存储器的关系
答:
第八章 嵌入式Linux 驱动开发基础
提纲:
1、理解程序调用与驱动程序的作用
答:系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。
它们都有一个共同的特点:屏蔽了底层的某个具体服务的实现细节,比如,系统调用屏蔽了操作系统内核某个具体功能的实现细节,设备驱动程序则屏蔽了底层硬件设备的细节。
设备驱动是操作系统内核中最接近硬件设备,是操作系统内核和底层硬件设备之间的接口。
也就是说,操作系统内核就是通过调用这些接口函数来完成对底层硬件设备的使用。
2、理解课本265页的驱动程序功能
3、了解Linux 下的设备管理机制
Linux 的一个重要特点就是将所有的设备都当做文件进行处理,这一类特殊文件就是设备文件。
块设备文件(磁盘)
字符设备文件(并口、虚拟控制台)
网络设备文件(网卡)
设备号是一个数字,它是设备的标志。
就如前面所述,一个设备文件(也就是设备节点)可以通过mknod 命令来创建,其中指定了主设备号和次设备号。
主设备号表明某一类设备,用于标识设备对应的驱动程序,一般对应着确定的驱动程序,主设备号相同的设备使用相同的驱动程序;次设备号一般是用于区分标明不同属性(例如不同的使用方法,不同的位置,不同的操作等),它标志着某个具体的物理设备。
4、熟悉Linux 下的模块编程流程,理解主要接口函数的作用:open 、release 、kmalloc 、kfree 、read 、write
打开设备:open 函数、释放设备:release 函数、操纵内存:kmalloc 和kfree 函数、读写设备:read 和write 函数
知识点:
1、在软件开发过程中,“汇编”的定义
2、I/O 接口的作用
主机与外界交换信息称为输入/输出(I/O )。
主机与外界的信息交换是通过输入/输出设备进行的
3、A/D 与D/A 接口
设备文件分类 杂项设备文件(IIC 、USB )
4、DMA接口
它允许不同速度的硬件装置来沟通,而不需要依于CPU 的大量中断负载
5、中断接口
6、解压文件使用的LINUX命令
gzip,压缩文件名:zip或gz,解压命令:unzip
bzip2,压缩文件名:bz,解压命令;bzip2 -d
上面两个是最常用的压缩方式,一般在linux下可以通过tar命令实现打包和压缩(或解压)。
例如:
tar -zcvf file file.tar.gz打包并压缩成gzip格式,其中-c命令是创建tar包,-z参数是指定压缩成gzip格式;
tar -zxvf file.tar.gz解包命令,其中-x是解包命令,-z指定解压缩格式是gzip
tar -jcvf file file.tar.bz2 打包并压缩成bzip2格式,其中-c是创建tar包,-j参数指定压缩成bzip2格式;
tar -jxvf file.tar.gz解包命令,其中-x是解包命令,-j指定解压缩格式是bzip2
7、奇偶校验
8、电路板的制作过程
9、嵌入式系统的开发过程
答:调研(市场调查)→性能分析(功能定位)→芯片选择(好置换)→画原理图→制作PCB板→搭建环境→写程序调试→电池检测→出产品
第九章嵌入式Linux图形设计
提纲:
1、了解嵌入式Linux下图形设计的特点
●体积小;
●运行时耗用系统资源小;
●上层接口与硬件无关,高度可移植;
●高可靠性;
●在某些应用场合应具备实时性。
2、熟悉常用的图形设计工具软件:QT、MiniGUI
知识点:
1、嵌入式图形用户接口(GUI)的主要特点
第十章补充接口
提纲:
1、熟悉常用的接口种类
答:UART,RS232C,RS422,RS485,I2C,SPI,I2S,USB,CAN
2、掌握RS232C、RS422、RS485的接线,性能参数,适用场合
答:RS422
3、熟悉IIC、SPI接口的接线、时序
4、熟悉CAN总线的作用及特点,了解其帧结构特点
知识点:
1、RS232与RS422:电平,正负逻辑,通信模式、距离、速率
答:电平:线路空闲时,线路的TTL电平总是高,经反向RS232的电平总是低。
一个数据的开始RS232线路为高电平,结束时Rs232为低电平。
数据总是从低位向高位一位一位的传输;
正负逻辑:负逻辑,且与地对称, 逻辑1:-3 ~-15V ,逻辑0:+3~+15V ; 通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。
当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平
通信模式:双向传输,全双工通讯;半双工
距离:最远距离是50英尺=15m ;最大传输距离为4000英尺(约1219米)速率:最高传输速率20kbps ;最大传输速率为10Mb/s
2、RS485总线
联网。