2020-01-15 02:37 AM
Hello i want to use dsp in my project in Keil IDE for that i have to include arm_math.h.
In that case i am getting 30 errors
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1183): error: #79: expected a type specifier
__STATIC_FORCEINLINE int32_t __SMMLA(
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1183): error: #101: "int32_t" has already been declared in the current scope
__STATIC_FORCEINLINE int32_t __SMMLA(
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1183): error: #141-D: unnamed prototyped parameters not allowed when body is present
__STATIC_FORCEINLINE int32_t __SMMLA(
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1188): error: #20: identifier "sum" is undefined
return (sum + (int32_t) (((int64_t) x * y) >> 32));
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1188): error: #20: identifier "x" is undefined
return (sum + (int32_t) (((int64_t) x * y) >> 32));
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1188): error: #20: identifier "y" is undefined
return (sum + (int32_t) (((int64_t) x * y) >> 32));
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1801): error: #757: function "int32_t" is not a type name
int32_t shift,
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1816): error: #757: function "int32_t" is not a type name
int32_t shift,
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1914): error: #757: function "int32_t" is not a type name
int32_t resetStateFlag);
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1932): error: #757: function "int32_t" is not a type name
int32_t resetStateFlag);
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1951): error: #757: function "int32_t" is not a type name
int32_t resetStateFlag);
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(4585): 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. */
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(4598): 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. */
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(4611): 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. */
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(4624): 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. */
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(4659): error: #757: function "int32_t" is not a type name
int32_t * pTapDelay,
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(4695): error: #757: function "int32_t" is not a type name
int32_t * pTapDelay,
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(4733): error: #757: function "int32_t" is not a type name
int32_t * pTapDelay,
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(4771): error: #757: function "int32_t" is not a type name
int32_t * pTapDelay,
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5544): warning: #174-D: expression has no effect
int32_t i; /* Index variable */
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5544): error: #65: expected a ";"
int32_t i; /* Index variable */
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5548): error: #20: identifier "i" is undefined
i = (int32_t) ((x - S->x1) / xSpacing);
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5601): warning: #174-D: expression has no effect
int32_t index; /* Index to read nearest output values */
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5601): error: #65: expected a ";"
int32_t index; /* Index to read nearest output values */
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5606): error: #20: identifier "index" is undefined
index = ((x & (q31_t)0xFFF00000) >> 20);
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5659): warning: #174-D: expression has no effect
int32_t index; /* Index to read nearest output values */
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5659): error: #65: expected a ";"
int32_t index; /* Index to read nearest output values */
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5664): error: #20: identifier "index" is undefined
index = ((x & (int32_t)0xFFF00000) >> 20);
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5664): error: #31: expression must have integral type
index = ((x & (int32_t)0xFFF00000) >> 20);
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5664): error: #18: expected a ")"
index = ((x & (int32_t)0xFFF00000) >> 20);
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5940): error: #757: function "int32_t" is not a type name
int32_t * circBuffer,
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5941): error: #757: function "int32_t" is not a type name
int32_t L,
C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(5943): error: #757: function "int32_t" is not a type name
is there any special thing to do for including arm_math.h
Solved! Go to Solution.
2020-01-16 06:15 AM
hello, when i included arm_math.h from keil it's taking different path
when i generated program from cubemx that time select copy_all_used_libraries_into_the_project in project manager then it will generate dsp header files into my project than i include that arm_math.h header file from project_name/Drivers/CMSIS/DSP/Include path.
and give that include path in c/c++ project
than it will work
2020-01-15 04:02 AM
Probably need to be including other libraries first. Try stdint.h
2020-01-15 10:28 PM
stdint.h not working
2020-01-15 11:50 PM
2020-01-16 12:05 AM
> In that case i am getting 30 errors
Always start with the first listed error. Some cause a loooong list of aftereffects.
> C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\DSP\Include\arm_math.h(1183): error: #79: expected a type specifier __STATIC_FORCEINLINE int32_t __SMMLA(
Check for toolchain-specific "# ifdef"s before.
Check where typedef'd specifiers or qualifiers like __STATIC_FORCEINLINE are defined, and how they are included.
2020-01-16 12:07 AM
Please check if you have ARM_MATH_CMx defined in your Keil project (under settings ->C/C++ -> Defines), where x is a number of your Cortex.
Edit: I see now you have STM32H7 in Keil, and you have these defines:
USE_HAL_DRIVER,STM32H743xx,USE_HAL_DRIVER,STM32H743xx
Should be:
USE_HAL_DRIVER,STM32H743xx,USE_HAL_DRIVER,STM32H743xx,ARM_CORTEX_CM7
2020-01-16 02:02 AM
Hello thanks for reply i tried both of things
defined ARM_MATH_CM7
USE_HAL_DRIVER,STM32H743xx,USE_HAL_DRIVER,STM32H743xx,ARM_CORTEX_CM7
but there is no effects on errors
2020-01-16 03:55 AM
https://community.st.com/s/question/0D50X0000BFxfLySQJ/errors-when-including-armmathh
this guy also have the same problem as mine
2020-01-16 05:25 AM
Thanks it resolved
2020-01-16 05:28 AM
Could you please update what was the issue & solution?
Thanks, Tilen