历史上的今天
返回首页

历史上的今天

今天是:2025年03月25日(星期二)

正在发生

2021年03月25日 | ARM常用的22个概念!

2021-03-25 来源:eefocus

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启动代码直接面对处理器内核和硬件控制器进行编程,一般使用汇编语言。启动代码一般包括:


中断向量表


初始化存储器系统


初始化堆栈初始化有特殊要求的端口、设备


初始化用户程序执行环境


改变处理器模式


呼叫主应用程序


想要学习这一块的盆友可以向xyd118118了解.线下免费试听课程资格等你来领取


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作为占空比控制。


推荐阅读

史海拾趣

ETA Electric Industry Co Ltd公司的发展小趣事

进入新世纪,ETA Electric Industry Co Ltd意识到技术创新是企业发展的关键。于是,公司开始加大研发投入,引进了一批高素质的研发人员。他们专注于开发新型电子元器件,特别是在微型化、高性能方面取得了显著成果。其中,他们研发的一种新型微型电容器,因其体积小、性能稳定而广受好评。这一技术创新不仅提升了公司的市场竞争力,还为公司赢得了更多的合作机会。

宜源科技(ETERNAL)公司的发展小趣事

随着国内市场的饱和,宜源科技公司积极寻求海外市场的发展机会。公司加强与国际知名企业的合作,共同开发新产品,拓展市场份额。同时,宜源科技还积极参加国际展会和论坛,提升品牌知名度和影响力。通过不懈的努力,宜源科技的产品已经成功进入多个国家和地区,实现了国际化发展。

Chauvin Arnoux公司的发展小趣事

到了1960年,Chauvin Arnoux推出了Monoc测试仪,这是一种带有旋转开关和统一测量刻度的测量仪器。Monoc测试仪以其简洁、直观的操作界面和精确的测量能力,迅速成为电工行业的首选测量工具。这一产品的普及,进一步巩固了Chauvin Arnoux在电气测量领域的领导地位。

Hamamatsu公司的发展小趣事

在1982年,Chauvin Arnoux发明了CONPA系列万用表,这款万用表具有多种适配器扩展功能,可适应不同的测量需求。通过适配器,CONPA万用表可以转变为照度计、声压计、热风速计等多种测量工具,为用户提供了更为灵活和便捷的测量方案。这一创新不仅展示了Chauvin Arnoux在测量技术上的深厚实力,也满足了用户对于多功能测量工具的需求。

这些故事展示了Chauvin Arnoux在电子行业发展的历程中,不断创新和进步的精神。通过不断推出具有创新性和实用性的测量仪器,Chauvin Arnoux在电气测量和工业应用领域取得了卓越的成就,为全球用户提供了高质量的测量解决方案。

请注意,以上内容基于我所了解到的Chauvin Arnoux公司的历史和发展情况,可能并不完全包含所有重要的故事和细节。如果需要更详细和全面的信息,建议查阅公司的官方资料或相关历史文献。

General Electric Company公司的发展小趣事
可能是由于温度变化或元件老化引起的。解决方案是选择低温漂元件、加强散热措施并定期校准电路。
Burr-Brown公司的发展小趣事

随着公司规模的扩大,Burr-Brown开始寻求海外市场的发展。1961年,公司首次进入国际市场,开启了全球化的发展道路。十年后,英国子公司的设立进一步巩固了公司在欧洲的市场地位。四年后,日本分公司的创建则标志着Burr-Brown在亚洲市场的深入拓展。到1979年,公司的销售额已经有50%来自于美国以外的国家,显示出其强大的国际竞争力。

问答坊 | AI 解惑

在WINCE下图片被撕裂的问题?请高手看一下代码。

我在WINCE下用DDRAW做UI,发现图片有时被撕裂了。现在我想用三缓冲的方法去做,希望能解决这个问题。可是我怎么做好像都不成功。下面是代码。还请高手看一下。 LPDIRECTDRAW4               g_ ...…

查看全部问答>

求助:大家好,我是个新新手,想请教SIM300C无线数传的问题。

大家好! 我刚刚接触SIM300C,单片机通过串口连接SIM300C,要实现数据传输应该怎样设置SIM300C?哪位专家能否给我一个设置流程,万分感谢!…

查看全部问答>

作嵌入式驱动程序,现在想转硬件设计,不知道好不好转啊

一直在作音视频驱动,总是在和硬件打交道。感觉还是硬件那边稳定,不用再学好多乱七八糟得编程语言。 python,jsp,vbscript,C#,。。。 硬件那边只要把电路搞得很通就行了。爽啊。…

查看全部问答>

图象传感器的应用

1、CMOS图象传感器是否直接可以用AVR单片机来进行采集像素数据 2、目前的摄像头,大多用DSP和FPGA做的,能否用低端的8BIT的潜入式单片机来做,如果有请专家们提供设计参考,感激不尽 3、怎样调节采集像素的速率,目前我们所用的MCU速度较慢,是否 ...…

查看全部问答>

LDO没有输出电容

New LDO Offers High Speed Performance without Output Capacitor The new XC6503 series from Torex, integrates internal phase compensation circuitry, removing the need for expensive output capacitors and dramatically ...…

查看全部问答>

好消息,TI M3的9D96终于正式推出了

昨天才出的,英文网站已经更新,中文网站还要等几天http://focus.ti.com/docs/toolsw/folders/print/dk-lm3s9d96.html?HQS=mcu_firestorm_110724&DCMP=mytinwsltr_07_25_2011&sp_rid_pod3=LTc5NzAyMjkzOAS2&sp_mid_pod3=495039…

查看全部问答>

msp430f5438测频率成功,能测60K一下频率,误差50HZ以内!

#include #include \"LCD_12864.h\" #include \"CLOCK.h\" unsigned int end,start; unsigned char overflow; unsigned long fre; int main( void ) {   // Stop watchdog timer to prevent time out reset   WDTCTL ...…

查看全部问答>

Altium 10作出来的lm3s下载器,漂亮!

atlium 作出来的lm3s下载器,漂亮!   不多说,上传图片!   [ 本帖最后由 paulhyde 于 2012-5-17 10:20 编辑 ]…

查看全部问答>

请教下关于ti官方代理商那里购买芯片要注意什么?

从公司原来的深圳提供芯片那里询了下价,比ti官方价格*汇率要高不少啊。。不知道官方代理会怎么样。。 从ti官网看的k片参考价格。正式去代理商那里下单 k片购买有问题吗?会要加钱吗?没货怎么办? 请教下关于ti官方代理商那里购买芯片要注意什么 ...…

查看全部问答>