ST意法半导体
直播中

王银喜

7年用户 2398经验值
私信 关注
[问答]

在没有IDE(Makefile) 的情况下包含cmsis dsp库时出错怎么处理?

我以前一直在使用 CubeIDE 进行 STM32 开发。最近我转而使用 VScode 和 makefile。在我看来,这是一个非常积极的升级,但今天我遇到了一个问题。我试图将 CMSIS DSP 库包含到我的项目中。我使用 cubeMX 软件为我生成 makefile。在我的 makefile 中,我定义了以下 LDFLAGS:
  • #######################################
  • # LDFLAGS
  • #######################################
  • # link script
  • LDSCRIPT = STM32H750VBTx_FLASH.ld
  • # libraries
  • LIBS = -lc -lm -lnosys -larm_cortexM7lfsp_math
  • LIBDIR = -Ldsp/lib
  • LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections -static
尝试编译时出现以下错误:
  • Drivers/CMSIS/Include/cmsis_gcc.h:1852:57: error: conflicting types for '__QSUB'
  • 1852 | __attribute__((always_inline)) __STATIC_INLINE int32_t __QSUB( int32_t op1, int32_t op2)
  •      |                                                        ^~~~~~
  • In file included from Src/model.c:22:
  • Drivers/CMSIS/Include/arm_math.h:5129:12: note: previous implicit declaration of '__QSUB' was here
  • 5129 |    *pIb = __QSUB(product2, product1);
  •      |           ^~~~~~
我知道使用 CubeIDE 时代码运行没有问题。感谢任何输入。







回帖(1)

宋阳

2022-12-12 10:57:30
我需要做一些 C 定义(就像你说的):


  • # C defines
  • C_DEFS =  
  • -DUSE_HAL_DRIVER
  • -DSTM32H750xx
  • -DARM_MATH_CM7
  • -D__FPU_PRESENT

ARM_MATH_CM7 和 __FPU_PRESENT 解决了我的问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分