我正试图在Cortex M4上分析一个C函数(从一个中断调用,但我可以在其他地方提取它并将其分析).
有多少可能计算此功能中通常使用的循环次数?功能应该在大约4000个周期内运行,所以我认为RTC不是一个选项,并且从反汇编中手动计算周期可能很痛苦 - 只有平均才有用,因为我想在具有典型闪存/内存的典型流上进行分析使用模式.
我听说过循环计数器寄存器和MRC指令,但它们似乎可用于A8/11.我还没有在cortex-Mx micros中看到过这样的说明.
我的猜测是__no_operation()内部(ARM)指令应该执行1 /(168 MHz),前提是每个NOP指令在一个时钟周期内执行,我想通过文档验证.
是否有关于处理器的指令周期执行时间的信息的标准位置?我试图确定STM32f407IGh6处理器执行运行在168 MHz的NOP指令应该花多长时间.
某些处理器每个指令周期需要多次振荡,有些处理器在将时钟周期与指令周期进行比较时为1比1.
术语"指令周期"甚至不存在于STMicro提供的整个数据表中,也不存在于他们的编程手册中(列出处理器的指令集,顺便说一下).但是,8051文档明确定义了其指令周期执行时间,以及其机器周期特性.