isjiangnan 发表于 2019-7-25 10:09:51

STM32F7 DSP库使用

报如下错误

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
* @versionV1.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

isjiangnan 发表于 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

toofree 发表于 2019-7-25 10:48:36

保证包含、调用文件的唯一性。

raytheonn 发表于 2020-4-9 09:40:46

你好啊,这个问题我也遇到了,按你说的还是没有解决,能再详细说明下吗,谢谢!
页: [1]
查看完整版本: STM32F7 DSP库使用