<meta name="keywords" content="庄家克星时时彩,关于ARM的22个看法让你飞速上手" />
检查: 2496|回复: 0
打印 上一主题 下一主题

关于ARM的22个看法让你飞速上手 [复制链接]

xyd2018 (离线)
积分
1499
帖子
300
跳转到指定楼层
楼主
揭晓于 2019-3-15 10:32:27 |只看该作者 |倒序浏览
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基本操作措施以下:

毗连PWM功效管脚输入,即设置PINSEL0、PINSEL1;

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

设置较量婚配控制(PWMMCR),并设置照顾较量值(PWMMRx);

设置PWM输入要领并允许PWM输入(PWMPCR)及锁存使能控制(PWMLER);

设置PWMTCR,启动准时器,使能PWM;

运转历程当中要更改较量值时,更改以后要设置锁存使能。

应用双边缘PWM输入时,建议应用PWM2、PWM4、PWM6;应用单边PWM输入时,在PWM周期泉源时为高电平,婚配后为低电平,应用PWMMR0作为PWM周期控制,PWMMRx作为占空比控制。


信盈达靠手艺打天下
以下课程可收费试听C语言、电子PCBSTM32LinuxFPGA、JAVA、安卓等。
想学习的你和我联系预定便可以收费听课了。
宋工企鹅号:35--24-65--90-88   Tel/WX:173--17--95--19--08



您须要登录后才可以揭晓议论 登录 | 急速注册

关于我们  -  服务条目  -  应用指南  -  站点舆图  -  友谊链接  -  联系我们
庄家克星时时彩-时时彩qq群-时时彩平台推荐 © 版权一切   | 京公网安备110108881021702
回顶部