selected processor does not support `vstmdbeq r0!,{s16-s31}' in Thumb mode

Hi,

I have the following errors since I added freertos from STM32CubeMX 5.2.0:

Error: selected processor does not support `vstmdbeq r0!,{s16-s31}' in Thumb mode

Error: instruction not allowed in IT block -- `stmdb r0!,{r4-r11,r14}'

Error: selected processor does not support `vldmiaeq r0!,{s16-s31}' in Thumb mode

Error: instruction not allowed in IT block -- `msr psp,r0'

I'm actually working on JetBrains CLion 2019.1.3 with MinGW v5.0 and Cmake bundle v3.14.3, openocd-0.10.0, gcc-arm-none-eabi-7-2017-q4-major-win32-sha2.exe, windows10 and the stm32373c-eval.

I tried the following changes accordingly to what I founded on different topics in the CMakeLists.txt:

#Uncomment for hardware floating point
SET(FPU_FLAGS "-mfloat-abi=hard -mfpu=fpv4-sp-d16")
#add_definitions(-DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__FPU_PRESENT=1)

#Uncomment for software floating point
#SET(FPU_FLAGS "-mfloat-abi=soft")

SET(COMMON_FLAGS
"-mcpu=cortex-m4 ${FPU_FLAGS} -mthumb -mthumb-interwork -specs=nosys.specs -specs=nano.specs \
-specs=rdimon.specs -Wl,-Map=output.map -Wl,--gc-sections -lm -o -ffunction-sections -fdata-sections \
-g -fno-common -fmessage-length=0")

This changes works on a windows seven computer with exactly the same configuration but not on my w10.

1
4 comments

Hi! It's hard to define the cause without the project. For a start you can try uncommenting the line with add_definitions() and reloading the CMake project.

0

Just following - have the same problems with a vanilla CubeMX project for Nucleo F303K8 (using FreeRTOS).

0
Avatar
Permanently deleted user

As for me:

  • CLion 2019.2.5 running on Ubuntu Budgie 19.10
  • CubeMX 5.4.0 (F4 library 1.24.1 with FreeRTOS 10.0.1)
  • GCC gcc-arm-none-eabi 15:7-2018-q2-6
  • Empty project for STM32F4DISCOVERY (with STM32F407VGTx CPU)
  • Enabled FreeRTOS

I had the exact set of errors about unsupported instructions. Fix for me was

  • Uncomment relevant SET(FPU_FLAGS ...)  line (I enabled hardware FPU variant)
  • Run Tools>CMake>Reset cache and reload project

Uncommenting add_definitions() line gave me harmless warning: "__FPU_PRESENT" redefined .

1

Pawel Kraszewski's solution worked for me. Thank you very much! I am using CLion 2020.1 and CubeMX 5.6.1.

0

Please sign in to leave a comment.