This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F1611:计算执行时间

Guru**** 2391215 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/575613/msp430f1611-calculating-execution-time

部件号:MSP430F1611

大家好:

这是一个学校项目。  

我测量MCU的时钟速度为3V -结果为4.31MHz。 使用示波器,我发现执行代码需要0.176毫秒。 但是,当我使用代码的时钟周期(我手动计算)计算时间时钟速度为4.31MHz时,值为0.237ms。 即使我使用数据表中给出的4MHz时钟速度,所需的时间也是0.255ms,这仍然比我使用示波器获得的时间远。 下表显示了生成的组件以及从数据表中获取的相应时钟周期。 如果我假定 add #1,-4(R4) 需要4个时钟周期而不是5个时钟周期,则我的值几乎没有差别。 我不知道原因是什么。 有人能建议吗?

装配体生成 时钟周期
按R4 3.
MOV R1,R4 1.
添加#2 R4
2号小标题,R1
MOV #0,-4 (R4) 5.
添加#1,-4 (R4) 5. X200
添加#2 R1
POP R4
RET 3.
共计 1020.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    硬件上是否有任何优化导致指令在更少的时钟周期内完成?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    #0,#1和#2来自常量生成器,因此您必须将它们视为寄存器值。

    用户指南的表3-16假定常量"#N"是必须从指令流读取的异常常量。 ("#N"条目与之前的"@‍Rn+"条目具有完全相同的时钟,因为汇编程序实际上将此类常量作为"@‍PC+"实现。) 如果汇编程序可以使用常量生成器,则可以保存一个循环和一个单词。