TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TMS320F28388D:默认情况下、CLA 中运行的函数似乎是内联的

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1467180/tms320f28388d-functions-running-in-cla-seems-to-be-inline-by-default

器件型号:TMS320F28388D

工具与软件:

您好!
我们开发了一个使用 FOC 控制2个 BLDC 电机的电路板。
FOC 在 CLA 中以2个任务运行。 FOC 算法和状态机在 shared.h 文件中的函数中进行了描述。 一切都正常。
因为我想看到一些用于调试的变量、所以我已经将它们从 RAMLS 复制到 CLA_TO_DMA_mem、以发送下一个 USB。


如果我从 shared.h 中的函数复制、在 CLA 中运行的代码的总大小为0x2640。
如果我直接在任务中执行该操作(即两次)、在 CLA 中运行的代码的总大小为0x25b6。
复制代码可提供比使用一个函数更小的代码(奇怪的)。

我的问题是、shared.h 中的函数是否默认为内联函数?
我的函数未声明为内联。
此致。

Jérôme μ A

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

    您好、 Jérôme

    这些函数不应默认为内联、只有在函数签名中指定为内联时才会内联。 我有几个澄清问题:

    1. 您是否打开了项目优化?
    2. 您能否在两种情况下显示函数的"Disassembly"视图? 这将清楚地显示尺寸差异到底是什么。
    3. 如果您确实将函数声明为内联函数、它是否会消除大小差异? 这就是我们的预期。

    我认为你在函数情况中看到的额外空间来自所需的分支和背景保存/恢复指令。

    此致、

    Delaney