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:FRAM2使用+高效 FFT (LEA)

Guru**** 2561130 points
Other Parts Discussed in Thread: MSP430FR5994, MSP-DSPLIB

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/602485/msp430fr5994-fram2-usage-efficient-ffts-lea

主题中讨论的其他器件:MSP430FR5994MSP-DSPLIB

您好 Katie、

非常感谢您的帮助! 我今天可以尝试一下,很高兴地报告,您的建议解决了我的问题,即在进行所需的更改后,如果使用大块 FRAM2内存,原来无法使用 printf()。 我的 RAM 使用量现在小于2kB、RAM 空间也高达4kB、因此320个字节(用于 printf)不会成为问题。

此外、您可能还记得我对应用程序的简要说明[请参阅 此主题中的上一篇文章]、该应用程序使用 FRAM2存储器来存储传感器数据(在16位数据样本的各种数组之间进行拆分、其中数组具有多达4096个元素、每个数组的最大值为8kB)。 因为、对于计算、我基本上只有 RAM 可供使用(由于我最近了解的__data20例程)我想我计划做的是编写自定义数据处理例程(例如离散傅立叶变换) 使用 RAM 在求和循环中为每个傅里叶系数获取 FRAM2值[根据需要反复]、然后将计算结果存储在位于 FRAM2中的新索引数组中。

选择 MSP430FR5994是因为它具有低功耗且具有256KB FRAM (也因为可能会使用该器件的矢量数学加速器来实现 FFT 等)。 256KB 的大小足以存储大约75KB 的传感器数据阵列以及计算结果所需的额外空间(假设在最坏的情况下、结果的大小与原始数据相同)。

如果我理解我正确的阅读内容(包括您关于将.cio 和.sysmem 放入新的第三个 FRAM 段的注释-请参阅 printf 解决方案的选项2)、 应该可以将任何阵列从 FRAM2复制到另一个 FRAM 段、然后通过传统的存储器访问(并可能利用矢量数学加速器)来执行更高效的数据处理例程。 对于我拥有的器件和应用的当前状态、仍有28KB 的 FRAM 可供使用、它们应该有足够的空间依次处理每个传感器数据阵列(即、将28KB 与8KB 或16KB = 8KB * 2的数据和结果进行比较)。

您是否愿意为其中一种方法或两种方法提供任何建议(列出注意事项或详细说明优缺点)? 我目前处于僵局、可以用蛮力法进行编码(多次从 FRAM2获取并计算)、也可以尝试用新的 FRAM 数据段做一些更巧妙的事情(可能使用矢量数学加速器)。

此致、

-Tom

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

    您好、Tom、

    (供参考:自从我们转到新主题后、我拆分了主题-这是为了提高论坛的可搜索性)

    我看到您提到了 FFT。 我建议将此器件上的 LEA (低功耗加速器)与 MSP-DSPLIB 搭配使用-有关 DSPLIB 中的 FFT 示例以及使用和不使用 LEA 的基准测试、请参阅此 TI 设计: http://www.ti.com/tool/tidm-filtering-signalprocessing DSPLIB 已包含用于执行 FFT 和大量其他计算的 API。 DSPLIB 的交互式用户指南在此处提供、其中包含有关其与 LEA 搭配使用 的信息:http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/DSPLib/latest/exports/html/usersguide_lea.html 您可以找到有关 LEA 支持哪些 API 的信息、并可帮助您加快速度。

    更多 LEA 资源: www.ti.com/lit/pdf/slaa720

    因此、您可能会询问这与您在 FRAM2中使用数据以及必须使用__data20的问题有何关系。 重点是、具有 DSPLIB 的 LEA 已经 要求您在   LEA 可以处理它们之前将其正在处理的阵列复制到额外的4KB LEA SRAM 中、因此您只会在复制数据时产生额外的周期损失、而不会在执行所有计算时产生额外的周期损失。 因此、我认为您不需要在其上面添加任何其他副本到较低的 FRAM 中。 这是否能解决您的疑虑?

    此致、

    Katie