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.

[参考译文] CC2652RB:在 CCS 10.0.0中使用 CMSIS 5.8.0时出现链接错误

Guru**** 2541140 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1040170/cc2652rb-linking-errors-in-using-cmsis-5-8-0-with-ccs-10-0-0

器件型号:CC2652RB

您好!  

我一直在努力将 CMSIS 5.8.0 DSP 库与 CCS 10.0.0结合使用。 我在项目中包含了 DSP 文件夹、并将其添加到路径中。 我已使用 SimpleLink SDK 创建项目。 编译后、这些是我遇到的构建错误。 有人可以帮助我解决错误并发布一个分步方法、将 CMSIS 库中的文件导入 CCS 吗?

  

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

    您好!

    您能否尝试按照以下说明操作: https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1032595/faq-cc2642r-fft-on-cc13x2-cc26x2-devices?tisearch=e2e-sitesearch&keymatch=CMSIS-DSP# 

    此致、

    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 */

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

    Praneeth、

    您是否查看了我链接到的帖子底部的链接资源? 他们提到需要向项目中添加预定义符号:

    您能否尝试添加适当的预定义并查看它是否起作用?

    此致、

    Daniel

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

    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未定义、这可能与您使用的编译器相关。

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

    您好!

    我使用的编译器版本是 TI v20.2.0.LTS。 哪一个将支持__fp16数据类型?

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

    Praneeth、

    我链接到(https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1032595/faq-cc2642r-fft-on-cc13x2-cc26x2-devices)的原始帖子已使用库进行了轻微更新。 您能否尝试一下、看看您的问题是否已解决?

    Daniel

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

    是的、  

    您共享的链接显示了与我们先前使用的库文件相同的线程、它使用的是 CMSIS 5.7版本。 我需要使用的库文件中没有 arm_fast_rfft_F16 ()。

    当前版本 CMSIS 5.8.0包含所有源代码和头文件。 它没有库文件。 是否有如何在 CCS 中实现当前版本并使用 F16()函数的想法?  

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

    如该主题中所述、CC13xx/CC26xx SDK 目前未测试/支持 CMSIS 5.8。  

    https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1047434/cc2652rb-using-cmsis-5-8-0-dsp-folder-in-ccs10-0-0