文档库

最新最全的文档下载
当前位置:文档库 > 嵌入式复习要点

嵌入式复习要点

嵌入式复习要点

1、嵌入式系统是指以应用为中心,以计算机技术为基础,并且软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

2、嵌入性、专用性与计算机系统是嵌入式系统的3个基本要素。

3、嵌入式系统的特点

1).嵌入式系统是专用的计算机系统

2).嵌入式系统须满足系统应用环境的要求

3).嵌入式系统需满足对象系统的控制要求

4).嵌入式系统是一个知识集成应用系统

5).嵌入式系统具有较长的应用生命周期

6).嵌入式系统软件固化在非易失性存储器中

7).多数嵌入式系统具有实时性要求

8).嵌入式系统设计需专用的开发环境和工具

4、嵌入式系统发展的4 个阶段

. 1)以单片机为核心的低级嵌入式系统,主要特点是系统结构和功能单一,处理效率不高,存储容量较小,用户接口简单或没有用户接口,但它使用简单,成本低廉。

2)以嵌入式微处理器为基础的初级嵌入式系统,主要特点是处理器种类多,通用性较弱;系统效率高,成本低;操作系统具有兼容性、扩展性,但用户界面简单。

3)以嵌入式操作系统为标志的中级嵌入式系统,主要特点是嵌入式系统能运行于各种不同嵌入式处理器上,兼容性好;操作系统内核小、效率高,并且可任意裁剪;具有文件和目录管理、多任务功能,支持网络、具有图形窗口以及良好的用户界面;具有大量的应用程序接口,嵌入式应用软件丰富。

4)以Internet 为标志的高级嵌入式系统,目前嵌入式系统大多孤立于Intemet ,随着网络应用的不断深入,随着信息家电的发展,嵌入式系统的应用必将与Internet 有机结合在一起,成为嵌入式系统发展的未来。

5、嵌入式系统的发展趋势

1)嵌入式系统结构将更加复杂,硬件向集成化发展,软件将逐渐PC化

2)嵌入式系统的小型化、智能化、网络化、可视化、微功耗和低成本

3)不断改善人机交互的手段,提供精巧的多媒体人机界面

4)云计算、可重构、虚拟化等技术被进一步应用到嵌入式系统

5)嵌入式软件开发平台化、标准化、系统可升级,代码可复用将更受重视

6、嵌入式系统的软件:中间层程序、嵌入式操作系统、应用软件层。

7、嵌入式处理器的种类:嵌入式微处理器(Embedded Microcomputer Unit,EMPU)、由PC中的CPU演变而来的,与通用PC的微处理器不同的是,它只保留了与嵌入式应用紧密相关的功能硬件

嵌入式微控制器(Embedded Microcontroller Unit,EMCU)典型代表是单片机,其内部集成了ROM/EPROM/Flash、RAM、总线、总线逻辑、定时器、看门狗、I/O接口等各种必要的功能部件

嵌入式数字信号处理器(Embedded Digital Signal Processor,EDSP)专门用于数字信号处理的微处理器,在系统结构和指令算法方面经过特殊设计,因而具有很高的编译效率和指令执行速度。

嵌入式片上系统(System On Chip,SOC)SOC是一个集成的复杂系统,它一般将一个完整的产品的各功能集成在一个芯片上或芯片组上,其中可能包括处理器CPU、存储器、硬件加速单元、与外围设备的接口I/F,模数混合放大电路,甚至延伸到传感器、微机电和微光电单元。

嵌入式可编程片上系统(System On a Programmable Chip,SOPC)。一种基于FPGA的可重构SOC,它集成了硬IP核或软IP核CPU、DSP、存储器、外围I/O及可编程逻辑,是更加灵活、高效的SOC解决方案

8、S3C2410X/S3C2440X是三星公司出品的基ARM920T核的嵌入式微处理器,它与基于ARM7的S3C44B0X的最大区别在于,S3C2410X/S3C2440X内部带有全性能的内存管理单元(MMU)。

9、嵌入式操作系统(Operating System,OS)是支持嵌入式系统工作的操作系统,它负责嵌入式系统的全部软、硬件资源分配、调度、控制和协调等活动,它是嵌入式应用软件的开发平台,用户的其它应用程序都建立在嵌入式操作系统之上。嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。

10、几种常用嵌入式操作系统:Linux、自由和开放源码的类Unix操作系统

μC/OS-II、一个可裁剪、源代码开放、结构小巧、抢先式的实时嵌入式操作系统,主要用于中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时性能好和可扩展性强等优点。

Windows CE、从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统

VxWorks、拥有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在实时操作系统领域内占据一席之地

pSOS是一个模块化、高性能、完全可扩展的实时操作系统,专为嵌入式微处理器设计,提供了一个完全多任务环境,在定制的或商业的硬件上具有高性能和高可靠性

、Palm OS开放的操作系统应用程序接口

、QNX既能运行于以Intel X86、Pentium等CPU为核心硬件环境下,也能运行于以PowerPC、MIPS等CPU为核心的硬件环境

、苹果iOS苹果公司为iPhone开发的操作系统。它是以Darwin为基础的,主要是给iPhone、iPod touch以及iPad使用

、Android以Linux为基础的开放源码操作系统,主要使用于便携设备

11、嵌入式系统设计的基本原则是“物尽其用”。

1)嵌入式微处理器及操作系统的选择,嵌入式微处理器可谓多种多样,品种繁多,而且都在一定领域应用广泛。

2)开发工具的选择,用于嵌入式系统设计的开发工具种类繁多,不仅各种操作系统有各自的开发工具,在同一系统下开发的不同阶段也使用不同的开发工具。

3)对目标系统的观察与控制,要使系统能正常工作,软件开发者必须要对目标系统具有完全的观察和控制能力,如硬件的各种寄存器、内存空间,操作系统的信号量、消息队列、任务、堆栈等。

12、嵌入式系统的设计步骤:

1需求分析。确定设计任务和设计目标,并提炼出设计规格说明书作为正式设计指导和验收标准。

2体系结构设计。描述系统如何实现所述的功能和性和非功能性需求,包括对硬件,软件和执行机构的功能划分和系统的软件,硬件选型。

3硬件、软件、执行机构设计。是基于嵌入式体系结构来对硬件,软件和执行机构的功能进行详细设计。

4系统集成。把系统的硬件,软件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。

5系统测试。对设计好的系统进行全面测试,看其是否满足规格说明书中给定的功能要求。。

13、嵌入式系统的开发环境一般由三个部分组成:宿主机、调试仿真器和目标机。

14、嵌入式系统的应用:非操作系统、操作系统非GUI、操作系统GUI层次。

15、嵌入式设备的三个特点:第一、嵌入式应用软件对硬件的依赖很强;第二、开发环境与运行环境需专门设定;第三、嵌入式设备往往有资源限制。

16、嵌入式应用软件的开发的六个特点:

1)需要交叉编译工具

2)通过仿真手段进行调试

3)目标机是最终的运行环境

4)执行应用程序的指令通常写入操作系统

5)系统资源有限

6)控制特定部件

17、目前世界上有四大流派的嵌入式处理器内核生产厂家及嵌入式处理器内核,即MIPS公司(www.mips.com)的MIPS处理器内核,ARM公司(www.arm.com )的ARM处理器内核,国际商用机器公司(IBM)、苹果公司(Apple)及摩托罗拉(Motorola)公司联合开发的PowerPC,摩托罗拉公司(www.motorola.com)的68K/COLDFIRE。

**18、ARM 体系结构的技术特征:

(1)单周期操作。ARM 指令系统中的指令只需要执行简单的和基本的操作,因此其执行过程在一个机 器周期内完成。

(2)采用加载/存储指令结构。ARM 只采用了加载和存储两种指令对存储器进行读和写的操作,面向运算部件的操作都经过加载指令和存储指令从存储器取出后预先存放到寄存器内,以加快执行速度。

(3)固定的32位长度指令。ARM 指令系统的指令格式固定为32位长度,指令译码结构简单,效率高。

(4)3地址指令格式。由于编译开销大,需要尽可能优化,因此采用3地址指令格式,较多寄存器和对称的指令格式便于生成优化代码。

(5)指令流水线技术。ARM 采用多级流水线技术,以提高指令执行的效率;ARM7采用冯·诺依曼体系结构的3级指令流水线;ARM9TDMI 采用基于哈佛体系结构的5级指令流水线技术;ARM10 采用6级指令流水线。

19、由ARM 状态切换到Thumb 状态。通过BX 指令可将ARM 状态切换到Thumb 状态,即当操作数寄存器的最低位为1 时,可执行BX 指令使微处理器进入Thumb 状态。Thumb 状态切换到ARM 状态,即当操作数寄存器的最低位为0时,可执行BX 指令使微处理器进入ARM 状态。

20、ARM 处理器7种工作模式:用户模式、快速中断模式、外部中断模式、管理模式、中止模式、未定义指令模式、系统模式。

嵌入式复习要点

21、无论何种模式,R15均作为PC 使用;CPSR 为当前程序状态寄存器;R7~R0为公用的通用寄存器。

嵌入式复习要点

LDR 存储器到寄存器的数据传送指令

LDR R0,=SMRDATA ;将存储控制组件各控制器的初始化数据区的起始地址装载到R0

LDM 加载多个寄存器指令 3029282726 (87654321031)

LDMIA R0,{R1,R2,R3,R4,} ;R1←[R0], R2←[R0+4], R3←[R0+8], R4←[R0+12]

LDMIA R0,{r1-r13} ;将R0作为起始地址的13个连续字的初始化数据装载到R1~R13

STM 批量内存字写入指令

STMIA R0,{R1-R13} ;将R1~R13中内容存储到R0作为起始地址的13个连续字的存储区

22、ARM指令的寻址方式:立即寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址、堆找寻址、多寄存器寻址。

23、WDT组件用于监视程序的运行状态。当系统出现错误,如受到噪声干扰时,S3C44B0X的WDT组件能够继续操作控制器。WDT 组件可用作一个普通的16位定时器去请求中断服务,并在每128个MCLK脉冲后产生一个长达128个MCLK时钟周期的复位信号。

24、ARM处理器内部包括CPU和各种功能组件,那么ARM处理器的CPU怎样实现对各种功能组件的控制呢?其主要通过各种控制寄存器来实现对各个功能组件及外围器件的控制,主要工作过程的示意图如 5.10所示。

嵌入式复习要点

控制寄存器的含义及作用如下:

(1) 控制寄存器是一个特定的存储单元,而控制寄存器各位的定义由微控制器/微处理器的内部硬件结构决定,所以控制寄存器各位的定义是控制编程的依据。

(2) 控制寄存器是人机信息交互的桥梁,而人或机器对某个功能组件的控制指令首先必须通过编程给控制寄存器赋值,再通过CPU 对控制寄存器的读操作将有关操作控制信号或操作数据传递给该功能组件。当这些操作控制信号或操作数据有效时,该功能组件就会执行特定的操作。

嵌入式复习要点

嵌入式复习要点

嵌入式复习要点

25、对存储器控制寄存器的配置编程

功能:实现从0X01180000开始的连续地址空间13个存储器组件控制寄存器的初始化。

配置存储器控制寄存器的程序段如下:

LDR R0,=SMRDATA ;将存储控制组件各控制器的初始化数据区的起始地址装载到R0

LDMIA R0,{r1-r13} ;将R0作为起始地址的13个连续字的初始化数据装载到R1~R13

LDR R0,=0x01C80000 ;配置总线宽度与等待控制寄存器BWSCON的地址

STMIA R0,{R1-R13} ;将R1~R13中内容存储到R0作为起始地址的13个连续字的存储区

SMRDATA:

DCD 0x22221210 ;设置BWSCON初始值,选择总线宽度,Bank1和Bank3为6位,其余32位禁止等待DCD 0x00000600 ;Bank0通道控制寄存器BANKCON0(GCS0)初始化

DCD 0x00000700 ;Bank1通道控制寄存器BANKCON1(GCS1)初始化

DCD 0x00000700 ;Bank2通道控制寄存器BANKCON2(GCS2)初始化

DCD 0x00000700 ;Bank3通道控制寄存器BANKCON3(GCS3)初始化

DCD 0x00000700 ;Bank4通道控制寄存器BANKCON4(GCS4)初始化

DCD 0x00000700 ;Bank5通道控制寄存器BANKCON5(GCS5)初始化

DCD 0x00010000 ;Bank6通道控制寄存器BANKCON6(GCS6)初始化

;(EDODRAM(Tacc=1)

DCD 0x00018000 ;Bank7通道控制寄存器BANKCON7(GCS7)初始化(未用)

DCD 0x00860459 ;刷新控制寄存器REFRESH (REFEN = 1,TREFMD = 0,

;Trp=0,Trc=5,Tchr=3)

DCD 0x0 ;Bank容量寄存器BANKSIZE:确定为32 MB/32 MB

DCD 0x20 ;SDRAM模式寄存器设置寄存器MRSR6(CL=2)

DCD 0x20 ;SDRAM模式寄存器设置寄存器MRSR6(CL=2)

2) 用汇编语言编写对SDRAM的读写操作

对于SDRAM的操作,可以在SDRAM所在地址范围(0x0C000000~0xC7FFFFF)的任意区域进行读或写的操作。

R_W_SDRAM

LDR R2,=0x0C280000

LDR R3,=0x89ABCDEF

STR R3, [R2] ;将一个字0x89ABCDEF写入从地址0x0C280000开始的

;SDRAM区域

LDR R3, [R2] ;从地址0x0C280000处读取一个字到R3

LDR R2, =0x0C500000

LDRH R3, [R2] ;从地址0x0C500000处读取一个半字

STRH R3, [R2],#2 ;地址加2后,读取半字

LDR R2, =0x0C700000

LDRB R3, [R2] ;从地址0x0C700000处读取一个字节

STRB R3, [R2], #1 ;地址加1后,向该地址写入一个字节

PWM组件及应用编程

1. PWM概述

PWM(Pulse Width Modulation)即脉冲宽度调制,S3C44B0X内部集成了6个基于DMA或中断操作的16位定时器,其中5个有引脚输出。PWM定时控制器组件如图5.29所示。

定时器计数缓冲寄存器(TCNTBn)的值是当定时器使能时装载到减法计数器的初值,定时器比较缓冲寄存器(TCMPBn)的值将装载到比较寄存器并与计数器的值相比较。TCNTBn和TCMPBn双重缓冲的特性使得定时器在频率和占空比改变时也能产生稳定的输出每个计数器都有自己的16位减法计数器,它由定时器时钟驱动。当定时器计数器值达到0时,定时器发出中断请求通知CPU定时工作已完成。相应的TCNTBn将自动装载入计数器以继续下一个操作。但是,如果定时器已停止,如在定时器运行状态中通过清除TCONn中的定时器使能位来使定时器停止,TCNTBn中的值则不会被装载到计数器中。

TCMPBn的值用于脉宽调制,当该计数器值与定时器控制逻辑中的比较寄存器值相等时,定时器控制逻辑将改变输出电平。因此,比较寄存器决定PWM输出的高电平时间(或低电平时间)。

PWM定时器的操作方式有基本定时操作(作为通用定时器使用)、自动重装和双缓冲、PWM脉宽调制及输出极性控制等。

26、PWM波形程序的设计思想就是:先选定用于产生PWM波形的计数器的时钟信号频率,再根据产生PWM波形的频率和占空比的要求,计算出控制PWM波形频率和占空比的计数常数。若通过S3C44B0X的PWM组件的定时器0控制PWM输出频率为3000~15000 Hz、占空比为4/5的波形,其C语言子程序如下:

//定时器计数缓冲寄存器(TCNTBn)的值是当定时器使能时装载到减法计数器的初值,

//定时器比较缓冲寄存器(TCMPBn)的值将装载到比较寄存器并与计数器的值相比较。

void pwmwave(void)

{

rTGFG0 = 0xFF;

/* 设置定时器的预分频率值:TIME0/1 = 255,TIME2/3 = 0,TIME4/5=0 */

rTCFG1 = 0x1;/* 设置定时器的工作模式:中断模式*/

/* 设置定时器的分频率值:TIME0为1/4,其他为1/2 */

for (freq=3000;freq < 15000;freq+=1000 )

{ div =(MCLK/256/4)/freq;/* 当输出频率为freq时,计算分频常数div */

rTCON=0x0;/* 关闭定时器*/

rTCNTB0=div;/* 设置输出脉冲的频率为3000~15000 Hz */

rTCMPB0=(4*div)/5;/* 设置输出脉冲的占空比为4/5 */

rTCON = 0xA;/* 手工装载定时器的计数值*/

rTCON=0x9;/* 启动定时器*/

for(index=0;index

rTCON = 0x0;/*延时并停止定时器*/

}

}

若通过S3C44B0X的PWM组件的定时器0控制PWM输出频率为100 kHz、占空比为1/10~9/10的波形,其C语言子程序如下:void pwmwave2(void)

{

rTGFG0 = 0xFF;

/* 设置定时器的预分频率值:TIME0/1 = 255,TIME2/3 = 0,TIME4/5=0 */

rTCFG1 = 0x1;/* 设置定时器的工作模式:中断模式*/

/* 设置定时器的分频率值:TIME0为1/4,其他为1/2*/

div=(MCLK/256/4)/100000;/* 当输出频率为100 kHz时,计算分频常数div */

for ( rate = 10;rate < 100;rate+=10 )

{

rTCNTB0 = div;/* 设置输出脉冲的频率为100 kHz */

rTCMPB0=(rate*div)/100;/* 修改占空比,占空比的变化范围为1/10~9/10 */

rTCON=0xA;/* 手工装载定时器的计数值*/

rTCON=0x9;/* 启动定时器*/

for(index = 0;index < 100000;index++);

rTCON=0x0;/* 延时并关闭定时器*/

}

}

27、常用嵌入式Linux系统:RT-Linux、μCLinux、ARM-Linux、Redhat-Linux、 XLinux、红旗嵌入式Linux。

28、嵌入式Linux系统需要三个基本要素:系统引导工具(用于机器加电后的系统定位引导)、Linux微内核(内存管理、程序管理)和初始化进程。

Linux内核包含进程调度、内存管理、文件系统、进程间通信、网络及资源管理六部分

29、嵌入式Linux的开发步骤:1) 建立嵌入式Linux交叉开发环境2) 交叉编译和链接3) 交叉调试4) 系统测试

30、建立嵌入式Linux开发环境,一般有三种办法:一是在Windows系统下安装虚拟机,再在虚拟机中安装Liunux操作系统;二是安装基于PC Windows操作系统下的CYGWIN;三是直接安装Liunux操作系统。

31、修改Linux源码参数:解压内核源码——对内核进行默认配置修改——修改平台输入时钟——修改S3C2440A 的机器号

32、配置Linux内核:有关CPU平台选项——配置目标板资源——配置文件系统。

33、嵌入式系统的Boot Loader程序,即系统的引导装载程序,简单地说,就是在操作系统内核或用户应用程序之前运行的一段小程序。通过这段小程序可以初始化硬件设备和建立内存空间的映射图,将系统的软、硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境.

34、常用的嵌入式Boot Loader有vivi、U-Boot、RedBoot、ARMBoot、Blob和DIY。

AREA THIRD, CODE, READONLY

NUM EQU 20

ENTRY

START

LDR R0,=SRC

LDR R1,=DST

MOV R2,#NUM

MOV SP,#0X400

BLKCOPY

MOV R3,R2,LSR #3

BEQ COPYWORDS

STMFD SP!,{R4-R11}

OCTCOPY

LDMIA R0!,{R4-R11}

STMIA R1!,{R4-R11}

SUBS R3,R3,#1

BNE OCTCOPY

LDMFD SP!,{R4-R11}

COPYWORDS

ANDS R2,R2,#7

BEQ End

WORDCOPY

LDR R3,[R0],#4

STR R3,[R1],#4

SUBS R2,R2,#1

BNE WORDCOPY

End

b End

SRC DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4 DST DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 END

AREA THIRD, CODE, READONLY

NUM EQU 20

ENTRY

START

LDR R0,=SRC

LDR R1,=DST

MOV R2,#NUM

MOV SP,#0X400

BLKCOPY

MOV R3,R2,LSR #2

BEQ COPYWORDS

STMFD SP!,{R4-R7}

OCTCOPY

LDMIA R0!,{R4-R7}

STMIA R1!,{R4-R7}

SUBS R3,R3,#1

BNE OCTCOPY

LDMFD SP!,{R4-R7}

COPYWORDS

ANDS R2,R2,#3

BEQ End

WORDCOPY

LDR R3,[R0],#4

STR R3,[R1],#4

SUBS R2,R2,#1

BNE WORDCOPY

End

b End

SRC DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4 DST DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 END