Cortex-M系列处理器中断延迟与低功耗特性解析
1. 中断延迟相关内容
1.1 典型中断延迟
在内存系统零延迟,且Cortex - M33的总线系统设计允许向量获取和堆栈操作同时进行的情况下,典型中断延迟如下:
- Cortex - M23为15个周期(与Cortex - M0 +相同),若处理器运行安全代码且中断目标为非安全状态,中断延迟增加到24个周期。
- Cortex - M33为12个周期(与Cortex - M3和Cortex - M4相同),若处理器运行安全代码且中断目标为非安全状态,中断延迟增加到21个周期。
这个周期数包含寄存器堆栈操作、向量获取以及中断处理程序的指令获取。
然而,在很多情况下,由于内存系统的等待状态,中断延迟可能会更高。若处理器正在进行内存传输,由于AMBA® AHB总线协议(AHB一次只能处理一个事务)的特性,未完成的传输必须在异常序列开始前完成。执行序列的持续时间还取决于内存的访问速度。
除了内存/外设等待状态,还有其他因素会增加中断延迟,例如:
- 处理器正在处理相同或更高优先级的其他异常。
- 处理器正在运行安全程序,而中断目标为非安全状态,此时需要将额外的上下文压入堆栈帧。
- 调试器访问内存系统。
- 处理器正在进行未对齐传输(不适用于Cortex - M23或Armv8 - M Baseline)。从处理器角度看这可能是单次访问,但在总线层面会被视为多次传输,因为处理器总线接口会将未对齐传输转换为多次对齐传输以通过AHB接口处理。
- 对于故障异常,其延迟可能与中断不同,因为它们与外部中断信号的处理方式不同。
超级会员免费看
订阅专栏 解锁全文


被折叠的 条评论
为什么被折叠?



