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.

[参考译文] MSP430FR5994:MSP430X 扩展指令周期时序 n't 似乎与 PUSHM.W + POPM.W 的表组合在一起

Guru**** 2538950 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1118674/msp430fr5994-msp430x-extended-instruction-cycle-timing-doesn-t-appear-to-match-the-tables-for-pushm-w-popm-w-combined-together

器件型号:MSP430FR5994

我正在使用配置为对我的周期进行计数的计时器 A。 (CCS 周期计数器是毫无价值的--非常无用--所以我必须使用一个硬件计时器/计数器来获得有意义的结果。)

在我的测试中、我发现以下几点:

    pushm #3, R11
    popm #3, R11

需要11个周期。

(根据计时器 A。要获得该值需要很多其他细节--尽管每个指令的长度为4个周期,但打开和关闭计时器需要花费6个周期,因此应该花费8个周期。 但我必须接受的是、发生"开启"和"关闭"的周期点不一定是显而易见的。 因此、很多测试都让我达到了实际可以校准我报告的结果的程度。 这是一个过程。 相信我、这些值是准确的。 我已经付出了很大的努力来确保这一事实。)

《MSP430FR58xx、MSP430FR59xx 和 MSP430x6xx 系列用户指南》的表4-17中的文档:

显示每个周期的周期数应为5个周期、总共为10个周期、而不是11个周期。

我以1MHz 的频率运行、因此我认为这不是 FRAM 的任何等待状态问题、它肯定不是堆栈所在的 SRAM 的等待状态问题。

所以。 是否有额外周期来自何处的想法? 表格是否完全错误?

如果是的话,这不会令我感到意外。 PUSH Rx 指令需要3个周期、但 POP Rx 指令实际上是 MOV @SP+、Rx (格式 I 指令)、所以需要2个周期(请参阅表4-10)、而不是3。 因此、推后推送 POP 为5个周期、这是预期的。

尽管如此、考虑到上表中建议的对为10个周期(其中 N=3)、我预计不会有11个周期。 PUSHM.W #3似乎需要5个周期、而 POPM.W #3似乎需要6个周期的测量。 这会为该对总共执行11个周期。 但它与我从上表中读出的内容不同。

请提供任何帮助。 我想完全理解这里发生的情况。

谢谢、

Jon