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.

[参考译文] 编译器/TMS320F280049C:I#39;m 在这里写入、因为 TI 编译器 v10中的内联函数有问题。

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/938255/compiler-tms320f280049c-i-m-writing-here-because-there-s-a-problem-with-the-inline-function-in-ti-compiler-v10

器件型号:TMS320F280049C

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

你好

我正在使用 TI 提供的 MotorControl SDK 来实现电机控制软件。

顺便说一下、我将在这里写入、因为内联函数存在问题。

我在 ramfunc 函数的 MAIN_ISR()函数中调用了 pi_run_parally()函数。

 在这个.TI.ramfunc 函数的顶部、我写下了#pragma CODE_SECTION (main_ISR、".TI.ramfunc")。

但是、此内联函数不包含在 ramfunc 区域中、并且正在创建对象

所有其他内联函数都很好地包含在 RAM 区域中、并且只有此函数作为单独的对象创建。

如何解决此问题?

[cmd 文件(链接器文件)]

[内联函数]

[映射文件]

内联函数不会输入下面的 RAM 区域。

内联函数是作为对象创建的。

此 PI_RUN_Prellerel 内联函数(0x0008 7e70)偏离了 RamfuncsLoad (0x0008 3070至0x0008 3a60)的位置。

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

    函数 pi_run_parallel 未内联。  它是.text 段中的另一个函数、被分配到与.text 段中的其他函数相同的存储器范围。   

    我不知道为什么它没有被内联。  要使函数在特定调用站点内联、编译器必须在该点看到函数的完整实现。  是这样吗?

    谢谢、此致、

    乔治

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

    您好、Gwangho、

    使用内联函数有一些限制。 如前所述、易失性局部变量或参数不能用于内联函数。 所有局部变量和参数都应为非易失性类型。 您可以在编译器用户指南中找到更多详细信息。  

    此致、
    Steve

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

    感谢 Steve Lim。

    由于这个问题,很难着手进行这一发展。

    我想我们现在解决它后可以继续开发它。