嵌入式系统

发布 2022-10-21 05:21:28 阅读 2544

一。arm处理器有什么特点?

arm处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。

1、体积小、低功耗、低成本、高性能;

2、支持thumb(16位)/arm(32位)双指令集,能很好的兼容8位/16位器件;

3、大量使用寄存器,指令执行速度更快;

4、大多数数据操作都在寄存器中完成;

5、寻址方式灵活简单,执行效率高;

6、指令长度固定。

二。arm的那个寄存器作为pc使用?哪个作为lr使用。

arm的寄存器,全部共有37个32位长的寄存器。但arm核心同时最多只可以有18个同时执行的寄存器:包含了16个通用寄存器和2个状态寄存器,16个通用寄存器中包含了3个专用寄存器,r13、r14和r15。

r13 用作堆栈指针 sp

r15用做程序计数器pc,r14用做子程序链接寄存器lr。

有几种运行模式?那些具有特权?如何改变处理器的模式?

arm有7中工作模式:用户模式、快速中断模式、外部中断模式、管理模式、数据访问中止模式、未定义指令中止模式、系统模式。

除了用户模式以外,其余所有6种模式称之为特权模式,权限比用户模式高,其中特权模式中除去系统模式外的5种模式称之为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。

处理器模式可以通过控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能访问一些受操作系统保护的系统,应用程序也不能直接进行处理器模式切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。

有几种异常?其异常处理方式和x86有什么不同?

1)复位(reset)异常(管理模式);

2)未定义指令(undefinedinstruction)异常(未定义模式);

3)软件中断(swi)异常(管理模式);

4)指令预取中止(prefechabort)异常(中止模式);

5)数据访问中止(dataabort)(中止模式);

6)快速中断请求(fiq)(fiq模式);

7)外部中断请求(irq)(irq模式)。

机制一样:申请中断、相应中断、中断处理、中断返回。

由于硬件不一样,细节上有很大区别,比如arm的中断向量表:

arm:vectors ldr pc, reset_addr0x00000000复位。

ldr pc, undef_addr ;0x00000004未定义异常。

ldr pc, swi_addr ;0x00000008软件中断。

ldr pc, pabt_addr ;0x0000000c预取指中止。

ldr pc, dabt_addr ;0x00000010数据中止。

nop0x00000014保留 ;

ldr pc, irq_addr

ldr pc, [pc, #-0x0ff0] ;0x00000018中断。

ldr pc, fiq_addr ;0x0000001c快速中断。

x86:偏移量与段地址结合的方式。

5.试比较arm和x86的i/o寻址方式有什么不同?

arm:立即数寻址:操作数本身直接在指令中给出,取出指令也就获得了操作数,这个操作数也是称为立即数。

寄存器的值为操作数。arm指令普遍采用此种寻址方式。

寄存器偏移寻址:寄存器偏移寻址是arm指令集特有的寻址方式。当第二作数是寄存器偏移方式时,第二寄存器操作数在与第一操作数结合之前,选择进行移位操作。

寄存器寻址:第二操作数的移位位数可以用立即数方式或者寄存器方式给出。

寄存器间接寻址:寄存器中的值为操作数的物理地址,而实际的操作数存放在存储器中。

基址加偏址寻址:将寄存器的值与指令中给出的偏移地址址量相加,所得结果作为操作数的物理地址。

堆栈寻址:堆栈寻址用于数据栈与寄存器组之间批量数据传输。当数据写好和读出内存的顺序不同时,使用堆栈寻址可以很好的解决这个问题。

x86:立即数寻址:操作数包含在指令中,它作为指令的一部分,跟在操作码后存放在**段。

寄存器寻址:操作数存放在cup的内部寄存器中。

直接寻址方式:操作数的存储器中,指令中直接包含有操作数的有效地址,默认的段地址在ds段寄存器。

寄存器间接寻址:操作数在存储器中,操作数的有效地址在基址寄存器bx、bp或变址寄存器si、di中。可使用段超越前缀改变 。

寄存器相对寻址:操作数在存储器中,操作数有效地址是一个基址寄存器bx、bp或变址寄存器si、di的内容加上指令中给出的位置量之和。

相对基址变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器的内容与变址寄存器的内容及指令中位置量相加得到,可用段超越前缀改变。

6.若允许fiq和irq中断,cpsr应该如何处置?

当允许irq中断时,cpsr【7】=0即cpsr的i位置为0.当允许fiq中断时,cpsr【6】=0即cpsr的f位为0。

如果2个中断同时发生时,由于fiq拥有最高中断优先级,而irq只有中等中断优先级,所以先执行fiq中断(cpsr【7】=0),当中断结束后再执行irq中断(cpsr【6】=0)

fiq: cpsr[4:0]=0b10001 //进入fiq模式。

irq: cpsr[4:0]=0b10010 //进入irq模式。

cpsr[5]=0在arm状态执行。

cpsr[6]=0允许fiq中断。

cpsr[7]=0允许irq中断。

7.什么是arm的e变种?

e变种增加一些附加指令用于增强处理器对一些典型的dsp算法的处理性能,主要包括以下指令。

·几条新的实现16位数据乘法和乘加操作的指令。

·实现饱和的带符号数的加减法操作的指令。

进行双字数据操作的指令,包括双字读取指令ldrd,双字写入指令strd和协处理器的寄存器传输指令mcrr/mrrc。

cache予取指令pld。

e变种首先在arm体系结构版本5t中使用,用字符e表示。在arm体系结构版本5以前的版本中,以及在非m变种和非t变种的版本中,e是无效的。

的哪一种(或几种)模式使用的寄存器最少,使用的是哪些寄存器?

由上图可知用户模式和系统模式使用的寄存器最少,使用的有31个通用寄存器和一个状态寄存器,分别是:未分组寄存器r0~r7;分组寄存器r8~r14;程序计数器r15;状态寄存器cpsr

通常用来存储什么?

通常用来作为堆栈指针。

1.举例说明arm的各种寻址方式(p61)

答:1、立即寻址add r0,r0,#

2、寄存器寻址: add r0,r1,r2

3、寄存器间接寻址: ler r0,[r1]

4、寄存器移位寻址: add r3,r2,r1,lsl #

5、基址变址寻址: ldr r0,[r1,#

6、多寄存器寻址: ldmia r0,7、堆栈寻址ldmfd r13!,8、拷贝寻址ldmia r0!,9、相对寻址bl next

next:mov pc,lr

和r1中有两个32位数,若r0>r1,则r0=r0-r1;若r0(1)请用cmp、b和sub指令完成上述操作。

答: cmp r0,r1

blt less

brt more

less:sub r1,r1,r0

b eqmore:

sub r0,r0,r1

b eqeq:end或。

area strcopy,code, readonly ;程序起始定义。

entry第一条指令的标识符。

startmov r0,#

mov r1,#

cmp r0,r1

blt less

bgt more

b stop

less sub r1,r1,r0

b stop

more sub r0,r0,r1

stopend

2)请用条件sub指令完成上述操作。

答: cmp r0,r1

subgt r0,r0,r1

sublt r1,r1,r0

或。area strcopy, code, readonly

entrystart

mov r0,#

mov r1,#

cmp r0,r1

sublt r1,r1,r0

subgt r0,r0,r1

stopend

3、用指令实现以下功能。

答:(1)r0=16

mov r0,#

2)r1=r0 x 4

mul r1,r0,#

3)r0=r1/16

lsr r0,r1,#

或mov r0,r1,lsr#

4)r1=r2 x 7

mul r1,r2,#

4、说明以下指令功能

答:(1)、adds r0,r1,r1,lsl#

将r1加上4倍的r1赋值给r0。 或r0=r1+r1*4;并根据运算结果更新标志位。

2)、rsb r2,r1,#

r2=0-r1,即将r1求反赋值给r2

5、下列指令序列完成什么功能?

答:(1)add r0,r1,r1,,lsl #

将r1加上左移一位后的r1并将结果赋值给r0。

(r0=r1+r1*2)

2)sub r0,r0,r1,lsl #

将r0减去左移一位后的r1并将结果赋值给r0。

嵌入式ARM嵌入式系统设计

摘要 本系统设计了基于arm系统的嵌入式硬件平台,其中主要介绍了系统母版的具体电路实现,其硬件电路已经通过了信号完整性分析。中国 网 关键词 arm 嵌入式系统 中图分类号 tp368.1 文献标识码 a 文章编号 1007 9416 2012 12 0104 01 1 序言 本系统是设计一款基于a...

嵌入式系统

期末作业考核。满分100分。一 判断题 每题3分,共30分 1.嵌入式系统中的软件系统主要由嵌入式操作系统和应用软件组成,其中嵌入式微处理器属于嵌入式软件系统的核心。答 错。2.运行在智能手机或平板电脑中的android系统是一种嵌入式操作系统。答 对。3.windriver公司所提供的软件开发包是...

嵌入式系统

关于嵌入式系统 献给热爱此道的初学者们前言。网上看到众多网友都问了关于嵌入式系统方面的很多问题,很多都可在这里找到答案,希望我的这篇文章能给他们以启发。也请大家不要轻易 一 嵌入式系统的概念。着重理解 嵌入 的概念。主要从三个方面上来理解。1 从硬件上,将基于cpu的处围器件,整合到cpu芯片内部,...