0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Q4MP_gh_c472c21 来源:未知 作者:李倩 2018-10-27 11:20 次阅读

ARM为什么会有两种启动方式?ARM7和ARM-Cortex区别在哪?快速中断和中断是怎么回事?

ARM的两种启动方式 (NAND FLASH. NOR FLASH)为什么会有两种启动方式?

这主要是由两种FLASH 的不同特点决定的。

NAND FLASH 容量大,存储的单位比特数据的成本要低很多,但是要按照特定的时序对NAND FLASH 进行读写,因此CPU 无法对NAND FLASH 的数据进行直接寻址,CPU 对NAND FLASH 中数据的读写是通过专门的 nand flash控制器进行的,因此 NAND FLASH 更适合于存储数据。

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、WinCE等这些现代的多用户多进程操作系统,因为运行这些系统需要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系列是用于移动领域的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定义: 这就是个普通中断,当我们程序定义了该中断,并且在程序运行的时候产生了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,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模式处理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的中断处理程序,由于跳转的范围限制,至少少了一条跳转指令。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8643

    浏览量

    361648
  • 控制器
    +关注

    关注

    112

    文章

    15154

    浏览量

    170946
  • 寄存器
    +关注

    关注

    30

    文章

    5020

    浏览量

    117628

原文标题:ARM为什么会有两种启动方式?ARM7和ARM-Cortex区别在哪?快速中断和中断是怎么回事?

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ARM V7ARM7

    请问ARM7和ARMv7有何区别
    发表于 06-26 03:15

    ARMcortex区别

    弱弱询问下,ARM7ARM9,cortex-m3,cortex-m4,cortex-a8的区别
    发表于 07-01 23:02

    ARM7你们都还使用吗

    1.本人公司产品ARM7内核的LPC2000系列的, 除了周立功05年的几本书和教材以外,难道就没有相关资料了吗?网上铺天盖地ARM9+LINUX,我需要的是ARM7+UCOS//II系列的教材案例或开发板来学习,有知道的推荐下
    发表于 04-23 09:22

    ARM7ARM9、ARM11、ARM-Cortex有何关系

    1. ARM7ARM9、ARM11、ARM-Cortex的关系 ARM7:ARMv4架构,ARM
    发表于 07-01 07:29

    ARM7ARM9、ARM11、ARM-Cortex有什么关系?

    ARM7ARM9、ARM11、ARM-Cortex有什么关系?ARM7ARM9,
    发表于 07-01 07:50

    ARM Cortex三个系列相关资料下载

    :ARMv4 架构ARM9:ARMv5 架构ARM11:ARMv6 架构ARM-Cortex 系列:ARMv7架构ARM7没有MMU(内存管
    发表于 07-01 07:38

    ARM7ARM9、ARM11、ARM-Cortex的关系及形象

    ARM7:ARMv4架构,ARM9:ARMv5架构,ARM11:ARMv6架构,ARM-Cortex 系列:ARMv7架构
    发表于 07-01 07:50

    ARM7/ARM9内核的控制器复位

    相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较
    发表于 08-20 06:32

    ARM7ARM9、cortex-m3、cortex-m4与cortex-a8的区别在哪

    ARM7ARM9、ARM11与ARM-Cortex有何关系?ARM7ARM9、
    发表于 10-21 06:27

    请问arm7arm9在应用上的区别

    请问arm7arm9在应用上的区别
    发表于 10-25 06:01

    请问ARM7/ARM9/ARM11/ARM-Cortex之间是什么关系?

    请问ARM7/ARM9/ARM11/ARM-Cortex之间是什么关系?
    发表于 10-25 06:15

    ARM Cortex-M3嵌入式内核与ARM7区别在哪

    的。Cortex-M3还集成了睡眠模式和可选的完整的八区域存储器保护单元。它采用THUMB-2指令集,最大限度降低了汇编器使用率。  3.指令集   ARM7可以使用ARM 和Thumb 两种
    发表于 04-13 10:44

    ARM7Cortex-M3比较

    比较项目 ARM7 Cortex-M3
    发表于 06-07 18:03 2572次阅读

    ARM7在嵌入式应用中启动

    ARM7在嵌入式应用中启动程序的实现,有需要的下来看看。
    发表于 01-13 17:23 11次下载

    选择ARM处理器,ARM7还是Cortex-M3

    要使用低成本的32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了ARM
    发表于 12-04 14:22 442次阅读