你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F7 DSP库使用

[复制链接]
edveve 提问时间:2019-7-25 10:09 /
10ST金币
报如下错误

error:  #101: "int32_t" has already been declared in the current scope

int32_t 定义在 stdint.h 中,不知如何操作了。。。


/******************************************************************************
* @file     arm_math.h
* @brief    Public header file for CMSIS DSP Library
* @version  V1.6.0
* @date     18. March 2019
******************************************************************************/


完整编译输出:
arm_math.h(564): warning:  #47-D: incompatible redefinition of macro "__PKHBT"  (declared at line 852 of "../Drivers/CMSIS/Include/cmsis_armcc.h")
    #define __PKHBT(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) <<    0) & (int32_t)0x0000FFFF) | \
arm_math.h(566): warning:  #47-D: incompatible redefinition of macro "__PKHTB"  (declared at line 855 of "../Drivers/CMSIS/Include/cmsis_armcc.h")
    #define __PKHTB(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) <<    0) & (int32_t)0xFFFF0000) | \
arm_math.h(1063): error:  #79: expected a type specifier
    __STATIC_FORCEINLINE int32_t __SMMLA(
arm_math.h(1063): error:  #101: "int32_t" has already been declared in the current scope
    __STATIC_FORCEINLINE int32_t __SMMLA(
arm_math.h(1063): error:  #141-D: unnamed prototyped parameters not allowed when body is present
    __STATIC_FORCEINLINE int32_t __SMMLA(
arm_math.h(1068): error:  #20: identifier "sum" is undefined
      return (sum + (int32_t) (((int64_t) x * y) >> 32));
arm_math.h(1068): error:  #20: identifier "x" is undefined
      return (sum + (int32_t) (((int64_t) x * y) >> 32));
arm_math.h(1068): error:  #20: identifier "y" is undefined
      return (sum + (int32_t) (((int64_t) x * y) >> 32));
arm_math.h(1681): error:  #757: function "int32_t"  is not a type name
          int32_t shift,
arm_math.h(1696): error:  #757: function "int32_t"  is not a type name
          int32_t shift,
arm_math.h(1794): error:  #757: function "int32_t"  is not a type name
          int32_t resetStateFlag);
arm_math.h(1812): error:  #757: function "int32_t"  is not a type name
          int32_t resetStateFlag);
arm_math.h(1831): error:  #757: function "int32_t"  is not a type name
          int32_t resetStateFlag);
arm_math.h(4459): error:  #757: function "int32_t"  is not a type name
            int32_t *pTapDelay;           /**< points to the array of delay values.  The array is of length numTaps. */
arm_math.h(4472): error:  #757: function "int32_t"  is not a type name
            int32_t *pTapDelay;           /**< points to the array of delay values.  The array is of length numTaps. */
arm_math.h(4485): error:  #757: function "int32_t"  is not a type name
            int32_t *pTapDelay;           /**< points to the array of delay values.  The array is of length numTaps. */
arm_math.h(4498): error:  #757: function "int32_t"  is not a type name
            int32_t *pTapDelay;           /**< points to the array of delay values.  The array is of length numTaps. */
arm_math.h(4533): error:  #757: function "int32_t"  is not a type name
          int32_t * pTapDelay,
arm_math.h(4569): error:  #757: function "int32_t"  is not a type name
          int32_t * pTapDelay,
arm_math.h(4607): error:  #757: function "int32_t"  is not a type name
          int32_t * pTapDelay,
arm_math.h(4645): error:  #757: function "int32_t"  is not a type name
          int32_t * pTapDelay,
arm_math.h(5418): warning:  #174-D: expression has no effect
      int32_t i;                                   /* Index variable */
arm_math.h(5418): error:  #65: expected a ";"
      int32_t i;                                   /* Index variable */
arm_math.h(5422): error:  #20: identifier "i" is undefined
      i = (int32_t) ((x - S->x1) / xSpacing);
arm_math.h(5475): warning:  #174-D: expression has no effect
      int32_t index;                               /* Index to read nearest output values */
arm_math.h(5475): error:  #65: expected a ";"
      int32_t index;                               /* Index to read nearest output values */
arm_math.h(5480): error:  #20: identifier "index" is undefined
      index = ((x & (q31_t)0xFFF00000) >> 20);
arm_math.h(5533): warning:  #174-D: expression has no effect
      int32_t index;                               /* Index to read nearest output values */
arm_math.h(5533): error:  #65: expected a ";"
      int32_t index;                               /* Index to read nearest output values */
arm_math.h(5538): error:  #20: identifier "index" is undefined
      index = ((x & (int32_t)0xFFF00000) >> 20);
arm_math.h(5538): error:  #31: expression must have integral type
      index = ((x & (int32_t)0xFFF00000) >> 20);
arm_math.h(5538): error:  #18: expected a ")"
      index = ((x & (int32_t)0xFFF00000) >> 20);
arm_math.h(5791): error:  #757: function "int32_t"  is not a type name
    int32_t * circBuffer,
arm_math.h(5792): error:  #757: function "int32_t"  is not a type name
    int32_t L,
arm_math.h(5794): error:  #757: function "int32_t"  is not a type name

收藏 评论3 发布时间:2019-7-25 10:09

举报

3个回答
edveve 最优答案 回答时间:2019-7-25 10:29:34
已解决,要将 arm_math.h 的目录包含以下,否则会用 mdk 自带的文件,导致错误.
工程自带:Drivers\CMSIS\DSP\Include
MDK自带:D:\Keil_v5\ARM\PACK\ARM\CMSIS\5.5.1\CMSIS\DSP\Include\arm_math.h
七哥 回答时间:2019-7-25 10:48:36
保证包含、调用文件的唯一性。
raytheonn 回答时间:2020-4-9 09:40:46
你好啊,这个问题我也遇到了,按你说的还是没有解决,能再详细说明下吗,谢谢!
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版