[STM32F3] stm32 M3系列如何比较准确估算指令执行所用时间?

[复制链接]
2120|0
 楼主| ast145 发表于 2015-12-28 15:53 | 显示全部楼层 |阅读模式
本帖最后由 ast145 于 2016-1-4 22:25 编辑

在8位单片机时代,1个机器周期=12个时钟周期,只要查下汇编指令是几个机器周期就可以准确知道一条指令用时多少。但是现在用cortex M3微控器,以stm32f103 72M时钟频率为例,
  1.   while(i--);
  2. //以下是反汇编
  3.     22:                 while(i--);
  4. 0x0800B7DA BF00      NOP           
  5. 0x0800B7DC 0001      MOVS          r1,r0
  6. 0x0800B7DE F1A00201  SUB           r2,r0,#0x01
  7. 0x0800B7E2 B2D0      UXTB          r0,r2
  8. 0x0800B7E4 D1FA      BNE           0x080
while(i--)反汇编之后有5条汇编指令,根据M3内核手册说明,用的是三级流水线,计算能力平均为1.25MIPS/MHz,现在我有个问题,1.25MIPS平均计算能力是以汇编指令还是C语言指令统计的?采用的是三级流水线模式,应该是取指,译码,执行三级流水操作,这里有个问题,就是每一级流水级周期是一个时钟周期呢,还是一个机器周期呢?在cortex m3系列里面,有四轴飞行器器周期的概念?如果有,一个机器周期相当于几个时钟周期呢?在网上查了许多资料,不过说的都是似是而非!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

27

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部