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
已解决,要将 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 保证包含、调用文件的唯一性。 你好啊,这个问题我也遇到了,按你说的还是没有解决,能再详细说明下吗,谢谢!
页:
[1]