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.

[参考译文] 编译器/MSP-EXP430FR5994:创建代码以高效使用 LEA

Guru**** 2531490 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/699315/compiler-msp-exp430fr5994-create-code-to-efficiently-use-lea

器件型号:MSP-EXP430FR5994
主题中讨论的其他器件:MSP430WARE

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

将 C 源代码处理替换为 API 以 LEA 进行计算将执行周期数增加了15倍以上。

LEA 是否可以高效执行简单的加法、减法和乘法处理?

下面显示了一些计算示例部分。

--在替换为 API 之前--

for (i=n;i>0;n--)

  BBB =(* INPUT_PTR)- AAA;

  AAA = AAA *符号;

  BBB =准1 * BBB;

  AAA = AAA + BBB;

  Input_PTR++;

 

----在替换为 API 之后----

for (i=n;i>0;n--)

  MSP_SUB_iq31 (&subParam、input_ptr、&aaa、&BBB);

  MSP_mpy_iq31 (&mpyParam、&aaa、&sign,&aaa);

  MSP_mpy_iq31 (&mpyParam、&para1、&BBB、&BBB);

  MSP_add_iq31 (&addParam、&AAA、&BBB、&AAA);

  Input_PTR++;

 

谢谢你。

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

    您好!  

    低功耗加速器(LEA) 是基于矢量的计算引擎。 例如、它将自动计算两个向量的所有项的加法、而不使用 CPU 间隔。 LEA 不需要 for 循环。 您只需要提供矢量的起始地址和长度作为 MSP_add_iq31()的输入参数。 您可以参阅以下代码示例:

    C:\ti\MSP\MSP430Ware_3_80_01_01\DSPLib\html\vector_ex2_complex_add_q15_8c-example.html

    此致、

    如果我的帖子有助于解决您的问题、请单击  验证答案    按钮 

    冬季、

    搜索 E2E! 您的问题可能已经得到解答!  

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

    感谢您的回答。
    但是、我想您的答案可能不是我想要知道的。 我将更准确地解释它。
    我能否参考"vector_ex2_complex_add_Q15"计算具有以下反馈环路的电路?

    y [n]=(x [n]- y [n - 1])*第1段+ y [n - 1]*第2段
    (N:1-10)

    这是一个示例、而不是我想实现的电路、但我希望 LEA 以这种方式处理加法、减法和乘法的组合。
    如果我的理解有误、请告诉我使用 API 实现上述表达式的代码。 我将会考虑如何实现它作为一个提示。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    正如您提到的公式、是否要实现 IIR 滤波器? 也可以通过 IIR 滤波器实现上述公式。 除了基本矢量算术外、LEA 还支持 FIR 和 IIR 滤波器。 此外、还有一个易于使用的滤波器设计 GUI、用于 FIR 或 IIR 滤波器设计。 您可以从 MSP430 DSP 库用户指南中找到介绍和示例。

    此致、

    如果我的帖子有助于解决您的问题、请单击  验证答案    按钮 

    冬季、

    搜索 E2E! 您的问题可能已经得到解答!  

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

    您好、冬季、

    感谢您的回答。
    我的问题的背景很复杂、所以我真的没有告诉你我想要解决的问题。 我很抱歉。

    实施 IIR 滤波器时、我知道向您介绍的 DSPLIB 示例将是解决问题的一种方法。
    但我的问题的本质是了解如何使用 API 实现任意算法、以执行简单的计算、例如加法、减法、乘法等
    因此、我的第一个问题没有使用关键字 IIR。
    例如、由于没有为基本 PI 控制准备专用 API、我认为有必要使用 API 计算2的加法、乘法和指数。
    在本例中、我想知道如何编写智能代码、将 API 相结合、以执行简单的计算。
    通过组合简单的计算 API 来构建算法是否用法不正确?

    谢谢你。

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

    您好!

    如果您有大量数据需要并行计算、  

    该算法可以转换为矢量或矩阵形式。 您可以使用基本 API、例如向量或矩阵的加法、减法。

    2.数据帧的过滤或 FFT 过程。 您可以只使用 FI/IIR/FFT 函数调用。

    3.对于某种形式为线性差分方程和输出反馈的算法,可以将其转换为 IIR 滤波器,并在 LEA 中使用 IIR 滤波器 API。

    对于仅 将 LEA API 用于单个数据算术的其他情况、这无法 利用 LEA。

    B.R

    冬季

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

    您好、冬季、

    感谢您的回答、我们已经阐明了对 LEA 和 API 的理解。

    我特别想确认最后一次写入。

    我知道、LEA 可以演示高速处理性能、这是您的第二个答案、

    这是您提供帮助(生成输入数据等)的第一个答案。

    谢谢你。