Cortex-A7 MPCore简单介绍

1.简介

  在 28nm 工艺下, Cortex-A7 可以运行在 1.2~1.6GHz,并且单核面积不大于 0.45mm2(含有浮点单元、 NEON 和 32KB 的 L1 缓存),在典型场景下功耗小于 100mW, 这使得它非常适合对功耗要求严格的移动设备,这意味着 Cortex-A7 在获得与 Cortex-A9 相似性能的情况下,其功耗更低。
   Cortex-A7 MPCore 支持在一个处理器上选配 1~4 个内核, Cortex-A7 MPCore 多核配置如图所示:
在这里插入图片描述

2.Cortex-A处理器运行模型

  Cortex-A7处理器有9种处理模式:
在这里插入图片描述  除了 User(USR)用户模式以外,其它 8 种运行模式都是特权模式。这几个运行模式可以通过软件进行任意切换,也可以通过中断或者异常来进行切换。大多数的程序都运行在用户模式,用户模式下是不能访问系统所有资源的,有些资源是受限的,要想访问这些受限的资源就必须进行模式切换。但是用户模式是不能直接进行切换的,用户模式下需要借助异常来完成模式切换,当要切换模式的时候,应用程序可以产生异常,在异常的处理过程中完成处理器模式切换。
  当中断或者异常发生以后,处理器就会进入到相应的异常模式种,每一种模式都有一组寄存器供异常处理程序使用,这样的目的是为了保证在进入异常模式以后,用户模式下的寄存器不会被破坏。
  相比较而言,STM32只有两种运行模式,特权模式和非特权模式,但Cortex-A有9种。。

3.Cortex-A寄存器组

  ARM 架构提供了 16 个 32 位的通用寄存器(R0~R15)供软件使用,前 15 个(R0~R14)可以用作通用的数据存储, R15 是程序计数器 PC,用来保存将要执行的指令。 ARM 还提供了一个当前程序状态寄存器 CPSR 和一个备份程序状态寄存器 SPSR, SPSR 寄存器就是 CPSR 寄存器的备份。
在这里插入图片描述  总结一下, CortexA 内核寄存器组成如下:
① 34 个通用寄存器,包括 R15 程序计数器(PC),这些寄存器都是 32 位的。
② 8 个状态寄存器,包括 CPSR 和 SPSR。
③ Hyp 模式下独有一个 ELR_Hyp 寄存器。

  下图是九种模式所对应的寄存器:
在这里插入图片描述
  浅色字体的是与 User 模式所共有的寄存器,蓝绿色背景的是各个模式所独有的寄存器。假如某个程序在 FIQ 模式下访问 R13 寄存器,那它实际访问的是寄存器 R13_fiq,如果程序处于 SVC 模式下访问 R13 寄存器,那它实际访问的是寄存器 R13_svc。
  备份寄存器 R13 一共有 8 个物理寄存器,其中一个是用户模式(User)和系统模式(Sys)共用的,剩下的 7 个分别对应 7 种不同的模式。 R13 也叫做 SP,用来做为栈指针。基本上每种模式都有一个自己的 R13 物理寄存器,应用程序会初始化 R13,使其指向该模式专用的栈地址,这就是常说的初始化 SP 指针。
  备份寄存器 R14 一共有 7 个物理寄存器,其中一个是用户模式(User)、系统模式(Sys)和超级监视模式(Hyp)所共有的,剩下的 6 个分别对应 6 种不同的模式。R14 也称为连接寄存器(LR),LR 寄存器在 ARM 中主要用作如下两种用途:
① 每种处理器模式使用 R14(LR)来存放当前子程序的返回地址,如果使用 BL 或者 BLX来调用子函数的话, R14(LR)被设置成该子函数的返回地址,在子函数中,将 R14(LR)中的值赋给 R15(PC)即可完成子函数返回。
② 当异常发生以后,该异常模式对应的 R14 寄存器被设置成该异常模式将要返回的地址,R14 也可以当作普通寄存器使用。
  程序计数器 R15 也叫做 PC, R15 保存着当前执行的指令地址值加 8 个字节,这是因为 ARM的流水线机制导致的。 ARM 处理器 3 级流水线:取指->译码->执行,这三级流水线循环执行,比如当前正在执行第一条指令的同时也对第二条指令进行译码,第三条指令也同时被取出存放
在 R15(PC)中。我们喜欢以当前正在执行的指令作为参考点,也就是以第一条指令为参考点,那么 R15(PC)中存放的就是第三条指令,换句话说就是 R15(PC)总是指向当前正在执行的指令地址再加上 2 条指令的地址。
  所有的处理器模式都共用一个 CPSR 物理寄存器,因此 CPSR 可以在任何模式下被访问。CPSR 是当前程序状态寄存器,该寄存器包含了条件标志位、中断禁止位、当前处理器模式标志等一些状态位以及一些控制位。所有的处理器模式都共用一个 CPSR 必然会导致冲突,为此,除了 User 和 Sys 这两个模式以外,其他 7 个模式每个都配备了一个专用的物理状态寄存器,叫做 SPSR(备份程序状态寄存器),当特定的异常中断发生时, SPSR 寄存器用来保存当前程序状态寄存器(CPSR)的值,当异常退出以后可以用 SPSR 中保存的值来恢复 CPSR。
  因为 User 和 Sys 这两个模式不是异常模式,所以并没有配备 SPSR,因此不能在 User 和Sys 模式下访问 SPSR,会导致不可预知的结果。

参考资源链接:[Cortex-A7 MPCore集成手册简介](https://wenku.csdn.net/doc/6412b51abe7fbd1778d41f2c?utm_source=wenku_answer2doc_content) 在开发基于Cortex-A7 MPCore的嵌入式系统时,确保开发的效率和系统的稳定性,掌握CoreSight技术用于调试和性能分析是至关重要的。为了深入了解这一过程,推荐您查阅《Cortex-A7 MPCore集成手册简介》。这份资料由ARM公司官方发布,是关于如何整合Cortex-A7处理器的权威指导,提供了系统集成的详细步骤和最佳实践。 首先,您需要熟悉Cortex-A7处理器架构及其与CoreSight技术的集成点。Cortex-A7 MPCore支持多核系统设计,利用CoreSight技术可以实现跨核心的调试和性能监控。使用DAPLite(Data Access Port Lite)接口,您可以高效地进行数据传输和访问,这是进行系统调试的关键。 接下来,要确保您使用的调试工具与Cortex-A7 MPCore兼容,并能够与CoreSight技术配合。通常,ARM官方或第三方合作伙伴会提供支持CoreSight的调试器和分析工具。在《Cortex-A7 MPCore集成手册简介》中,可能包含了这些工具的使用方法和集成的详细信息。 性能分析方面,您需要了解如何使用CoreSight提供的性能监测单元(PMU)和跟踪单元(ETM)来收集性能数据。根据手册中的指导,配置适当的跟踪和监测参数,可以对系统的运行情况进行深入分析,从而识别瓶颈并优化代码。 此外,手册可能还会提供一些典型的调试场景和问题案例,帮助您快速定位和解决问题。在手册的用户反馈部分,您还可以找到其他开发者遇到的问题和解决方法,这些都是宝贵的资源。 在进行调试和性能分析时,请务必遵守手册中的知识产权和保密条款,合理使用ARM提供的技术和信息。通过《Cortex-A7 MPCore集成手册简介》的指导,结合您在开发中积累的实践经验,您将能够有效地利用CoreSight技术提升Cortex-A7 MPCore系统的开发效率和系统性能。 在您掌握这些知识之后,如果希望进一步提升嵌入式系统的开发能力,建议继续研究ARM提供的其他技术文档和产品更新信息,以及参与相关的开发者社区和讨论组,以便与行业同仁交流经验,及时获取最新的技术动态。 参考资源链接:[Cortex-A7 MPCore集成手册简介](https://wenku.csdn.net/doc/6412b51abe7fbd1778d41f2c?utm_source=wenku_answer2doc_content)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾贾乾杯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值