您好!
我一直在努力将 CMSIS 5.8.0 DSP 库与 CCS 10.0.0结合使用。 我在项目中包含了 DSP 文件夹、并将其添加到路径中。 我已使用 SimpleLink SDK 创建项目。 编译后、这些是我遇到的构建错误。 有人可以帮助我解决错误并发布一个分步方法、将 CMSIS 库中的文件导入 CCS 吗?
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.
您好!
我一直在努力将 CMSIS 5.8.0 DSP 库与 CCS 10.0.0结合使用。 我在项目中包含了 DSP 文件夹、并将其添加到路径中。 我已使用 SimpleLink SDK 创建项目。 编译后、这些是我遇到的构建错误。 有人可以帮助我解决错误并发布一个分步方法、将 CMSIS 库中的文件导入 CCS 吗?
您好!
此致、
Daniel
Daniel、您好!
感谢您的链接。 路径问题已解决。 但是、当我尝试在 CCS 中实现示例程序时、我很少会遇到链接错误、这一点我并不是完全知道的。 示例代码 位于我的位置/CMSIS/DSP/examples/ARM/ARM_FFT_bin_example 中。
下面是随附的代码和错误图片。 可以帮帮我吗?
/*----------------------------------------------
*版权所有(C) 2010-2012 ARM Limited。 保留所有权利。
*
*$Date:17. 2013年1月
*$Revision:v1.4.0
*
*项目:CMSIS DSP 库
*标题:arm_FFT_bin_example_f32.c
*
*说明:演示最大能量箱计算的示例代码
输入信号的*频域。
*
*目标处理器:Cortex-M4/Cortex-M3
*
*以源代码和二进制形式重新分发和使用、有无
*如果满足以下条件、则允许进行修改
符合*:
*-源代码的重新分发必须保留上述版权
*注意、此条件列表和以下免责声明。
*-二进制形式的再发行必须复制上述版权
*请注意、中的条件列表和以下免责声明
*随附的文档和/或其他材料
*分发。
*- ARM 的名称既不受限制、也不受其贡献者的名称限制
*可用于认可或推广由此衍生的产品
*未经特定事先书面许可的软件。
*
*本软件由版权所有者和贡献者提供
*"按原样"以及任何明示或暗示的保证、包括但不包括
*仅限于对适销性和适用性的暗示保证
*出于特定目的,不承担任何责任。 在任何情况下、都不得使用
*版权所有者或贡献者应对任何直接、间接、
*附带、特殊、惩戒性或从属损害(包括
*但不限于采购替代货物或服务;
但是、*丢失使用、数据或利润;或业务中断)
*造成的,以及任何责任理论,无论是合同中的,严格的
*责任、或侵权行为(包括疏忽或其他原因)产生于
*不使用本软件的任何方法、即使已被告知
*可能造成此类损坏。
*************************************************************************************************** *
/**
*@组内组示例
*
/**
*@defgroup 频率箱示例
*
*\PAR 描述
*\par
*演示了频率中最大能量箱的计算
使用复数 FFT、Complex 时输入信号的*域
* Magnitude 和 Maximum 函数。
*
*\PAR 算法:
*\par
*输入测试信号包含一个10kHz 信号、白噪声分布均匀。
*计算输入信号的 FFT 将得到的最大能量
* bin、对应于10kHz 的输入频率。
*
*\PAR 方框图:
*\image html FFTBin.gif "方框图"
*\par
*下图显示了10kHz 信号的时域信号
*均匀分布的白噪声、下图显示了输入
频率域中的*。 具有最大能量的容器对应于10kHz 信号。
*\par
*\image html FFTBinInput.gif "时域中的输入信号"
*\image html FFTBinOutput.gif "频域中的输入信号"
*
*\PAR 变量说明:
*\par
*\li \c testInput_F32_10kHz 指向输入数据
*\Li \c TestOutput 指向输出数据
*\Li \c fftSize 长度 FFT
用于选择 CFFT/CIFFT 的*\Li \cifftFlag 标志
用于选择正常顺序或位反转顺序的*\Li \c doBitReverse Flag
*\Li \c refIndex 参考索引值、在该值下、二进制八进制毛刺的最大能量
*\Li \c testIndex 计算出的指数值、在该值下、二进制八进制毛刺的最大能量
*
*\par CMSIS DSP 软件库函数已使用:
*\par
*- ARM_CFFT_F32 ()
*- arm_cmplx_mag_F32 ()
*- arm_max_F32 ()
*
*请参阅
*\link arm_FFT_bin_example_f32.c \endlink
*
*
/**\example arm_FFT_bin_example_f32.c
*
#include "arm_math.h"
#include "arm_const_structs.h"
#if 已定义(半主机)
#include
#endif
#define TEST_LENGTH_SAples 2048
/*--------------------------------------
* FFT Bin 的外部输入和输出缓冲器声明示例
************************************************************************************************** *
extern float32_t testInput_F32_10kHz[test_length_samples];
静态 float32_t TestOutput[test_length_samples/2];
/*--------------------------------------
* FFT Bin 示例的全局变量
************************************************************************************************** *
uint32_t fftSize = 1024;
uint32_t ifftFlag = 0;
uint32_t doBitReverse = 1;
ARM_CFFT_Instance_F32 varInstCfftF32;
/*二进制八进制总能量最大值时的参考指数*/
uint32_t refIndex = 213、testIndex = 0;
/*----------------------------------------------
*最大幅度 FFT Bin 测试
************************************************************************************************** *
int32_t main (空)
{
ARM_STATUS 状态;
float32_t maxValue;
状态= ARM_MATH_SUCCESS;
STATUS=ARM_CFFT_INIT_F32 (&varInstCfftF32、fftSize);
/*通过 CFFT/CIFFT 模块处理数据*/
ARM_CFFT_F32 (&varInstCfftF32、testInput_F32_10kHz、ifftFlag、doBitReverse);
/*通过的复数幅度模块处理数据
计算每个区间的幅度*/
arm_cmplx_mag_F32 (testInput_F32_10kHz、TestOutput、fftSize);
/*计算 maxValue 并返回相应的 bin 值*/
arm_max_F32 (TestOutput、fftSize、&maxValue、&testIndex);
status =(testIndex!= refIndex)? ARM_MATH_TEST_FAILURE:ARM_MATH_SUCCESS;
if (status!= ARM_MATH_SUCCESS)
{
#if 已定义(半主机)
printf ("失败\n");
其他
while (1);/* main 函数不返回*/
#endif
}
其他
{
#if 已定义(半主机)
printf ("SUCCERS\n");
其他
while (1);/* main 函数不返回*/
#endif
}
}
/**\endlink */

Daniel、您好!
谢谢。 它很有效!! 我在 CMSIS-DSP 中处理一个函数时还有一个问题(arm_fast_rfft_F16 ())。 现在、我将使用 CMSIS 5.7版本库文件。 当我尝试使用该函数时、有几个错误显示了未定义的__fp16和_Float16数据类型。 我还在整个 CMSIS 5.7.0和5.8.0中搜索了相关文件、但找不到任何相关文件。 您能帮助解决此问题吗?
下面是错误和警告的屏幕截图。
您使用的是哪种编译器? 错误位于 CMSIS 库中、位于 /CMSIS_5-5.8.0/CMSIS/DSP/include/arm_math_types_f16.h
*/
#if !(__ARM_FEATURE_MVE & 2)
#if !defined(DISABLEFLOAT16)
#if defined(__ARM_FP16_FORMAT_IEEE) || defined(__ARM_FP16_FORMAT_ALTERNATIVE)
typedef __fp16 float16_t;
#define ARM_FLOAT16_SUPPORTED
#endif
#endif
#else
/* When Vector float16, this flag is always defined and can't be disabled */
#define ARM_FLOAT16_SUPPORTED
#endif
错误是_fp16未定义、这可能与您使用的编译器相关。
Praneeth、
我链接到(https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1032595/faq-cc2642r-fft-on-cc13x2-cc26x2-devices)的原始帖子已使用库进行了轻微更新。 您能否尝试一下、看看您的问题是否已解决?
Daniel
如该主题中所述、CC13xx/CC26xx SDK 目前未测试/支持 CMSIS 5.8。