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.

[参考译文] TMS320F28379D:POP AR5:AR4汇编指令有问题

Guru**** 2609955 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/689005/tms320f28379d-problem-with-pop-ar5-ar4-assembly-instruction

器件型号:TMS320F28379D

您好!

我的指令 POP AR5:AR4有奇怪的问题。

我的示例代码:

MOVW DP、#_EPwm4Regs.CMPA.bit.CMPA
按 μ@ EPwm4Regs.CMPA.bit.CMPA
MOVW DP、#_EPwm8Regs.CMPA.bit.CMPA
按 μ@ EPwm8Regs.CMPA.bit.CMPA
MOVW DP、#_EPwm3Regs.CMPA.bit.CMPA
按 μ@ EPwm3Regs.CMPA.bit.CMPA
MOVW DP、#_EPwm7Regs.CMPA.bit.CMPA
按 μ@ EPwm7Regs.CMPA.bit.CMPA
MOVW DP、#_EPwm6Regs.CMPB.bit.CMPB
按 μ@ EPwm6Regs.CMPB.bit.CMPB
MOVW DP、#_EPwm6Regs.CMPA.bit.CMPA
按 @_EPwm6Regs.CMPA.bit.CMPA

弹出 AR5:AR4 

从指令集说明 POP AR5:AR4的工作方式应如下:

SP -= 2;
AR4 =[SP];
AR5 =[SP+1]; 

但是、在系统中进行调试后、其工作方式如下:

SP =-2;
AR4 =[SP-1];
AR5 =[SP]; 

因此、在进行更多挖掘后、我发现问题在于堆栈指针未对齐。 例如、如果我们将奇数16位值压入栈、并且尝试 POP ARN:ARM、则会导致错误值。

我认为这个问题很有问题、因此应该在 POP/PUSH 说明中提及。

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

    我同意你的意见。  感谢您的报告。  我将提交一份文献申请。   

    顺便说一下、这是您可以通过单击用户指南中每个页面底部的"提交文档反馈"链接自行完成的操作。

    此致、

    Richard