当前位置:文档之家› 嵌入式微处理器体系结构复习资料

嵌入式微处理器体系结构复习资料

嵌入式微处理器体系结构复习资料
嵌入式微处理器体系结构复习资料

一、嵌入式微处理器体系结构

嵌入式微处理器的体系结构可以采用冯·诺依曼体系结构或哈佛体系结构,指令系统可以选用精简指令系统RISC和复杂指令集系统CISC。

1、·诺依曼体系结构和哈佛体系结构;

(1)·诺依曼结构的计算机由CPU和存储器构成,其程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置;采用单一的地址及数据总线,程序指令和数据的宽度相同。程序计数器(PC)是CPU内部指示指令和数据的存储位置的寄存器。

(2)哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。提高执行速度,提高数据的吞吐率,具有较高的执行效率。

2、CISC和RISC

类别CISC RISC

指令系统指令数量很多较少,通常少于100

执行时间有些指令执行时间很长,

如整块的存储器内容拷贝;

或将多个寄存器的内容

拷贝到存贮器没有较长执行时间的指令

编码长度编码长度可变,1-15字节编码长度固定,通常为4个字节

寻址方式寻址方式多样简单寻址

操作可以对存储器和寄存器只能对寄存器对行算术和逻辑操作,

进行算术和逻辑操作Load/Store体系结构

编译难以用优化编译器生成

高效的目标代码程序采用优化编译技术,生成高效的目标代码程序

二、ARM状态各模式下的寄存器

1、所有的37个寄存器,分成两大类:

(1)31个通用32位寄存器;

(2) 6个状态寄存器。

2、R0~R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。

3、寄存器R8~R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器

4、寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度

5、寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。

三、处理器工作模式

1、ARM处理器有7种工作模式;

●usr(用户模式):ARM处理器正常程序执行模式。

●fiq(快速中断模式):用于高速数据传输或通道处理

●irq(外部中断模式):用于通用的中断处理

●svc(管理模式):操作系统使用的保护模式

●abt (数据访问终止模式):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

●sys(系统模式):运行具有特权的操作系统任务。

●und(未定义指令中止模式):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。

除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged Modes);其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。

2、除用户模式外,其它模式均为特权模式。ARM内部全部系统资源和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。

3、此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。

四、ARM异常处理

1、当异常产生时, ARM 核:

(1)拷贝CPSR 到SPSR_

(2)设置适当的CPSR 位:

a.改变处理器状态进入ARM 态

b.改变处理器模式进入相应的异常模式

c.设置中断禁止位禁止相应中断(如需要)

(3)保存返回地址到LR_

(4)设置PC 为相应的异常向量地址

2、返回时, 异常处理程序需要:

(1)从SPSR_恢复CPSR

(2)从LR_恢复PC

(3)注意:这些操作只能在ARM 态执行.

五、ARM指令集

1、ARM寻址方式:掌握ARM微处理器9种寻址方式的特点。

(1).寄存器寻址

操作数的值在寄存器中,指令中的地址码字段给出的是寄存器编号,寄存器的内容是操作数,指令执行时直接取出寄存器值操作。

例如指令:

MOV R1,R2 ;R1←R2

SUB R0,R1,R2 ;R0←R1- R2

(2).立即寻址

在立即寻址指令中数据就包含在指令当中,立即寻址指令的操作码字段后面的地址码部分就是操作数本身,取出指令也就取出了可以立即使用的操作数(也称为立即数)。立即数要以“#”为前缀,表示16进制数值时以“0x”表示。

例如指令:

ADD R0,R0,#1 ;R0←R0 + 1

MOV R0,#0xff00 ;R0←0xff00

(3).寄存器移位寻址

寄存器移位寻址是ARM指令集特有的寻址方式。第2个寄存器操作数在与第1个操作数结合之前,先进行移位操作。

例如指令:

MOV R0,R2,LSL #3 ;R2的值左移3位,结果放入R0,即R0=R2 * 8

ANDS R1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相与操作,结果放入R1 可采用的移位操作如下:

LSL:逻辑左移(Logical Shift Left),寄存器中字的低端空出的位补0。

LSR:逻辑右移(Logical Shift Right),寄存器中字的高端空出的位补0。

ASR:算术右移(Arithmetic Shift Right),移位过程中保持符号位不变,即如果源操作数为正数,则字的高端空出的位补0,否则补1

ROR:循环右移(Rotate Right),由字的低端移出的位填入字的高端空出的位

RRX:带扩展的循环右移(Rotate Right extended by 1 place),操作数右移一位,高端空出的位用原C 标志值填充。

(4).寄存器间接寻址

指令中的地址码给出的是一个通用寄存器编号,所需要的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针,操作数存放在存储器中。

例如指令:

LDR R0,[R1] ;R0←[R1](将R1中的数值作为地址,取出此地址中的数据保存在R0中)STR R0,[R1] ;[R1] ←R0

(5).变址寻址

变址寻址是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址,变址寻址用于访问基址附近的存储单元,常用于查表,数组操作,功能部件寄存器访问等。例如指令:

LDR R2,[R3,#4] ;R2←[R3 + 4](将R3中的数值加4作为地址,取出此地址的

数值保存在R2 中)STR R1,[R0,#-2] ;[R0-2] ←R1(将R0中的数值减2作为地址,把R1中的内

容保存到此地址位置)(6).多寄存器寻址(LDM/STM)

LDM/STM指令可以把存储器中的一个数据块加载到多个寄存器中,也可以把多个寄存器中的内容保存到存储器中。寻址操作中的寄存器可以是R0-R15这16个寄存器的子集或是所有寄存器。采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送,这种寻址方式用一条指令最多可以完成16个寄存器值的传送。

格式为:

LDM(或STM){条件}{类型} 基址寄存器{!},寄存器列表{∧}

该指令的常见用途是将多个寄存器的内容入栈或出栈。

(7).堆栈寻址

堆栈是一种数据结构,堆栈是特定顺序进行存取的存储区,操作顺序分为“后进先出”和“先进后出”,堆栈寻址时隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈),指针所指向的存储单元就是堆栈的栈顶。

(8).块复制寻址

块复制寻址用于把一块从存储器的某一位置复制到另一位置,是一个多寄存器传送指令。(9).相对寻址

相对寻址是变址寻址的一种变通,由程序计数器PC提供基准地址,指令中的地址码字段作为偏移量,两者相加后得到的地址即为操作数的有效地址。

2、堆栈寻址

满递增堆栈(FA):堆栈指针指向最后压入的数据,且由低地址向高地址生成。

满递减堆栈(FD):堆栈指针指向最后压入的数据,且由高地址向低地址生成。

空递增堆栈(EA):堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。空递减堆栈(ED):堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。

3、多寄存器寻址(块拷贝寻址)

(1)块拷贝寻址是多寄存器传送指令LDM/STM的寻址方式。LDM/STM指令可以把存储器中的一个数据块加载到多个寄存器中,也可以把多个寄存器中的内容保存到存储器中。寻址操作中的寄存器可以是R0-R15这16个寄存器的子集或是所有寄存器。

(2)LDM/STM指令依据其后缀名的不同其寻址的方式也有很大不同。

(3)LDMIA R1!,{R0,R2,R3}指令执行后,R1的值变为R1+12—>R1;

注:!决定Rn的值是否随着传送而改变

寻址模式描述起始地址结束地址Rn!

IA 执行后增加Rn Rn+4*N Rn+4*N

IB 执行前增加Rn+4 Rn+4*N Rn+4*N

DA 执行后减少Rn Rn-4*N Rn-4*N

DB 执行前减少Rn-4 Rn-4*N Rn-4*N

六ARM状态与Thumb状态的转换

1、实现ARM工作状态转换的指令,其句法如下:

BX 目标地址

(1)BX指令将引起处理器转移到目标地址所指向的地址处执行。

(2)目标地址的位[0]不用来作为地址的一部分。

a.若目标地址的位[0]为1,则指令将CPSR中的标志T置位,且将目标地址的代码解释为Thumb代码;

b.若目标地址的位[0]为0,则指令将CPSR中的标志T复位,且将目标地址的代码解释为ARM 代码。

七、ARM的硬件系统结构

1、S3C2410的存储器系统

(1)S3C2410支持大、小端模式,可通过软件选择大小端模式;

(2)存储空间分成8个Bank,每个Bank 128Mbytes,总共1GB;

6个Bank用于控制ROM, SRAM, etc.

剩余的2个Bank用于控制ROM, SRAM, SDRAM, etc .

(3)除Bank0 (16/32-bit) 外,所有的Bank都可以通过编程选择总线宽度= (8/16/32-bit) ;(4)7个Bank固定起始地址,最后一个Bank可调整起始地址;

(5)最后两个Bank大小可编程

(6)所有Bank存储周期可编程控制;

(7)如果同时使用Bank6/ Bank7,则要求连接相同容量的存储器,而且其地址空间在物理上是连续的。

2、S3C2410的I/O口配置

S3C2410有117个多功能口,掌握如何通过软件编程对每个I/O口进行配置。如将端口C的最低2为设置为01,既设置成输出模式,其余位不变。

rGPCCON = rGPCCON&0xfffffffc|0x00000001;

rGPCDAT= rGPCDAT |0x001; //PC0口电平输出高

表3.4.3 S3C2410A的端口C I/O口配置情况

3、掌握ARM微处理器的中断系统的特点

了解:一旦有中断发生,ARM的中断系统将如何处理。

在ARM系统中,支持复位、未定义指令、软中断、预取中止、数据中止、IRQ和FIQ 7种异常,每种异常对应于不同的处理器模式,有对应的异常向量(固定的存储器地址)。在ARM系统中,一旦有中断发生,正在执行的程序都会停下来,通常都会执行如下的中断步骤:

(1)保存现场。保存当前的PC值到R14,保存当前的程序运行状态到SPSR。

(2)模式切换。根据发生的中断类型,进入IRQ模式或FIQ模式。

(3)获取中断服务子程序地址。PC指针跳到异常向量表所保存的IRQ或FIQ地址处,IRQ

或FIQ的异常向量地址处一般保存的是中断服务子程序的地址,PC指针跳入到中断服务子程序,进行中断处理。

(4)多个中断请求处理。在ARM系统中,可以存在多个中断请求源,比如串口中断、AD 中断、外部中断、定时器中断及DMA中断等,所以可能出现多个中断源同时请求中断的情况。为了更好地区分各个中断源,通常为这些中断定义不同的优先级别,并为每一个中断设置一个中断标志位。当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识别哪一个中断发生了,进而调用相应的函数进行中断处理。

(5)中断返回,恢复现场。当完成中断服务子程序后,将SPSR中保存的程序运行状态恢复到CPSR中,R14中保存的被中断程序的地址恢复到PC中,继续执行被中断的程序。

4、了解S3C2410的DMA控制器的基本工作原理。

DMA(Direct Memory Acess,直接存储器存取)方式是指存储器与外设在DMA控制器的控制下,直接传送数据而不通过CPU,传输速率主要取决于存储器存取速度。在DMA传输过程中,DMA控制器负责管理整个操作,并且无须CPU介入,从而大大提高了CPU的工作效率。DMA方式为高速I/O设备和存储器之间的批量数据交换提供了直接的传输通道。由于I/O设备直接同内存发生成块的数据交换,可以提高I/O效率。现在大部分计算机系统均采用DMA 技术。许多输入/输出设备的控制器都支持DMA方式。

采用DMA方式进行数据传输的具体过程如下。

(1)外设向DMA控制器发出DMA请求。

(2)DMA控制器向CPU发出总线请求信号。

(3)CPU执行完现行的总线周期后,向DMA控制器发出响应请求的回答信号。

(4)CPU将控制总线、地址总线及数据总线让出,由DMA控制器进行控制。

(5)DMA控制器向外部设备发出DMA请求回答信号。

(6)进行DMA传送。

(7)数据传送完毕,DMA控制器通过中断请求线发出中断信号。CPU在接收到中断信号后,转人中断处理程序进行后续处理。

(8)中断处理结束后,CPU返回到被中断的程序继续执行。CPU重新获得总线控制权。

每个DMA控制器可以处理以下4种情况:

(1)源和目的都在系统总线上;

(2)源在系统总线上,目的在外围总线上;

(3)源在外围总线上,目的在系统总线上;

(4)源和目的都在外围总线上。

5、嵌入式存储系统的特点。

(1)高速缓冲存储器原理及特点。

高速缓冲存储器(cache)用来提高存储器系统的性能,许多微处理器体系结构都把它作为其定义的一部分。cache能够减少内存平均访问时间。

Cache可以分为统一cache和独立的数据/程序cache。

(2)存储器管理单元MMU主要完成的功能。

(1)虚拟存储空间到物理存储空间的映射。采用了页式虚拟存储管理,它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。MMU实现的就是从虚拟地址到物理地址的转换。

(2)存储器访问权限的控制。

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

八、嵌入式系统I/O设备接口

1、掌握S3C2410的I/O接口的编程

要求:掌握I/O口编程,能编写实现LED1、LED2 、LED3、LED4 轮流闪烁的程序。

实现LED1和LED2轮流闪烁的程序代码

void Main(void)

int flag,i;

Target Init();//进行硬件初始化操作,包括对I/O口的初始化操作

for(;;)

if(flag = = 0){

for(i = 0;i < 1000000;i++);//延时

rGPGCON=rGPGCON&0xfff0ffff | 0x00050000;//配置第8、第

//9位为输出引脚

rGPGDAT=rGPGDAT&0xeff | 0x200;//第8位输出为低电平

//

第9位输出高电平

for(i = 0;i< 10000000;i++);//延时

flag = 1;

else{

for(i = 0;i< 1000000;i++);//延时

rGPGCON=rGPGCON&0xfff0ffff(0x00050000;//配置第8、

//第9位为输出引脚

rGPGDAT=rGPGDAT&Oxdff | 0x100;//第8位输出为高电平

//第9位输出低电平

for(i = 0;i< 1000000;i++);//延时

flag = 0;

2、掌握S3C2410的A/D转换器接口的原理

要求:掌握A/D转换器接口的原理,能编写A/D转换器初始化函数和获取A/D的转换值的程序。

(1)A/D转换器(模/数转换器)完成电模拟量到数字量的转换。实现A/D转换的方法很多,常用的方法有计数法、双积分法和逐次逼近法等。

(2).对A/D转换器进行初始化

程序中的参数ch表示所选择的通道号,程序如下:

void AD_Init (unsigned char ch)

rADCDLY=100; //ADC启动或间隔延时

rADCTSC=0; //选择ADC模式

rADCCON=(1<<14)|(49<<6)|(ch<<3)|(0<<2)|(0<<1)|(0); //使能前置分频器,设置前置分频值为49,正常模式,禁止读操作启动,不启动。

(3).获取A/D的转换值

程序中的参数ch表示所选择的通道号,程序如下:

int Get_AD(unsigned char ch){

int i;

int val= 0;

i f (ch>7)return 0; //通道不能大于7

for(i=0; i< 16; i++){//为转换准确,转换16次

rADCCON |=0x1; //启动A/D转换

rADCCON= rADCCON&0xffc7 |(ch<<3); //设置通道号

while (rADCCON&0x1); //等待启动位清零

while(!(rADCCON&0x8000)); //等待转换结束

val +=(rADCDAT0&0x03ff);

Delay(10);

}

return(val >> 4); //为转换准确,除以16取均值

}

3、掌握四线式电阻式触摸屏的工作原理,能分析触摸点的X轴坐标和Y轴坐标是如何测量出来的。

触摸屏按其工作原理可分为矢量压力传感式、电阻式、电容式、红外线式和表面声波式5类。在嵌入式系统中常用的是电阻式触摸屏。

四线式触摸屏的X工作面和Y工作面分别加在两个导电层上,共有4根引出线:X+、X-,Y+、Y-分别连到触摸屏的X电极对和Y电极对上。四线电阻屏触摸寿命小于100万次。

当给X方向的电极对施加一确定的电压,而Y方向电极对不加电压时,在x平行电压场中,触点处的电压值可以在Y+(或Y—)电极上反映出来,通过测量Y+电极对地的电压大小,通过A/D转换,便可得知触点的X坐标值。同理,当给Y电极对施加电压,而X电极对不加电压时,通过测量X+电极的电压,通过A/D转换便可得知触点的Y坐标。

四线电阻触摸屏的分辨方法是将四线电阻触摸后变化的模拟量转换成数字量,经过软件计算得出不同的屏幕上不同的X,Y坐标。此工作主要是靠S3C2440A 芯片中的模数转换器来实现的。

4、了解S3C2410的UART串行接口的工作原理,掌握S3C2410的UART发送和接收数据的程序设计。

UART(通用异步收发器)主要由数据线接口、控制逻辑、配置寄存器、波特率发生器、发送部分和接收部分组成,采用异步串行通信方式,采用RS-232C 9芯接插件(DB-9)连接,是广泛使用的串行数据传输方式.

本程序实例实现从UART0接收数据,然后分别从UART0和UART1发送出去。其功能可以

把键盘敲击的字符通过PC机的串口发送给ARM系统上的UART0,ARM系统上的UART0接收到字符后,再通过UART0和UART1送给PC机,这样就完成了串口间的收发数据。要实现以上数据的收发功能,需要编写的主要代码如下。

(1)发送数据

其中whichUart为全局变量,指示当前选择的UART通道,使用串口发送一个字节的代码如下:

void Uart_SendByte(int data)

if(whichUart= =0)

if(data= =‘\n’)

while(!(rUTRSTAT0&0x2));

Delay(10);//延时,与终端速度有关

WrUTXH(‘\r’);

while(!(rUTRSTAT0&0x2));//等待,直到发送状态就绪

Delay(10);

WrUTXH0(data);

else if(whichUart= =1)

if(data==‘\n’)

while(!(rUTRSTAT1&0x2));

Delay(10);//延时,与终端速度有关

rUTXH1=‘\r’;

while(!(rUTRSTAT1&0x2));//等待,直到发送状态就绪

Delay(10);

rUTXH1=data;

else if(whichUart= =2)

if (data= =‘\n’)

while(!(rUTRSTAT2&0x2));

Delay(10);//延时,与终端速度有关

rUTXH2=‘\r’;

while(!(rUTRSTAT2&0x2));//等待,直到发送状态就绪

Delay(10);

rUTXH2=data;

(2).接收数据

如果没有接收到字符则返回0。使用串口接收一个字符的代码如下:

char Uart_GetKey(void)

if(whichUart==0){

if(rUTRSTAT0&0x1)//UARTO接收到数据

return RdURXH0();

else

return 0;

else if(whichUart= =1){

if(rUTRSTAT1&0x1)//UART1接收到数据

return RdURXH1();

else

return 0;

else if(whichUart= =2){

if(rUTRSTAT2&0x1)//UART2接收到数据

return RdURXH2();

else

return 0;

}else

return 0;

5、掌握键盘接口设计的方法。

要求:掌握矩阵式键盘的扫描原理,能设计一个与S3C2410连接的4X4的矩阵式键盘的接口电路,并编写键盘扫描程序。

(1)矩阵键盘的按键按N行M列排列,每个按键占据行列的一个交点,需要的I/O口数目是N+M,容许的最大按键数是N×M。矩阵键盘可以减少与微控制器I/O接口的连线数,是常用的一种键盘结构形式。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。

(2)一个用I/O口实现的键盘接口,为了识别键盘上的闭合键,常采用行扫描法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如果列值中有某位为低电平,则表明行列交点处的键被按下;否则扫描下一行,直到扫描完全部的行线为止。(3)根据行扫描法的原理,识别矩阵键盘按键闭合分两步进行:

a.识别键盘哪一行的键被按下:让所有行线均为低电平,检查各列线电平是否为低,如果有列线为低,则说明该列有键被按下,否则说明无键被按下。

b.如果某列有键被按下,识别键盘哪一行的键被按下:逐行置低电平,并置其余各行为高电平,检查各列线电平的变化,如果列电平变为低电平,则可确定此行此列交叉点处按键被按下。

1.键盘控制初始化程序

void keyboard_test(void)

{

UINT8T ucChar;

UINT8T szBuf[40];

uart_printf(“\n Keyboard Test Example\n”);

uart_printf(“Press any key to exit…\n”);

Keyboard_init();

g_nKeyPress=0xFE;

While(1)

{

f_nKeyPress=0;

while(f_nKeyPress==0)

{

if(uart_tetkey()) //Press any key from UART0 to exit

return;

else if(ucChar==7) //or press 5*4 Key-7 to exit

return;

else if(g_nKeyPress!=0xFE) //or SB1202/SB1203 to exit

return;

}

iic_read_keybd(0x70,0x1,&ucChar); //get data from ZLG7290

If(ucChar!=0)

{

ucChar-key_set(ucChar); //key map for Edukit II

if(ucChar<16)

sprintf(&szBuf,”press key %d”,ucChar);

else if(ucChar<255)

sprintf(&szBuf,”press key %d”,ucChar);

if(ucChar==0xFF)

sprintf(&szBuf,”press key %c”,ucChar);

if(ucChar==0xFF)

sprintf(&szBuf,”press key FUN”);

#ifdef BOARDTEST

print_lcd(200,170,0x1c,&szBuf);

#endif

uart_printf(szBuf);

uart_printf(“\n”)

}

}

uart_printf(“end.\n”);

}

九、嵌入式软件及操作系统

1、正确理解进程、线程的概念,掌握进程及进程的主要特点,并能说明进程和程序有什么区别。

(1) 进程(process)是在描述多道系统中并发活动过程引入的一个概念。进程和程序是两个既有联系又有区别的概念,两者不能混为一谈。而进程则是一次执行过程,它是暂时的,是动态地产生和终止的。

一个进程通常包含有以下几个方面的内容:

①相应的程序;②CPU上下文;③一组系统资源。

进程的特点:

①进程具有动态性;②进程具有独立性;③进程具有并发性。

(2)线程(thread)是一个比进程更小的能独立运行的基本单位。所谓的线程,就是进程当中的一条执行流程。包括运行上下文、内存地址空间、打开的文件等。

可以用线程来作为CPU的基本调度单位,使得各个线程之间可以并发执行。对于同一个进程当中的各个线程来说,运行在相同的资源平台上,可以共享该进程的大部分资源,但也有一小部分资源是不能共享的,每个线程都必须拥有各自独立的一份。

2、任务的实现

(1).任务的层次结构;(2).任务的创建与终止;(3).任务的状态;(4).任务控制块;(5).任务切换;(6).任务队列.

任务的状态:了解任务的状态是如何转换的,转换的过程。

一般来说,任务具有运行(running)、就绪(ready)和阻塞(blocked)三种基本状态。任务会在不同的状态之间来回转换,存在:运行阻塞、运行就绪、就绪运行、阻塞就绪这四种转换关系。

当一个任务已具备运行条件,但由于CPU正在运行其他的任务,暂时不能运行该任务时,称为就绪状态。不过,只要把CPU分给该任务,它就能够立刻执行。

任务因为正在等待某种事件的发生而暂时不能运行称为阻塞状态,也叫等待状态(waiting)。此时,即使CPU已经空闲下来了,该任务也还是不能运行。

什么是任务控制块TCB,任务控制块包括哪些主要内容。

TCB(Task Control Block,任务控制块)是在操作系统当中用来描述和管理一个任务的数据结构。TCB主要包括任务的管理信息、CPU上下文信息、资源管理信息等内容。

3、实时系统调度:解实时系统的任务是如何调度的。

基于优先级的调度算法给每个进程分配一个优先级,在每次进程调度时,调度器总是调度那个具有最高优先级的任务来执行。

许多嵌入式操作系统都是实时操作系统(RTOS),实时系统的调度追求的是实时性,RTOS 调度器要让每个任务都在其最终时间期限(deadline)之前完成,而各任务之间的公平性并不是最重要的指标。RTOS调度器多采用基于优先级的可抢占调度算法。

在RTOS任务模型中,每一个任务用一个三元组来表示(执行时间、周期、时间期限)。其中:执行时间(execution time)E(i)是指对于第i个任务,当它所需要的资源都己具备时,它的执行所需要的最长时间。周期(period)P(i)是指第i个任务的连续两次运行之间的最小时间间隔。时间期限(deadline)是指D(i)第i个任务所允许的最大响应时间(从任务

启动到运行结束所需的时间)。

4、嵌入式系统的存储管理方式的特点。

嵌入式系统的存储管理方式与系统的实际应用领域及硬件环境密切相关,不同的嵌入式系统采用不同的存储管理方式,需要考虑硬件条件、实时性要求、系统规模、可靠性要求等因素。系统的实时性要求直接影响到存储管理的实现方式,为了确保系统的实时性,快速和确定是内存管理的基本要求,即在存储管理方面的开销不能太大,对于每一项工作都要有明确的实时约束,即必须在某个限定的时刻之前完成。在实时系统中,存储管理方法就比较简单,甚至不提供存储管理功能。

在嵌入式微处理器中,MMU(Memory Management Unit, 存储管理单元)提供了一种内存保护的硬件机制。内存保护用来防止地址越界和防止操作越权。

MMU通常只在一些对安全性和可靠性的要求比较高、系统比较复杂的嵌入式系统中存在。

微处理器发展史

微处理器发展史 CPU发展史 CPU也称为微处理器,微处理器的历史可追溯到1971年,当时INTEL公司推出了世界上第一台微处理器4004。 它是用于计算器的4位微处理器,含有2300个晶体管。从此以后,INTEL便与微处理器结下了不解之缘。 下面以INTEL公司的80X86系列为例介绍一下微处理器的发展历程。 1978和1979年, INTEL公司先后推出了8086和8088芯片,它们都是16位微处理器, 内含29000个晶体管,时钟频率为4.77MHz,地址总线为20位, 可使用1MB内存。它们的内部数据总线都是16位,外部数据总线8088是8位,8086是16位。

1981年 8088芯片首次用于IBMPC机中,开创了全新的微机时代。最早的i8086/8088是采用双列直插(DIP)形式封装, 从i80286开始采用方形BGA扁平封装(焊接), 从i80386开始到Pentiumpro开始采用方形PGA(插脚),1982年, INTEL推出了80286芯片,该芯片含有13.4万个晶体管,时钟频率由最初的6MHz逐步提高到20MHz。 其内部和外部数据总线皆为16位,地址总线24位,可寻址16MB内存。80286有两种工作方式:实模式 和保护模式。 1985年 INTEL推出了80386芯片,它是80X86系列中的第一种32位微处理器,内含27.5万个晶体管, 时钟频率为12.5MHz,后提高到20MHz,25MHz,33MHz。

其内部和外部数据总线都是32位,地址总线也是32位,可寻址4GB内存。 它除具有实模式和保护模式外,还增加了一种叫虚拟86的工作方式,可以通过同时模拟多个8086 处理器来提供多任务能力。 除了标准的80386芯片(称为80386DX)外,出于不同的市场和应用考虑,INTEL又陆续推出了一些 其它类型的80386芯片: 80386SX、80386SL、80386DL等。 1988年 推出的80386SX是市场定位在80286和80386DX之间的一种芯片,其与80386DX的不同在于 外部数据总线和地址总线皆与80286相同,分别是16位和24位(即寻址能力为16MB)。 1990年 推出的80386SL和80386DL都是低功耗、节能型芯片,主要用于便携机和节能型台式机。

嵌入式系统硬件体系结构设计

一、嵌入式计算机系统体系结构 体系主要组成包括: 1. 硬件层 硬件层中包含嵌入式微处理器、存储器(SDRAM 、ROM 、Flash 等)、通用设备接口和I/O 接口(A/D 、D/A 、I/O 等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM 中。 软件层功能层

2. 中间层 硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。 3. 系统软件层 系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。 4. 功能层 功能层主要由实现某种或某几项任务而被开发运行于操作系统上的程序组成。 一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,而嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。 硬件的设计 本网关硬件环境以单片机S3C2440芯片和DM9000以太网控制芯片为主,

基于嵌入式系统的手机设计与实现

基于嵌入式系统的手机设计与实现 摘要:手机编程是一个处于高速发展阶段的技术。本文以基于嵌入式系统的手机作为移动终端目标设备,从编程技术平台、嵌入式操作系统、手机数据传输逻辑结构三个方面,研究其逻辑结构和编程特点。 关键词:嵌入式;移动通信;智能手机; Abstract: Mobile phone programming is a stage of rapid development of technology. In this paper, the embedded system based on the mobile phone as the mobile terminal devices, from the three aspects of programming technology platform, embedded operating system, mobile phone data transmission logic structure, the logic structure and programming features. Keywords:Embedded; Mobile communication; Intelligent mobile phone

0引言 随着3G通信、智能手机等移动技术的发展,手机不再仅仅是一种简单通讯工具。目前智能手机已逐步发展成为具有彩信、摄像、网上漫游、移动办公以及程序下载等附加增值业务的嵌入式应用平台。无论在消费领域还是企业级应用领域,智能化移动应用正迎来空前的发展机遇。针对手机设计特点,本文基于嵌入式技术和开源的Linux操作系统,对智能手机的硬件平台、人机界面、软件编程技术提出设计和解决方案。 1相关研究领域的现状及原理 目前基于嵌入式系统的手机技术研究领域主要包含三方面:手机硬件平台研究;手机操作系统移植;手机应用平台软件体系结构。 1.1手机硬件平台 手机硬件平台即硬件整体解决方案是指厂家提供的CPU、DSP、ADC、DAC 及RF等关键芯片组和设计方案。智能手机的其它外围设备还有LCD、Touch panel、Audio CODEC、USB和串口等。手机设计过程中硬件平台的核心微处理器,目前存在的最高的是八核,英特尔正致力于开发十六核的处理器。 早期手机内部多采用单核结构,即CPU+DSP方案。此时CPU主要负责通信协议(例如GSM、CDMA等)的合成和解析,完成与基站间的可靠通信,同时实现用户界面(UI或MMI)。DSP承担和数值计算相关的任务,如语音编解码、安全层的各种算法等。在双核智能手机中,一个CPU(基频处理器)负责处理通信协议,另一个CPU(应用处理器)负责UI、java虚拟机、嵌入式浏览器等应用功能。两个CPU可以做在一个芯片内,也可以分开。目前国内在基频处理器领域还没有完整的自主知识产权,手机生产厂家多采用双CPU方案,即采用国外厂家生产的基频处理器及配套平台,自主研发应用主要处理器工作平台和应用软件。 1.2嵌入式手机操作系统 在手机软件整体解决方案中,操作系统负责提供多任务调度、动态内存分配、数据通信机制的管理等。前些年市场上主流智能手机所采用的操作系统主要有Windows Mobile、Symbian、Palm、Android、Linux等。目前Android系统的手机风靡一时,而Symbian 、Palm系统已经湮灭在历史的长河中了。手机更新换代非常的快,不知道以后操作系统的历史会怎样的发展。 Linux手机操作系统是由计算机Linux操作系统变化而来,支持32位和64位处理器。Linux最初是由Linux Torvalds编写及发布的,源代码公开、可免费使用的操作系统。后来,又通过Intemet上成百上千的程序员加入,使Linux成

详解嵌入式系统的发展特点及架构

详解嵌入式系统的发展特点及架构 随着电子产品的发展,嵌入式系统已经广泛地应用我们的生活的各个领域,例如:计算机、汽车、航天飞机等等。提到嵌入式系统首先联想到单片机,是的,MCU是最基础和常用的嵌入式系统。嵌入式系统与模拟电路或其他功能电路组成的SoC(System on Chip,片上系统)或SiP(System in Package,系统级封装)在手机、机顶盒等功能复杂的产品中的应用也越来越多。 嵌入式系统发展呈现如下特点:·由8位处理向32位过渡·由单核向多核过渡·向网络化功能发展·MCU、FPGA、ARM、DSP等齐头并进·嵌入式操作系统呈多元化趋势所有的嵌入式处理器都是基于一定的架构的,即IP核(Intellectual Property,知识产权),生产处理器的厂家很多,但拥有IP核的屈指可数。有自己的IP核,光靠卖IP核即可坐拥城池。嵌入式系统的架构有专有架构和标准架构之分,在MCU(微控制器)产品上,像瑞萨(Renesas)、飞思卡尔(Freescale)、NEC都拥有自己得专有IP核,而其他嵌入式处理器都是基于标准架构。 标准的嵌入式系统架构有两大体系,目前占主要地位的是所谓RISC(Reduced Instruction Set Computer,精简指令集计算机)处理器。RISC体系的阵营非常广泛,从ARM、MIPS、PowerPC、ARC、Tensilica等等,都是属于RISC处理器的范畴。不过这些处理器虽然同样是属于RISC体系,但是在指令集设计与处理单元的结构上都各有不同,因此彼此完全不能兼容,在特定平台上所开发的软件无法直接为另一硬件平台所用,而必须经过重新编译。 其次是CISC(Complex Instruction Set Computer,复杂指令集计算机)处理器体系,我们所熟知的Intel的X86处理器就属于CISC体系,CISC体系其实是非常低效率的体系,其指令集结构上背负了太多包袱,贪大求全,导致芯片结构的复杂度被极大的提升。过去被应用在嵌入式系统的X86处理器,多为旧世代的产品,比如说,工业计算机中仍可常见数年前早已退出个人计算机市场的Pentium3处理器。由于此世代的产品效能与功耗比可以说是过去X86体系的甜蜜点,加上已经被市场长久验证,稳定性高,故常被应用于效能需求不高,但稳定性要求高的应用中,如工控设备等产品。 1、RISC家族之ARM处理器 ARM 公司于1991年成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术智能财产(IP)核心的处理器,即我们通常所说的ARM处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的处理器应用约占据了32位RISC微处理器75%以上的市场,ARM技术不止逐步渗入到我们生活的各个方面,我们甚至可以说,ARM 于人类的生活环境中,已经是不可或缺的一环。 目前市面上常见的ARM处理器架构,可分为ARM7、ARM9以及ARM11,新推出的Cortex系列尚在进行开发验证,市面上还未有相关产品推出。ARM也是嵌入式处理器中首先推出多核心架构的厂商。ARM 首个多核心架构为ARM11 MPCore,架构于原先的ARM11处理器核心之上。ARM11核心是发布于2002年10月份,为了进一步提升效能,其管线长度扩展到8阶,处理单元则增加为预取、译码、发送、转换/MAC1、执行/MAC2、内存存取/MAC3和写入等八个单元,体系上属于ARM V6指令集架构。ARM11采用当时最先进的0.13μm制造制程,运行频率最高可达500到700MHz。如果采用90nm制程,ARM11核心的工作频率能够轻松达到1GHz以上—对于嵌入式处理器来说,这显然是个相当惊人的程度,不过显然1GHz在ARM11体系中不算是个均衡的设定,因此几乎没有厂商推出达到1GHz的ARM11架构处理器。 ARM11的逻辑核心也经过大量的改进,其中最重要的当属“静/动态组合转换的预测功能”。ARM11的执行单元包含一个64位、4种状态的地址转换缓冲,它主要用来储存最近使用过的转换地址。当采用动态转换预测机制而无法在寻址缓冲内找到正确的地址时,静态转换预测功能就会立刻接替它的位置。在实际测试中,单纯采用动态预测的准确率为88%,单纯采用静态预测机制的准确率只有77%,而ARM11的静/动态预测组合机制可实现92%的高准确率。针对高时脉速度带来功耗增加的问题,ARM11采用一项名为“IEM (Intelligent Energy Manager)”的智能电源管理技术,该技术可根据任务负荷情况动态调节处理器的电压,进而有效降低自身的功耗。这一系列改进让ARM11的功耗效能比得以继续提高,平均每MHz只需消耗0.6mW(有快取时为0.8mW)的电力,处理器的最高效能可达到660 Dhrystone MIPS,远超过上一代产品。至于ARM11 MPCore,其在架构上与ARM11同样属于V6指令体系。根据不同应用的需要,MPCore可以被配置为1-4个处理器的组合方式,根据官方资料,其最高性能约可达到2600 Dhrystone MIPS的程度。MPCore是标准的同质多核心处理器,组成MPCore的是4个基于ARM11架构的处理器核心,由于多核心设计的优点是在频率不变的情况下让处理器的性能获得明显提升,因此可望在多任务应用中拥有良好的表现,这一点很适合未来家庭消费电子的需要。例如,机顶盒在录制多个频道电视节目的同时,还可通过互联网收看数字视频点播节目、车内导航系统在提供导航功能的同时,仍然有余力可以向后座乘客播放各类视频码流等。 2、RISC家族之MIPS处理器 MIPS是美国历史悠久的RISC处理器体系,其架构的设计,也如美国人的性格一般,相当的大气且理想化。MIPS架构起源,可追溯到1980年代,斯坦福大学和伯克利大学同时开始RISC架构处理器的研究。MIPS公司成立于1984年,随后在1986年推出第一款R2000处理器,在1992年时被SGI所并购,但随着MIPS架构在桌面市场的失守,后来在1998年脱离了SGI,成为MIPS技术公司,并且在1999年重新制定公司策略,将市场目标导向嵌入式系统,并且统一旗下处理器架构,区分为32-bit以及64-bit两大家族,以技术授权成为主要营利模式。 MIPS除了在手机中应用得比例极小外,其在一般数字消费性、网络语音、个人娱乐、通讯、与商务应用市场有着相当不错的成绩,不过近年来因为其它IP授权公司的兴起,其占有比率稍有衰退。MIPS应用最为广泛的应属家庭视听电器(包含机顶盒)、网通产品以及汽车电子方面。对于MIPS,其核心技术强调的是多执行绪处理能力(Multiple issue,国内也通常称作多发射核技术,以下以此称谓)。一般来说,多核心与多发射是两个并不是互斥的体系,可以彼此结合,然而在嵌入式领域,ARM与MIPS这两大处理器IP厂商对这两个架构的态度不同,造成这两个架构在嵌入式市场上对抗的结果。 MIPS 的多发射体系为MIPS34K系列,此为32位架构处理器,从架构上来看,其实多发射核技术只是为了尽量避免处理单元闲置浪费而为的折衷手段,就是将处理器中的闲置处理单元,分割出来虚拟为另一个核心,以提高处理单元的利用率。在技术上,为了实现硬件多重处理,多核心与多发射两者对于软件最佳化的复杂度方面同样都比单核心架构来得复杂许多。34K核心能执行现有的对称式二路SMP操作系统(OSes)与应用软件,通过操作系统的主动管理,现有的应用软件也能善用多发射处理能力。它亦能应用在多个执行线程各自有不同角色的(AMP或非对称式多重处理)环境下。此外,34K核心能设定一或两个虚拟处理组件(VPE)以及多至5个线程内容(Thread Content),提供相当高的设计弹性。MIPS的多发射在任务切换时,有多余的硬件缓存器可以记录执行状态,避免切换任务时,因为必须重新加载指令,或者是重新执行某部分的工作,造成整个执行线程的延迟。不过即便能够达到同时执行多个任务的能力,多发射处理器本质上仍然是单核心处理器,在单一执行绪

微处理器思考与习题

第1章思考与习题: 1、简述计算机系统的硬件构成和软件构成。 计算机的硬件结构由运算器、控制器、存储器、输入设备、输出设备及连接各部件的总线组成。 其中,运算器又称为算术/逻辑运算单元,完成数据的算术(加、减、乘、除)和逻辑(与、或、非、异)等运算以及移位等操作,它是一个采用二进制运算信息加工部件。 存储器是计算机的记忆部件,存储控制计算机操作的命令(指令)和被处理的信息数据,并对处理结果加以保存。存储器存储的信息有两类:一类是命令信息,指挥计算机系统工作,用来完成所设计的任务,这类信息被存放在存储器的代码区或程序区;另一类是数据是指被处理的对象或结果,这类信息被存放在数据区。一般将存储器分为两级:内存和外存,目前使用的内存是半导体存储器,外存采用硬盘、磁带、光盘等。平时程序保存在外存,执行时再将其调入内存中运行。狭义的存储器仅指内存储器。 控制器是整个系统的指挥部件,对运行的指令逐一分析,发出控制信号并执行其相应操作。 输入设备与输出设备,通称外围设备,是对信息形式的转换,如将语言文字、声音、机械动作等信息形式转换为计算机能识别的二进制格式信息,或将其反向转换。 总线是计算机各部件间传输信息的公共通道,各部件分时复用总线,满足数据、地址、指令和控制信息在各部件之间快速传送的需要。 微型计算机的软件由系统软件和应用软件构成。 系统软件包括操作系统、程序设计语言的编译程序和其他程序。 操作系统是常驻内存的软件系统,包括系统资源管理(CPU管理,存储器管理、I/O管理和驱动程序)、任务管理、文件管理和程序库。为使用者提供灵活方便操作功能,使资源得到最充分有效的利用。 各种程序设计语言的编译系统为用户开发应用软件提供有力支持,如汇编语言的汇编程序,各种高级语言的汇编程序、连接程序以及各种调试工具。 其他程序,如系统诊断程序、故障定位程序、系统配置程序等。 应用软件(或称用户软件)是为用户实现给定的任务而编写、选购或订购的程序,它只适合给定环境的指定用途,一般驻留在外部存储器中,只在运行时才调入内存储器。 2、冯·诺依曼体系结构的五个部件是什么?总线的作用是什么?

ARM处理器与嵌入式系统_沈建华

ARM处理器与嵌入式系统 沈建华 (华东师范大学计算机科学技术系,上海200241) 业界论坛INDUSTRY FORUM 62010年第11期adv@https://www.doczj.com/doc/346841469.html,(广告专用) 可以用散热器加风扇散热。ARM针对嵌入式应用,在满 足性能要求的前提下,力求最低的功率消耗。ARM结构 的优点是能兼顾到性能、功耗、代码密度、价格等几个方 面,而且做得比较均衡。在性能/功耗比(MIPS/W)方面, ARM处理器具有业界领先的性能。基于ARM核的芯片 价格也很低,目前ARM Cortex-M的芯片价格可低至10 元人民币左右。 2.2丰富的可选择芯片 ARM只是一个核,ARM公司自己不生产芯片,采用 授权方式给半导体生产商。目前,全球几乎所有的半导体 厂家都向ARM公司购买了各种ARM核,配上多种不同 的控制器(如LCD控制器、SDRAM控制器、DMA控制器 等)和外设、接口,生产各种基于ARM核的芯片。目前, 基于ARM核的各种处理器型号有好几百种,在国内市场 上,常见的有ST、TI、NXP、Atmel、Samsung、OKI、Sharp、 Hynix、Crystal等厂家的芯片。用户可以根据各自的应用 需求,从性能、功能等方面考察,在许多具体型号中选择最 合适的芯片来设计自己的应用系统。由于ARM核采用 向上兼容的指令系统,用户开发的软件可以非常方便地移 植到更高的ARM平台。 2.3广泛的第三方支持 以如今的技术,设计一个处理器并非难事,但要使这 个处理器得到大家认可,并取得市场成功却是非常困难 的,其中涉及许多技术与非技术的因素和环节,还包括时 机、运气。因为现在许多产品的开发,不是一个简单的处 理器加几百条指令、语句就可以解决的。要用到32位处 理器,一般都要有编译器、高效的开发工具(仿真器及调试 环境)、操作系统、协议栈等,这些东西都不是一个芯片生 产商可以解决的,而需要许多第三方的支持。这就像一粒 种子,需要土壤、空气、水等环境才能发芽、成长。这也是 我们的一些“中国芯”该反思之处。 ARM通过近20年的培育、发展,得到了广泛的第三 方合作伙伴支持。目前,除通用编译器GCC,ARM有自 己的高效编译、调试环境(MDK、Keil),全球约有50家以

微处理器和微控制器区别与DSP芯片分类及特点简介

微处理器和微控制器区别与DSP芯片分类及特点简介 中央处理器是一块超大规模的集成电路,是一台计算机的运算核心和控制核心,它的功能主要是解释计算机指令以及处理计算机软件中的数据。 主要包括运算器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。 目前,嵌入式处理器的高端产品有:Advanced RISC Machines公司的ARM、Silicon Graphics 公司的MIPS、IBM和Motorola的Power PC 、Intel的X86和i960芯片、AMD的Am386EM、Hitachi的SH RISC芯片; 掌上电脑的处理器有六类处理器,分别是:英特尔的PXA系列处理器、MIPS处理器、StrongARM系列处理器、日立SH3处理器、摩托罗拉龙珠系列处理器和德州仪器OMAP 系列处理器。 微处理器和微控制器区别所在微处理器和微控制器的区别,这样的区别主要集中在硬件结构、应用领域和指令集特征三个方面: 其一,硬件结构。 微处理器是一个单芯片CPU,而微控制器则在一块集成电路芯片中集成了CPU和其他电路,构成了一个完整的微型计算机系统。 除了CPU,微控制器还包括RAM、ROM、一个串行接口、一个并行接口,计时器和中断调度电路。虽然片上RAM的容量比普通微型计算机系统还要小,但是这并未限制微控制器的使用。 在后面可以了解到,微控制器的应用范围非常广泛。其中,微控制器的一个重要的特征是内建的中断系统。作为面向控制的设备,微控制器经常要实时响应外界的激励。 其二,应用领域。 微处理器通常作为微型计算机系统中的CPU使用,其设计正是针对这样的应用,这也是微处理器的优势所在。 然而,微控制器通常用于面向控制的应用,系统设计追求小型化,尽可能减少元器件数量。

嵌入式微处理器体系结构复习资料

一、嵌入式微处理器体系结构 嵌入式微处理器的体系结构可以采用冯·诺依曼体系结构或哈佛体系结构,指令系统可以选用精简指令系统RISC和复杂指令集系统CISC。 1、·诺依曼体系结构和哈佛体系结构; (1)·诺依曼结构的计算机由CPU和存储器构成,其程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置;采用单一的地址及数据总线,程序指令和数据的宽度相同。程序计数器(PC)是CPU内部指示指令和数据的存储位置的寄存器。 (2)哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。提高执行速度,提高数据的吞吐率,具有较高的执行效率。 2、CISC和RISC 类别CISC RISC 指令系统指令数量很多较少,通常少于100 执行时间有些指令执行时间很长, 如整块的存储器内容拷贝; 或将多个寄存器的内容 拷贝到存贮器没有较长执行时间的指令 编码长度编码长度可变,1-15字节编码长度固定,通常为4个字节 寻址方式寻址方式多样简单寻址 操作可以对存储器和寄存器只能对寄存器对行算术和逻辑操作, 进行算术和逻辑操作Load/Store体系结构 编译难以用优化编译器生成 高效的目标代码程序采用优化编译技术,生成高效的目标代码程序 二、ARM状态各模式下的寄存器 1、所有的37个寄存器,分成两大类: (1)31个通用32位寄存器; (2) 6个状态寄存器。 2、R0~R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。 3、寄存器R8~R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器 4、寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度 5、寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。 三、处理器工作模式 1、ARM处理器有7种工作模式; ●usr(用户模式):ARM处理器正常程序执行模式。 ●fiq(快速中断模式):用于高速数据传输或通道处理 ●irq(外部中断模式):用于通用的中断处理

Intel微处理器发展史

Intel官方超高清大图:微处理器发展40周年 1971年11月15日,Intel 开发了全球第一款微处理器“Intel 4004”,时至今日即将整整40年。为了纪念这历史性的一刻,Intel 今天放出了大量珍贵的历史资料,尤其是历代17款处理器的超高清大图特写(外壳与内核),值得收藏,不容错过。 首先来看一段老祖宗4004与当今最快处理器Sandy Bridge Core i7 的有趣对比: 1、对比晶体管速度,4004就像是蜗牛,每小时前进5米,而现在就是肯尼亚选手帕特里克·马卡乌·穆斯约基今年9月25日在德国柏林创造的马拉松长跑记录:2小时3分38秒,平均时速20.6公里。从频率上对比,二者就分别是蜗牛和闪电博尔特。 2、如今一台笔记本每年的能耗价值约25欧元(¥220),而如果1971年来处理器功耗不变,如今的笔记本每年要在能耗上支出大约10万欧元(¥87万元),没几个人能用得起。 3、4004的内核包含2300个晶体管,Sandy Bridge 则是9.95亿个,就像一个小村落和整个中国的人口对比。如果每颗晶体管都是一粒米,9.95亿颗足够波兰波兹南、德国斯图加特、英国格拉斯哥或者任何56.7万左右人口的大城市的所有人都饱饱地吃上一顿。 4、Sandy Bridge 采用32纳米工艺制造,内核面积216平方毫米,而如果使用4004的10微米工艺,Sandy Bridge 的内核面积将是21平方米,或者说7×3米。感谢摩尔定律。 5、4004的频率为74KHz,Sandy Bridge 则可达4GHz 左右。如果汽车的速度也照此提升,那么今天从旧金山开到纽约,或者从葡萄牙里斯本开到俄罗斯莫斯科,都只需要1秒钟。 6、从4004到Sandy Bridge,晶体管的速度提升了5000倍,功耗只有当初的5000分之一,价格则降低到了50000分之一。 7、贝尔实验室1947年发明的晶体管有一个手掌那么大,而在22nm 三栅极工艺下,一个针头(直径约1.5毫米)的空间就能放下10多亿个晶体管。

armcotex-a8嵌入式原理与系统设计习题答案

第1章 什么是嵌入式系统 嵌入式系统是以应用为中心、以计算机技术为基础、软/硬件可剪裁、适用于对系统功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。 嵌入式系统的应用领域有哪些列举一些生活中的嵌入式系统实例。 嵌入式系统的应用领域有交通管理、工控设备、智能仪器、汽车电子、环境监测、电子商务、医疗仪器、移动计算、网络设备、通信设备、军事电子、机器人、智能玩具、信息家电等; ①网络设备: 交换机、路由器、Modem 等。 ②消费电子: 手机、MP3、PDA、可视电话、电视机顶盒、数字电视、数码照相机、数码摄像机、信息家电等。 ③办公设备: 打印机、传真机、扫描仪等。 ④汽车电子: ABS (防死锁制动系统)、供油喷射控制系统、车载 GPS 等。 ⑤工业控制: 各种自动控制设备 嵌入式系统的组成有哪些 嵌入式系统一般由硬件层,中间层,软件层三层组成。 嵌入式系统的特点有哪些 嵌入式系统有以下4个特点:系统内核小、专用性强、系统精简、实时性高。 简述嵌入式系统的发展。 嵌入式系统具有以下6个发展趋势:系统工程化、开源化、功能多样化、节能化、人性化、网络化。 常用的嵌入式处理器分为哪几类

常见的嵌入式处理器有一下四类:嵌入式微处理器、嵌入式微控制器、嵌入式 DSP 处理器、嵌入式片上系统。 嵌入式操作系统的特点有哪些 嵌入式操作系统有以下6个特点:系统内核小、专用性强、系统精简、高实时性、多任务的操作系统、需要专用开发工具和环境。 什么是实时操作系统 IEEE 实时 UNIX 分委会认为实时操作系统应具备哪些特点实时操作系统是指在限定的时间内能对过程调用产生正确的响应的操作系统。IEEE 的实时UNIX分委会认为实时操作系统应具备以下特点:异步的事件响应、切换时间和中断延迟时间确定、优先级中断和调度、抢占式调度、内存锁定、连续文件、同步。 常用的嵌入式操作系统有哪些它们各有什么特点

国内的微处理器介绍

关键字: register:寄存器interface:接口analog:模拟semiconductor:微处理器combination:混合体capacitor :电容器diode:二极管comparator:比较器loop:循环 polarity:极性potential:电位pickup:传感器circuitry:电路图resistance:电阻leakage:泄露电阻filt:过滤器current:电流buffering:缓冲器impedance:阻抗offset:补偿diode:二极管 国内的微处理器: ADC08031/ADC08032/ADC08034/ADC08038 8位高速单任务处理的I/O A/D转换器有多种传输方式,提高电压,和跟踪/控制功能 综述: ADC08031/ADC08032/ADC08034/ADC08038是8位连续的近似A/D转换器,有一系列I/O和配置输入多大8种方式,一系列的I/O被装置以达成NSCMICROWIRE TM的标准。简单连接COPS TM流派控制的一系列数据转换标准,也能简单连接标准转移寄存器或微处理器。 ADC08034和ADC08038提供一个2.6V中断源参考材料,为装置提供保障的电压参考温。以ADC08031/ADC08034和ADC08038为特点,一个跟踪/控制功能允许在现实A/D转换中在正极输入多种模拟电压。模拟输入被装置成操作各种但极点的有区别的,或假定一有区别的代码的混合体。总之,输入模拟跨度最小1V才能被容纳。 用途: 1,使自动传感器数字化。 2,程序控制监督程序。 3,在噪音环境中有遥感功能。 4,检测仪器。 5,测试系统。 6,嵌入式特征。 特征: 1,单任务处理器的数据连接要求少量的I/O插口。 2,模拟输入跟踪控制功能。 3,2- ,4-或8位输入多种逻辑地址的传输方式。 4,0V~5V模拟输入范围提供单极5V电压。 5,没有零或满的尺度判断要求。 6,TTL/CMOS输入/输出兼容。 7,在集成电路片上2.6V中断源参考材料。 8,0.3标准宽度.14或20个插口插入插件。 9,20个插口的微型插件 码的规范:

ARM体系结构及其嵌入式处理器期末复习

微型计算机基础知识 ①、指令,就是向系统发出的、指示系统做某种操作的指令。指令译码器,负责对指令进行解释和翻译,并由与译码器相连接的控制器发出相应的控制信息,指挥运算器和存储器协同完成指令所要求的操作。计算机系统的指令译码器所能够解释的指令集合为指令集。 ②、存放程序首地址的存储装置叫做程序计数器。 ③、执行指令的三个阶段:取指令、指令译码、执行指令 ④、冯诺依曼计算机特点:计算机由运算器、存储器、控制器、输入设备和输出设备五部分组成;指令与数据以同等地位存放在存储器中,并可按地址对他们进行访问;指令在存储器中顺序存放;机器以运算器为中心,数据的传输必须通过运算器。 ⑤、数据总线DB用来在计算机各个部件之间传输数据及指令代码。地址总线AB用于传输CPU要访问的存储单元或接口的地址信号。控制总线CB是在计算机各个部件之间传输“读”、“写”之类的控制信号的。 ⑥、实现RISC的主要方法:减少指令种类;Load/Store结构;采用指令流水线技术;在处理器中配置更多的通用寄存器 ⑦、嵌入式计算机系统与通用型计算机系统相比,特点:专用性强、可裁剪性好、实时性与可靠性好、功耗低 总线、存储器和接口 ①、并行总线是由多条传输线组成,其数目与被传输数据的位数相同,每条线负责传输一位二进制代码,可以一次同时传送一个多位二进制代码。串行总线使用一根线来传送多位二进制信息,多位二进制代码在这根线上一位接着一位地逐一

传输。 ②、系统总线分为:数据总线、地址总线、控制总线 ③、ISA标准:工业标准体系结构PCI总线:主板插槽USB通用串行总线接口 ④、外部设备的特点:信号种类繁多(数字量、模拟量、开关量、脉冲量)、没有地址、工作速度与处理器的工作速度不匹配 ⑤、接口中每一个具有地址的寄存器叫做端口。 ⑥、I/O端口的编址方式:存储器映像方式和隔离I/O方式 ⑦、计算机与外部设备主要有三种联络和数据传输方式:查询方式(处理器主动进行)、中断方式(外部设备主动进行)、DMA方式(数据不经处理器而直接在内存和接口之间进行交换) ⑧、串行通信根据时钟的控制方式可分为同步通信方式和异步通信方式。如果发送设备和接收设备各自使用自己的时钟来控制通信,那么这种通信方式叫做异步通信方式,这种通信方式允许双方的时钟在准确度和稳定度上有一定的差异;如果发送和接收双方使用同一个时钟来控制通信,那么这种通信方式叫做同步通信方式,要求双方的时钟必须严格一致。 ⑨、波特率是衡量传输速率的指标。表示每秒传输的二进制位数。 ARM体系结构 ①、算术逻辑运算单元ALU:ALU是一个可以进行算术和逻辑运算的电路,是处理器进行运算的核心部件;桶式移位寄存器:加快数据的移位运算;高速乘法器:为了提高嵌入式处理器的工作速度以保证实时性的要求;寄存器:为了提高嵌入式处理器的工作速度以保证实时性的要求;指令流水线:ARM体系结构采

微处理器与体系结构

第二章:微处理器与体系结构 ●计算机中,CPU的地址线与访问存储器单元范围的关系是什么? 【解】:在计算机中,若CPU的地址线引脚数为N条,则访问存储器单元的数量为2N个,访问存储器单元范围为0~2N-1。 ●8086CPU中指令队列的功能和工作原理? 【解】:8086CPU中指令队列的功能是完成指令的流水线操作。BIU单位经总线从程序存储器中读取指令并放入指令队列缓冲器,EU单元从指令队列缓冲器中获取指令,因EU并未直接从程序存储器中读取指令,而是经指令队列缓冲,使取指和执指能同时操作,提高了CPU的效率。 ●8086CPU的堆栈操作原理? 【解】:8086CPU的堆栈是一段特殊定义的存储区,用于存放CPU堆栈操作时的数据。在执行堆栈操作前,需先定义堆栈段SS、堆栈深度(栈底)和堆栈栈顶指针SP。数据的入栈出栈操作类型均为16位,入栈操作时,栈顶指针值先自动减2(SP=SP-2),然后16位数据从栈顶处入栈;出栈操作时,16位数据先从栈顶处出栈,然后栈顶指针值自动加2(SP=SP+2)。 ●8086CPU的最小和最大工作模式的主要不同点? 【解】:CPU的控制线应用方式不同:在最小工作模式下,计算机系统的所需的控制线由CPU直接提供;在最大工作模式下,CPU仅为计算机系统提供必要的控制线,而系统所需的控制线由专用芯片总线控制器8288产生。计算机系统复杂度不同:在最小工作模式下,计算机系统仅用单处理器(8086)组成,系统结构简单且功能也较小;在最大工作模式下,计算机系统由多处理器组成,除8086CPU外,还有总线控制器8288和协处理器8087。 ●8086CPU中的EU单元,BIU单元的特点? 【解】:8086CPU为实现指令的流水线操作,将CPU分为指令执行单元EU和总线接口单元BIU。EU与一般CPU 的结构基本相同,含运算器ALU、寄存器、控制器和内部总线,但EU不从存储器中直接读取指令。BIU 是8086CPU的总线接口单元,主要功能有两点,第一是经总线从存储器中获得指令和数据,指令送指令队列缓冲器,以便EU从指令队列获取指令;数据经片内数据总线送CPU中的相关寄存器;第二是20位物理地址的形成,8086CPU中所有寄存器均是16位的,BIU中的地址加法器的入端为16位段首地址和16位段内偏移地址,出端为20位的实际地址,20位地址经线完成对存储器单元或I/O端口的访问。 ●什么叫物理地址?什么叫逻辑地址? 【解】:物理地址:完成存储器单元或I/O端口寻址的实际地址称为物理地址,CPU型号不同其物理地址不问,例8080CPU的物理地址16位、8086CPU的物理地址20位、80286CPU的物理地址24位。逻辑地址:物理地址特殊表示方式,例如8086CPU中用16位段首逻辑地址和16位段内偏移逻辑地址表示20位的物理地址。 物理地址是惟一的,而逻辑地址是多样的。 ●8086CPU和8088CPU的主要区别? 【解】:CPU内部的区别:8086的指令队列缓冲器为6字节,8088为4字节;CPU数据总线的区别:8086的数据总线宽度为16位,8088为8位;CPU控制线的区别:因8086可一次进行16位数据的操作,可用控制线/BHE 和地址线A0完成对奇偶存储库的选择,8088一次只能对8位数据的操作,无控制线/BHE的功能。8086与8088比较,存储器和I/0选择控制线的控制电平相反。 ●8086CPU的6个状态标志位的作用是什么? 【解】:6个状态标志位为CF、OF、ZF、SF、AF和PF。CF是无符号数运算时的进位或借位标志,无进位或借位时CF=0,有进位或借位时CF=1;OF为有符号数运算时的溢出标志,无溢出时OF=0,有溢出时OF=1; ZF是两数运算时的值0标志,运算结果不为0,ZF=0,运算结果为0,ZF=1;SF是有符号数运算时运算结果符号的标志,运算结果为正时SF=0,运算结果为负时SF=1;AF是辅助进位标志,若D3位到D4位无进

嵌入式部分课后题答案

嵌入式复习资料 第一章嵌入式系统概述: 1、什么是嵌入式系统?是简单列举一些生活中常见的嵌入式系统的实例。P3 嵌入式系统是用于检测、控制、辅助、操作机械设备的装置。以应用为中心,一计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。 3、是比较嵌入式系统与通用PC的区别。P3 (1)嵌入式系统是专用的计算机系统,而PC是通用的计算机系统。 (2)技术要求不同,通用PC追求高速、海量的数据运算;嵌入式要求对象体系的智能化控制。 (3)发展方向不同,PC追求总线速度的不断提升,存储容量不断扩大;嵌入式追求特定对象系统的智能性,嵌入式,专用性。 4、嵌入式体统有哪些部分组成?简单说明各部分的功能与作用。P6 (1)硬件层是整个核心控制模块(由嵌入式微处理器、存储系统、通信模块、人机接口、其他I/O接口以及电源组成),嵌入式系统的硬件层以嵌入式微处理器为核心,在嵌入式微处理器基础上增加电源电路、时钟电路、和存储器电路(RAM和ROM等),这就构成了一个嵌入式核心控制模块,操作系统和应用程序都可以固化在ROM中。 (2)中间层把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关。一般包括硬件抽象层(Hardware Abstract Layer,HAL)和板级支持包(Board Support Package,BSP)。 (3)软件层由实时操作系统(Real Time Operating System,RTOS)、文件系统、图形用户接口(Graphical User Interfaces,GUI)、网络组件组成。(4)功能层是面向被控对象和用户的,当需要用户操作是往往需要提供一个友好的人际界面。 5、嵌入式系统是怎么分类的?P7 按照嵌入式微处理器的位数分类(4位、8位、16位、32位、64位);按照是实时性分类(硬实时系统式之系统对响应时间有严格的要求;软实时系统是对响应时间有一定要求); 按照嵌入式软件结构分类(循环轮询系统、前后台系统、多任务系统);按照应用领域分类。 6什么是多任务系统?多任务系统的特点些?P9 应用的场合:对于较复杂的嵌入式系统而言,存在许多互不相关的过程需要计算机同时处理,在这种情况下就需要采用多任务系统。 多任务系统的软件是由多个任务、多个中断服务程序以及嵌入式操作系统组成。任务是顺序执行的,并行性通过操作系统完成。 特点:(1)每个任务都是一个无限循环的程序,等待特定的输入,从而机型相应的处理。(2)这种程序模型将系统成分相对简单、相互合作的模块。(3)不同的任务共享同一个CPU和其他硬件,嵌入式操作系统对这些共享资源进行管理。(4)多个顺序机型的任务在宏观上是并行执行的,每个任务都运行在自己独立的CPU上。 第二章嵌入式处理器 1`嵌入式处理器有哪几类?简述各类嵌入式处理器的主要特点和应用领域。P16 嵌入式微控制器、嵌入式微处理器、嵌入式DSP、嵌入式片上系统。(1)嵌入式

嵌入式系统架构发展趋势及比较分析

嵌入式系统架构发展趋势及比较分析 范虎 嵌入式系统已经广泛地应用到当今各个领域,与我们的生活息息相关,小到掌上的数字产品,大到汽车、航天飞机。提到嵌入式系统我们很快会联想到单片机,不错,MCU是最基础和常用的嵌入式系统,但是目前像FPGA、ARM、DSP、MIPS 等其他嵌入式系统应用也越来越广泛。 总的来说,嵌入式系统发展呈现如下特点:·由8位处理向32位过渡·由单核向多核过渡·向网络化功能发展·MCU、FPGA、ARM、DSP等齐头并进·嵌入式操作系统呈多元化趋势,所有的嵌入式处理器都是基于一定的架构的,即IP 核(IntellectualProperty,知识产权),生产处理器的厂家很多,但拥有IP 核的屈指可数。嵌入式系统的架构有专有架构和标准架构之分,在MCU(微控制器)产品上,像瑞萨(Renesas)、飞思卡尔(Freescale)、NEC等都拥有自己的专有IP核,而其他嵌入式处理器都是基于标准架构。 标准的嵌入式系统架构有两大体系,目前占主要地位的是所谓RISC (ReducedInstructionSetComputer,精简指令集计算机)处理器。RISC体系的阵营非常广泛,从ARM、MIPS、PowerPC、ARC、Tensilica等等,都是属于RISC 处理器的范畴。不过这些处理器虽然同样是属于RISC体系,但是在指令集设计与处理单元的结构上都各有不同,因此彼此完全不能兼容,在特定平台上所开发的软件无法直接为另一硬件平台所用,而必须经过重新编译。 其次是CISC(ComplexInstructionSetComputer,复杂指令集计算机)处理器体系,我们所熟知的Intel的X86处理器就属于CISC体系,CISC体系其实是比较低效率的体系,但由于其已经被市场长久验证,稳定性高,故常被应用于效能需求不高,但稳定性要求高的应用中,如工控设备等产品。 下面将简单介绍一下几种比较常见的RISC和CISC嵌入式系统架构。 1、RISC家族之ARM处理器 ARM公司于1991年成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术(IP)核心的处理器,即我们通常所说的ARM处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的处理器应用约占据了32位RISC微处理器75%以上的市场。 目前市面上常见的ARM处理器架构,可分为ARM7、ARM9,ARM11以及Cortex 系列。ARM也是嵌入式处理器中首先推出多核心架构的厂商。ARM首个多核心架构为ARM11MPCore,架构于原先的ARM11处理器核心之上。ARM11采用当时最先进的0.13μm制造制程,运行频率最高可达500到700MHz。如果采用90nm制程,ARM11核心的工作频率能够轻松达到1GHz以上—对于嵌入式处理器来说,这显然是个相当惊人的程度。

相关主题
文本预览
相关文档 最新文档