您的位置 首页 知识

新手福利:ARM常用概念须知

文章罗列了关于ARM的22个常用概念。包括一些使用注意事项,ARM启动代码设计,ARM处理器运行模式,ARM体系结构所支持的异常类型和一些基本操作方法等等

文章罗列了关于ARM的22个常用概念。包含一些运用留意事项,ARM发动代码规划,ARM处理器运转形式,ARM体系结构所支撑的反常类型和一些根本操作方法等等。

1.ARM中一些常见英文缩写解说

MSB:最高有用位;

LSB:最低有用位;

AHB:先进的高功用总线;

VPB:衔接片内外设功用的VLSI外设总线;

EMC:外部存储器操控器;

MAM:存储器加快模块;

VIC:向量间断操控器;

SPI:全双工串行接口;

CAN:操控器局域网,一种串行通讯协议;

PWM:脉宽调制器;

ETM:嵌入式盯梢宏;

CPSR:当时程序状况寄存器;

SPSR:程序维护状况寄存器;

2.MAM 运用留意事项:

答:当改动 MAM 定时值时,有必要先经过向 MAMCR 写入 0 来封闭 MAM,然后将新值写入 MAMTIM.最终,将需求的操作形式的对应值写入MAMCR,再次翻开MAM.

关于低于 20MHz 的体系时钟,MAMTIM 设定为 001.关于 20MHz 到 40MHz 之间的体系时钟,主张将Flash拜访时刻设定为2cclk,而在高于40MHz的体系时钟下,主张运用3cclk.

3.VIC 运用留意事项

答:假如在片内RAM傍边运转代码并且运用程序需求调用间断,那么有必要将间断向量从头映射到Flash地址0x0.这样做是因为一切的反常向量都坐落地址 0x0及以上。经过将寄存器MEMMAP(坐落体系操控模块傍边)装备为用户RAM形式来完结这一点。用户代码被衔接以便使间断向量表装载到0x4000 0000.

4. arm发动代码规划

答:arm发动代码直接面临处理器内核和硬件操控器进行编程,一般运用汇编言语。发动代码一般包含:

间断向量表

初始化存储器体系

初始化仓库初始化有特殊要求的端口、设备

初始化用户程序履行环境

改动处理器形式

呼叫主运用程序

5.IRQ 和 FIQ 之间的差异

答:IRQ和FIQ是arm处理器的两种编程形式。IRQ是指间断形式,FIR是指快速间断形式。关于 FIQ 你有必要赶快处理你的作业并脱离这个形式。IRQ 能够被 FIQ 所间断,但 IRQ 不能间断 FIQ.为了使 FIQ 更快,所以这种形式有更多的影子寄存器。FIQ 不能调用 SWI(软件间断)。FIQ 还有必要禁用间断。假如一个 FIQ 例程有必要从头启用间断,则它太慢了,并应该是 IRQ 而不是 FIQ.

6.arm处理器对反常间断的呼应进程

答:arm处理器对反常间断的呼应进程如下所述:

保存处理器当时状况、间断屏蔽位以及各条件标志位;

设置当时程序状况寄存器CPSR中的相应位;

将寄存器lr_mode设置成回来地址;

将程序计数器值PC,设置成该反常间断的间断向量地址,跳转到相应反常间断处履行。

7.arm指令与Thumb指令的差异

答:在ARM体系结构中,ARM指令会集的指令是32位的指令,其履行功率很高。关于存储体系数据总线为16位的运用体系,ARM体系供给了Thumb指令集。Thumb指令集是对ARM指令集的一个子集从头编码得到的,指令长度为16位。一般在处理器履行ARM程序时,称处理器处于ARM状况;当处理器履行Thumb程序时,称处理器处于Thumb状况。Thumb指令集并没有改动arm体系地层的程序规划模型,只是在该模型上加上了一些约束条件。Thumb指令会集的数据处理指令的操作数依然为32位,指令寻址地址也是32位的。

8.什么是ATPCS

答:为了使独自编译的C言语程序和汇编程序之间能够彼此调用,有必要为子程序之间的调用规矩必定的规矩。ATPCS便是arm程序和Thumb程序中子程序调用的根本规矩。这些规矩包含寄存器运用规矩,数据栈的运用规矩,参数的传递规矩等。

9.arm程序和Thumb程序混合运用的场合

答:一般,Thumb程序比ARM程序愈加紧凑,并且关于内存为8位或16位的体系,运用Thumb程序功率更高。可是,在下面一些场合下,程序有必要运转在ARM状况,这时就需求混合运用arm和Thumb程序。

着重速度的场合,应该运用arm程序;

有些功用只能由arm程序完结。如:运用或许制止反常间断;

当处理器进入反常间断处理程序时,程序状况切换到ARM状况,即在反常间断处理程序进口的一些指令是ARM指令,然后根据需求程序能够切换到Thumb状况,在反常间断程序回来前,程序再切换到arm状况。

ARM处理器总是从ARM状况开端履行。因此,假如要在调试器中运转Thumb程序,有必要为该Thumb程序增加一个arm程序头,然后再切换到Thumb状况,履行Thumb程序。

10.arm处理器运转形式

答:arm微处理器支撑7种运转形式,分别为:

用户形式(usr):arm处理器正常的程序履行状况;

快速间断形式(fiq):用于高速数据传输或通道办理;

外部间断形式(irq):用于通用的间断处理;

办理形式(svc):操作体系运用的维护形式;

数据拜访停止形式(abt):当数据或指令预取停止时进入该形式,用于虚拟存储及存储维护;

体系形式(sys):运转具有特权的操作体系使命;

未界说指令间断形式(und):当未界说指令履行时进入该形式,可用于支撑硬件协处理器的软件仿真。

11.arm体系结构所支撑的反常类型

答:arm体系结构所支撑的反常和详细意义如下(圈里面的数字表明优先级):

复位①:当处理器的复位电平有用时,发生复位反常,程序跳转到复位反常处履行(反常向量:0x0000,0000);

未界说指令⑥:当arm处理器或协处理器遇到不能处理的指令时,发生为界说反常。可运用该反常机制进行软件仿真(反常向量:0x0000,0004);

软件间断⑥:有履行SWI指令发生,可用于用户形式下程序调用特权操作指令。可运用该反常机制完结体系功用调用(反常向量:0x0000,0008);

指令预取间断⑤:若处理器的预取指令的地址不存在,或该地址不答应当时指令拜访,存储器会向处理器宣布间断信号,当预取指令被履行时,才会发生指令预取间断反常(反常向量:0x0000,000C);

数据间断②:若处理器数据拜访的指令的地址不存在,或该地址不答应当时指令拜访,发生数据间断反常(反常向量:0x0000,0010);

IRQ④(外部间断恳求):当处理器的外部间断恳求引脚有用,且CPSR中的I位为0时,发生IRQ反常。体系的外设能够该反常恳求间断服务(反常向量:0x0000,0018);

FIQ③(快速间断恳求):当处理器的快速间断恳求引脚有用,且CPSR中的F位为0时,发生FIQ反常(反常向量:0x0000,001C)。

阐明:其间反常向量0x0000,0014为保存的反常向量。

12.arm体系结构的存储器格局

答:arm体系结构的存储器格局有如下两种:

大端格局:字数据的高字节存储在低地址中,字数据的低字节寄存在高地址中;

小端格局:与大端存储格局相反,高地址寄存数据的高字节,低地址寄存数据的低字节。

13.arm寄存器总结:

arm有16个32位的寄存器(r0到r15)。

r15充任程序寄存器PC,r14(link register)存储子程序的回来地址,r13存储的是仓库地址。

arm有一个当时程序状况寄存器:CPSR.

一些寄存器(r13,r14)在反常发生时会发生新的instances,比方IRQ处理器形式,这时处理器运用r13_irq和r14_irq

arm的子程序调用是很快的,因为子程序的回来地址不需求寄存在仓库中。

14.存储器从头映射(Remap)的原因:

使Flash存储器中的FIQ处理程序不用考虑因为从头映射所导致的存储器鸿沟问题;用来处理代码空间中段鸿沟裁定的SRAM和Boot Block向量的运用大大削减;

为超越单字搬运指令规模的跳转供给空间来保存常量。

arm中的重映射是指在程序履行进程中经过写某个功用寄存器位操作到达从头分配其存储器地址空间的映射。一个典型的运用便是运用程序存储在Flash/ROM中,初始这些存储器地址是从0开端的,但这些存储器的读时刻比SRAM/DRAM长,形成其内部履行频率不高,故一般在前面一段程序将代码搬移到SRAM /DRAM中去,然后从头映射存储器空间,将相应SRAM/DRAM映射到地址0,从头履行程序可到达高速运转的意图。

15.存储反常向量表中程序跳转运用LDR指令,而不运用B指令的原因:

LDR指令能够全地址规模跳转,而B指令只能在前后32MB规模内跳转;

芯片具有Remap功用。当向量表坐落内部RAM或外部存储器中,用B指令不能跳转到正确的方位。

16.锁相环(PLL)留意关键:

PLL在芯片复位或进入掉电形式时被封闭并旁路,在掉电唤醒后不会主动康复PLL的设定;

PLL只能经过软件使能;

PLL在激活后有必要等候其确定,然后才干衔接;

PLL假如设置不妥将会导致芯片的错误操作。

17.ARM7与arm9的差异:

ARM7内核是0.9MIPS/MHz的三级流水线和冯S226;诺伊曼结构;arm9内核是五级流水线,供给1.1MIPS/MHz的哈佛结构。

ARM7没有MMU,ARM720T是MMU的;ARM9是有MMU的,arm940T只要Memory protection unit.不是一个完好的MMU.

ARM7TDMI供给了非常好的功用——功耗比。它包含了Thumb指令集快速乘法指令和ICE调试技能的内核。ARM9的时钟频率比arm7更高,选用哈佛结构区分了数据总线和指令总线。

18.VIC的根本操作如下:

答:设置IRQ/FIQ间断,若是IRQ间断则能够设置为向量间断并分配间断优先级,不然为非向量IRQ.然后能够设置间断答应,以及向量间断对应地址或非向量间断默许地址。当有间断后,若是IRQ间断,则能够读取向量地址寄存器,然后跳转到相应的代码。当要退出间断时,对向量地址寄存器写0,告诉VIC 间断完毕。当发生间断时,处理器将会切换处理器形式,一起相关的寄存器也将会映射。

19.运用外部间断留意

把某个引脚设置为外部间断功用后,该引脚为输入形式,因为没有内部上拉电阻,所以有必要外接一个上拉电阻,保证引脚不被悬空;

除了引脚衔接模块的设置,还需求设置VIC模块,才干发生外部间断,不然外部间断只能反映在EXTINT寄存器中;

要使器材进入掉电形式并经过外部间断唤醒,软件应该正确设置引脚的外部间断功用,再进入掉电形式。

20.UART0的根本操作方法

设置I/O衔接到UART0;

设置串口波特率(U0DLM、U0DLL);

设置串口作业形式(U0LCR、U0FCR);

发送或接纳数据(U0THR、U0RBR);

查看串口状况字或等候串口间断(U0LSR)。

21.I2C的根本操作方法

答:I2C主机根本操作方法:

设置I2C管脚衔接;

设置I2C时钟速率(I2SCLH、I2SCLL);

设置为主机,并发送起始信号(I2CONSET的I2EN、STA位为1,AA位为0);

发送从机地址(I2DAT),操控I2CONSET发送;

判别总线状况(I2STAT),进行数据传输操控;

发送完毕信号(I2CONSET)。

I2C从机根本操作方法:

设置I2C管脚衔接;

设置本身的从机地址(I2ADR);

使能I2C(I2CONSET的I2EN、AA位为1);

判别SI位或等候I2C间断,等候主机操作;

判别总线状况I2STAT,进行数据传输操控。

22.PWM根本操作方法:

衔接PWM功用管脚输出,即设置PINSEL0、PINSEL1;

设置PWM定时器的时钟分频值(PWMPR),得到所要的定时器时钟;

设置比较匹配操控(PWMMCR),并设置相应比较值(PWMMRx);

设置PWM输出方法并答应PWM输出(PWMPCR)及锁存使能操控(PWMLER);

设置PWMTCR,发动定时器,使能PWM;

运转进程中要更改比较值时,更改之后要设置锁存使能。

运用双边缘PWM输出时,主张运用PWM2、PWM4、PWM6;运用单边PWM输出时,在PWM周期开端时为高电平,匹配后为低电平,运用PWMMR0作为PWM周期操控,PWMMRx作为占空比操控。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/139804.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部