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.

[参考译文] TMS320F28388S:调用没有中断属性的函数可能会中断's VFP 寄存器

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1552635/tms320f28388s-call-to-function-without-interrupt-attribute-could-clobber-interruptee-s-vfp-registers

器件型号:TMS320F28388S


工具/软件:

您好、

我从其他用户的帖子中了解到、如果需要、我们有责任保留 VFP 寄存器。  我正在使用 TI Clang v3.2.3.LTS 编译器收到主题消息。  我已经找到了一些可以用来抑制警告的东西,但没有成功。  是否有这样的设置?  是否有方法删除警告?

谢谢您、

教育

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

    请访问 tiarmclang 视频系列、并查看标题为“蓝牙编译器“的视频 在中断期间保留浮点寄存器

    谢谢。此致、

    -乔治

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

    您好、George、

    这确实消除了警告。  但根据视频、会增加一些额外的代码。  我们不使用该寄存器、也不想添加推入和弹出会消耗的额外时间。  还有其他选择吗?

    谢谢您、

    教育

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

    请记住、视频中的示例中断函数会调用另一个函数。  它的作用恰恰是强制编译器发出保留所有寄存器的代码。  这样就很容易查看哪些寄存器被保留。  典型的中断函数不进行函数调用。  在这种情况下、保留的唯一寄存器是在该函数期间修改的寄存器。

    谢谢。此致、

    -乔治

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

    您好、George、

                   我相信我找到了解决方案。  我能够添加-wno-extra 的编译器设置。  这消除了警告。

    谢谢您、

    教育