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.

[参考译文] 编译器/TMS320F28377D:在 TMS320F28377中执行除法运算后出错

Guru**** 2454880 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/940908/compiler-tms320f28377d-error-after-executing-division-operation-in-tms320f28377

器件型号:TMS320F28377D

工具/软件:TI C/C++编译器

大家好、我正在从事一个 TMS320F28377项目、并且有一个奇怪的错误。  

我设置 EPWM1中断并在中断函数中执行一系列函数。 代码中包含多个除法运算。

错误是在执行除法运算后、中断的入口地址消失。  DSP 将不再返回到高级 CALIBRAT()函数、它将进入一个陷阱中断并在地址0x3fe493处停止。 同时、除法运算的计算结果也不正确。

 

我尝试删除了除法运算代码、DSP 运行顺畅。 我还尝试在另一个 DSP 上执行代码、但该错误仍然存在。

 

我的编译器或链接器配置似乎有问题。 相关图片如下所示。 有人能帮我解决这个问题吗? 非常感谢!

执行除法运算之前

函数调用栈

代码

数据


 

执行除法运算后

函数调用栈(函数 calibrate()中的入口地址消失)  

代码


数据(elec 的执行结果不正确、预期值应约为0.0004)

编译器配置

链接器配置

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

    两个图像破裂。 在这里。

    编译器配置

    链接器配置

     

    谢谢!

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

    您能否检查堆栈溢出的迹象? 您可以尝试使用 CCS 存储器浏览器"Fill Memory"工具以图案填充堆栈、并查看运行时是否会擦除该图形。

    惠特尼

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

    [引用用户="Whitney Dewey"]

    您能否检查堆栈溢出的迹象? 您可以尝试使用 CCS 存储器浏览器"Fill Memory"工具以图案填充堆栈、并查看运行时是否会擦除该图形。

    惠特尼

    [/报价]

    尊敬的惠特尼:

    是的、我检查了堆栈、它确实溢出了。 您的回答解决了我的问题。

    非常感谢!

    卡盘