ARM7和ARM-Cortex的区别,ARM为什么会有两种启动方式?.doc

上传人:白大夫 文档编号:3249679 上传时间:2019-08-06 格式:DOC 页数:3 大小:16.50KB
返回 下载 相关 举报
ARM7和ARM-Cortex的区别,ARM为什么会有两种启动方式?.doc_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《ARM7和ARM-Cortex的区别,ARM为什么会有两种启动方式?.doc》由会员分享,可在线阅读,更多相关《ARM7和ARM-Cortex的区别,ARM为什么会有两种启动方式?.doc(3页珍藏版)》请在三一文库上搜索。

1、ARM7和ARM-Cortex的区别,ARM为什么会有两种启动方式?ARM为什么会有两种启动方式?ARM7和ARM-Cortex区别在哪?快速中断和中断是怎么回事?ARM的两种启动方式 (NAND FLASH. NOR FLASH)为什么会有两种启动方式?这主要是由两种FLASH 的不同特点决定的。NAND FLASH 容量大,存储的单位比特数据的成本要低很多,但是要按照特定的时序对NAND FLASH 进行读写,因此CPU 无法对NAND FLASH 的数据进行直接寻址,CPU 对NAND FLASH 中数据的读写是通过专门的 nand flash控制器进行的,因此 NAND FLASH 更

2、适合于存储数据。NOR FLASH 容量小,速度快,对NOR FLASH 进行读写时,输入地址,然后给出读写信号即可从数据总线上得到数据,但是价格要比NAND FLASH 高因此适合做程序存储器。综上所述,NOR FLASH 可以直接连接到arm 的总线上,但是DAND FLASH 需要通过NAND FLASH 控制器与S3S2440相连接。ARM7和ARM-Cortex的区别ARM7:ARMv4架构,ARM9:ARMv5架构,ARM11:ARMv6架构,ARM-Cortex 系列:ARMv7架构。ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinC

3、E等这些现代的多用户多进程操作系统,因为运行这些系统需要MMU,才能给每个用户进程分配进程自己独立的地址空间。ucOS、ucLinux这些精简实时的RTOS不需要MMU,当然可以在ARM7上运行。ARM9、ARM11,是嵌入式CPU(处理器),带有MMU,可以运行诸如Linux等多用户多进程的操作系统,应用场合也不同于ARM7。到了ARMv7架构的时候开始以Cortex来命名,并分成Cortex-A、Cortex-R、Cortex-M三个系列。三大系列分工明确:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。简单的说Cortex-A系列是用于

4、移动领域的CPU,Cortex-R和Cortex-M系列是用于实时控制领域的MCU。所以看上去ARM7跟Cortex-M很像,因为他们都是MCU,但确是不同代不同架构的MCU(Cortex-M比ARM7高了三代!),所以性能也有很大的差距。此外,Cortex-M系列还细分为M0、M3、M4和超低功耗的M0+,用户依据成本、性能、功耗等因素来选择芯片。想必现在肯定知道了ARM7、Cortex-M的区别,不过小编还是花了点时间整理在此,可以帮助后来的初学者搞明白这些基本的概念性问题。ARM 之FIQ(快速中断) IRQ(中断)IRQ,FIQ定义: 这就是个普通中断,当我们程序定义了该中断,并且在程

5、序运行的时候产生了IRQ中断,则此时的芯片是这样运行的-中断处理器吧利用IRQ请求线来高速ARM,ARM就知道有个IRQ中断来了,然后ARM切换到IRQ模式运行。类似的如果该中断设置为FIQ,那么当该中断产生的时候,中断处理器通过FIQ请求线告诉ARM,ARM就知道有个FIQ中断来了,然后切换到FIQ模式运行。那么问题来啦,为何要有这两个中断,或者说为何分成这两种中断?原因很简单,速度不同,FIQ 也就是快速中断的速度快,那么问题又来了,为何就FIQ速度快?原因:1:ARM的FIQ模式提供了更多的banked寄存器,r8到r14还有SPSR,而IRQ模式就没有那么多,R8,R9,R10,R11

6、,R12对应的banked的寄存器就没有,这就意味着在ARM的IRQ模式下,中断处理程序自己要保存R8到R12这几个寄存器,然后退出中断处理时程序要恢复这几个寄存器,而FIQ模式由于这几个寄存器都有banked寄存器,模式切换时CPU自动保存这些值到banked寄存器,退出FIQ模式时自动恢复,所以这个过程FIQ比IRQ快.不要小看这几个寄存器,ARM在编译的时候,如果你FIQ中断处理程序足够用这几个独立的寄存器来运作,它就不会进行通用寄存器的压栈,这样也省了一些时间。2:FIQ比IRQ有更高优先级,如果FIQ和IRQ同时产生,那么FIQ先处理。3:在symbian系统里,当CPU处于FIQ模

7、式处理FIQ中断的过程中,预取指令异常,未定义指令异常,软件中断全被禁止,所有的中断被屏蔽。所以FIQ就会很快执行,不会被其他异常或者中断打断,所以它又比IRQ快了。而IRQ不一样,当ARM处理IRQ模式处理IRQ中断时,如果来了一个FIQ中断请求,那正在执行的IRQ中断处理程序会被抢断,ARM切换到FIQ模式去执行这个FIQ,所以FIQ比IRQ快多了。4:另外FIQ的入口地址是0x1c,IRQ的入口地址是0x18。写过完整汇编系统的都比较明白这点的差别,18只能放一条指令,为了不与1C处的FIQ冲突,这个地方只能跳转,而FIQ不一样,1C以后没有任何中断向量表了,这样可以直接在1C处放FIQ的中断处理程序,由于跳转的范围限制,至少少了一条跳转指令。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1