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

unicorn106 wrote on Wednesday, May 15, 2019:

Hi,

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

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, windows seven 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 neither on my W10 or seven.

rtel wrote on Wednesday, May 15, 2019:

I’m not sure if this post is asking a question, but I am curious as to
why the version of Windows on the host machine makes any difference - I
would imagine it would be more likely that the version of GCC being used
in each case was different.

unicorn106 wrote on Wednesday, May 15, 2019:

totaly agree but I try to look for the smallest possibility of answer to understand why I get those errors, I’m a little bit out of ideas. I just try to take the project from working computer and run it on my computer, it work without any probleme until I re-run the code generation with cubeMx. So I still don’t understand why cubeMx on my computer change something wrong even if I put the parameters exactly the same way as on the other computer