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.

[参考译文] MSP430FR5994:处理 ULP 警告5.2和13.1 -检测到浮点运算和检测到循环计数

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1072155/msp430fr5994-dealing-with-ulp-warnings-5-2-and-13-1---detected-floating-point-operations-and-detected-loop-counting-up

部件号:MSP430FR5994

我正在 MSP430上执行代码以运行神经网络。 要生成网络输入,我需要计算连接到 MSP430的外部麦克风捕获的声音信号的 FFT 系数。 在代码执行且我获得所需的输出时,我正在尝试进一步优化应用程序以利用设备的 ULP 功能。 构建完成后,我看到了 ULP 顾问关于浮点和代码中循环操作的一些建议。 虽然我已经处理了这些建议,它们指向了我的代码,但这些警告仍然显示在许多其他文件中,这些文件实际上并未被我使用,但它们是项目的一部分,因为它们位于项目的“包括”路径/选项中。 例如,我使用 DSPLibrary 进行 FFT 计算,但在这里,我没有使用矩阵函数,但我看到了以下警告,因为我的“包括”选项中包含了“DSPLIB/INCLUDE”-  

此外,当我使用驱动程序库连接一些按钮和中断时,我还会收到有关我不使用的文件的 ULP 警告,如“AES256-c”或“cs.c”,如下所示:

我在这里有两个主要问题:首先,删除这些警告实际上会对我的代码的功耗有多大的影响? 第二,如果确实重要,可以采取什么补救措施来避免这种情况? 在丢弃未使用的文件时,是否可能仅部分包含所需文件? 我尝试从这些文件夹中删除一些未使用但显示警告的文件,并且还尝试选择性地将文件包括在“包括”选项中,但在这两种情况下,由于缺少文件(与我删除的文件相同),项目未生成。 如果需要更多信息,请告诉我。  

经过一些分析,我倾向于不使用 LEA,在这种情况下,如果有任何其他方法可以进一步优化功耗,我肯定会尝试实现同样的效果。 谢谢你。  

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

    你好,Siddhant,

    请记住,ULP 顾问是为了提供有关设备设置和编码实践的建议,尽可能降低功耗。 它的建议或警告可能与应用程序的目标背道而驰,因为它不知道您正在尝试做什么,只是您在做什么。 例如,由于 MSP430的核心特性(周期更短),在循环中倒计数更有效率,因此,试图让循环倒计时的警告/建议会倒计时。 浮点对 MSP430 CPU (以及其他未集成浮点单元的 MCU)非常有影响,因为与其他数字格式相比,浮点的基本数学需要更多的周期。  

    也就是说,对于您的应用程序,您可能会忽略来自 ULP 的这些警告,因为它们只是在使用 DSPLIB 时不适用。 我想说,通过您尝试执行的计算,LEA 将是您能耗最低的选择,因为它能够比使用 MSP430内核更快(更短的周期)地通过 FFT。 特别是当您尝试执行许多 FFT 时。  

    如果您认为 ULP Advisor 中的特定警告不适用于您的应用程序,则可以关闭这些警告。  

    要了解 LEA 的能源效益,请参阅以下宣传资料:

    低能耗加速器(LEA)常见问题(FAQ)

    https://www.ti.com/tool/TIDM-FILTERING-SIGNALPROCESSING ( 在设计指南中对 LEA 和 NO-LEA 电流消耗进行了良好的比较)