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.

[参考译文] AM2634:如何在启用了低延迟中断的工程中启用 TLO

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1518700/am2634-how-to-enable-tlo-in-an-engineering-that-has-low-latency-interrupt-enabled

器件型号:AM2634

工具/软件:

在低延迟中断例程中、默认情况下编译器不启用 LTO。 手动启用 LTO 后、编译会导致错误。 具体现象如下:

我想知道低延时中断 和 LTO 是否相互不兼容?如果它们兼容、您能提供具体的修改计划吗?

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

    你好

    要解决此问题、请修改示例的第46行、如下所示:

    uint32_t gVimBaseAddr ___attribute__((已使用))= CSL_VIM_U_BASE;

    方式  __属性__(已使用)  最终目的  gVimBaseAddr ,我们明确地告诉编译器(以及 LTO 进程),  无论优化器是否认为使用了此符号,都必须保留此符号。 一旦  保证 gVimBaseAddr 存在、那么 LTO 进程就可以正确地看到所有其他与中断相关的函数和变量确实在使用它(或使用使用它的函数)、因此它们也被正确保留和链接。

    如果有用、请告诉我!

    此致、
    阿克什特