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.

[参考译文] MSP430FR2433:IAR 仿真器和 TI FET USB-IF 仿真器之间的不同堆栈上载调用/调用

Guru**** 2541480 points
Other Parts Discussed in Thread: MSP-FET

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1126896/msp430fr2433-different-stack-push-on-call-calla-between-iar-simulator-and-ti-fet-usb-if-emulator

器件型号:MSP430FR2433
主题中讨论的其他器件:MSP-FET

您好!

我正在使用 IAR EW 7+仿真器和 TI USB-IF 仿真器测试包含子例程调用/调用的汇编代码、并获得不同的行为。

通过监控堆栈、我发现在仿真中、将正确的返回地址压入堆栈顶部、子例程返回到正确的代码指令、仿真中不会发生同样的情况: 堆栈上压入错误的值(0x3FFF/0x3FFF3FFF)、使子例程的返回失败。

我是否在设置中缺少某些内容、或者是否需要添加一些其他代码来正确仿真? 老实说、我希望同一代码的仿真和仿真会产生相同的结果。

提前感谢。

Mauro

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

    您好、Mauro、

    我们无法评论 IAR 提供的仿真器及其工作方式。 我假设您使用的是 TI USB-IF、这意味着您正在使用 MSP-FET 并在 MSP430上运行它。 话虽如此、由于您使用的是汇编语言、因此您需要查看器件的相关 CPU 勘误表、以确保您不会运行这些器件、因为大多数操作都由编译器修复、在汇编语言编程时不会调用编译器。  

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

    您好 Jace、

    感谢您的回复。 我发现之前 的讨论 "调试器不能与 FRAM 内部的堆栈指针一起工作"表明、即使在 Code Composer 中进行调试时、问题也会出现、并且似乎与 FRAM 中的堆栈分配有关。

    Slaa628 指示默认链接器设置应将系统堆栈分配给 SRAM、但这种情况不会发生、至少对于 FR2433而言是如此。 因此、我强制将其分配给 RAM、现在调试器工作正常。

    Mauro