ARM Cortex
根据应用范围的不同,ARM COrtex 处理器分为3个系列。
- Cortex-A 应用处理器(Application Processor):面向性能密集型系统的应用处理器内核
为利用操作系统(例如Linux或者Android)的设备提供了一系列解决方案,这些设备被用于各类应用,从低成本手持设备到智能手机、平板电脑、机顶盒以及企业网络设备等。这类处理器运行在很高的时钟频率,支持完整操作系统需要的内存管理单元(MMU)。
- Cortex-R 实时处理器(Real-time Processor):面向实时应用的高性能内核
面向实时应用的高性能处理器系列,例如硬盘控制器,汽车传动系统和无线通讯的基带控制。多数实时处理器不支持 MMU,不过通常具有 MPU、Cache 和其他针对工业应用设计的存储器功能。实时处理器运行在比较高的时钟频率,响应延迟非常低。虽然实时处理器不能运行完整版本的 Linux 和 Windows 操作系统,但是支持大量的实时操作系统(RTOS)。
- Cortex-M 微控处理器(Microcontroller Processor):面向各类嵌入式应用的微控制器内核
微控制器处理器通常设计成面积很小和能效比很高。通常这些处理器的流水线很短,最高时钟频率很低。并且,新的 Cortex-M处理器家族设计的非常容易使用。因此,ARM 微控制器处理器在单片机和深度嵌入式系统市场非常成功和受欢迎。
- Cotex-X
X像是A的升级版,它仍是移动IP,面向的应用场景是与A保持一致的。
Cortex-M 指令WFE和WFI
WFE
WFE实际上是受控于一个1bit event register。当CPU执行WFE指令时,如果event register没有被置位0,则当前CPU就会进入低功耗模式;如果event register被置位1了,则会将事件寄存器对应当前CPU的位复位0,然后返回继续执行接下来的指令,不会进入低功耗模式。
WFE进入低功耗模式后的唤醒条件:
发生了未被屏蔽的IRQ中断
发生了未被屏蔽的FIQ中断
CPU对应的event register被置位(1)。如果通过这种方式唤醒,CPU会在唤醒后立即将event register复位(0)
WFI
WFI指令执行后CPU立即进入低功耗状态。
WFI进入低功耗模式后的唤醒条件:
发生了未被屏蔽的IRQ中断
发生了未被屏蔽的FIQ中断
processor power on
- 和power相关的信号需要优先关注是否按要求设置,power enable以及power domain isolation enable
- processor会有不同类别的上电方式,不同上电方式决定了我们需要关注的信号
- 时钟是应该首先关注的,上电需要提供必要的时钟,并且别的相关信号基于此满足一定时序
- 同样重要的是复位,上电时复位信号的释放顺序以及等待周期需要被保障
- Cortex-M processor 的INITSVTOR和INITNSVTOR决定了初始化的模式
- 如果将TCM接口配置为在复位时启用TCM,并且复位向量地址在TCM内存区域内,则处理器将从TCM启动。
在开始执行之前,系统必须确保引导代码软件存在于适当的内存区域中。这可以通过在复位前初始化内存或在复位后使用S-AHB接口传输数据并断言CPUWAIT输入信号来实现。- 检查CPUWAIT的时序是否正确。使能CPUWAIT将在重置后停止处理器获取或执行指令。当CPUWAIT信号被解除时,处理器开始以正常的方式从重置向量地址获取指令。
- 检查TCM是否被初始化
- 检查INITTCMEN。INITTCMEN[1:0]控制了TCM是否使能,Bit0控制ITCM,Bit1控制DTCM。
- 如果是通过外部存储进行boot,那么外部存储是否被初始化需要被关注