当前位置: 代码迷 >> 驱动开发 >> 代码执行时间的有关问题
  详细解决方案

代码执行时间的有关问题

热度:37   发布时间:2016-04-28 10:49:54.0
代码执行时间的问题
用示波器看一段代码的执行时间,然后分析出每ms执行的代码条数,分析的结果和芯片资料上说的MIPS不同,应该怎么解释?
理论上一句简单代码(如i++)翻译成机器语言不就应该是一条指令吗?

------解决方案--------------------
这个不一定的,取决于MCU的指令集和i本身的数据类型。
------解决方案--------------------
理论上一句简单代码(如i++)翻译成机器语言不就应该是一条指令吗? 不一定的,要看芯片的指令集怎么说,一般一条c语句由多条汇编代码组成的
------解决方案--------------------
统计指令的执行时间,应该利用循环语句,循环执行1万次,然后求平均值。否则,误差太大,没意义。
------解决方案--------------------
探讨

引用:
这个不一定的,取决于MCU的指令集和i本身的数据类型。

我用的AT91RM9200 MCU采用5级流水线,只知道它的指令集是RISC,i为32位int型,能分析出来一个for循环翻译成机器语言是多少条指令吗?
for(i = 0; i < 10000000; i++);

------解决方案--------------------
The AT91RM9200 Features a 200 Mips ARM920T Processor With 16K-byte Instruction And 16K-byte Data Cache Memories, 16K Bytes of SRAM。

200 MIPS at 180 MHz,