我希望能简要解释一下我在NUCLEO-H723ZG板上的汇编时序循环如何表明它是在单个cpu时钟周期内执行的。使用的两条指令,一条SUBS和一条BNE,在循环分支时消耗了三个时钟周期,所以有一些神奇之处!我正在使用GPIO BSRR来切换LED,需要使用275M的计时循环计数来实现大约每秒一个闪光。
发布于 2021-07-08 00:07:47
对于Cortex M0、M3和M4,循环计数包含在技术参考手册(eg Cortex M4)中。对于M7,它们是not published,但听起来您已经自己衡量了答案,所以在这种情况下,不需要在手册中提供答案。
如果您的代码是正确的,那么处理器能够在单个周期内执行这两条指令。
这并不令人惊讶。例如,M4可以在单个周期内执行16位数据处理指令和it指令。
如果您需要确定性(但更差)的性能,则可以禁用此功能。参见辅助控制寄存器中的DISFOLD位。
https://stackoverflow.com/questions/68287425
复制相似问题