Skip to main content
Associate II
January 19, 2026
Question

CMake build error

  • January 19, 2026
  • 2 replies
  • 350 views

Hello,

I am developing via a CMake project in VSCode. My build environment got corrupted by trying to mv/rename firmware folders via git. Now i cannot build anymore.

[ 1%] Building C object cmake/stm32cubemx/CMakeFiles/FreeRTOS.dir/__/__/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c.o
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h: Assembler messages:
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c:255: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c:255: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c:403: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c:403: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:211: Error: no such instruction: `mrs %edx,basepri'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:212: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:213: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:214: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:215: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:229: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:195: Error: operand type mismatch for `mov'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:196: Error: no such instruction: `msr basepri,%eax'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:197: Error: no such instruction: `isb'
/home/jonas/repos/aware01/firmware2_1/cmake/stm32cubemx/../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h:198: Error: invalid instruction suffix for `ds'
make[2]: *** [cmake/stm32cubemx/CMakeFiles/FreeRTOS.dir/build.make:93: cmake/stm32cubemx/CMakeFiles/FreeRTOS.dir/__/__/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:177: cmake/stm32cubemx/CMakeFiles/FreeRTOS.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
build finished with error(s).

 

I already tried deleting the build folder via `rm -rf build/Debug`

and then regenerate CMake `cube-cmake -S . -B build/Debug`

After that i regenerated the CubeMX project. 
The error persists. 

It looks like CMake is trying to build for an M4 instruction set, despite me having setup H7 in CubeMX.
It worked like a charm before. I am really stuck, would appreciate some help!

Best Jonas

2 replies

Nawres GHARBI
Technical Moderator
February 11, 2026

Hi @95lux 

Did you made the right adjustments in the Cmakelists.txt file to point on the new FW ? 

 

95luxAuthor
Associate II
February 16, 2026

Sorry, this can be closed. Was a dumb CMake error on my side. 

I had to include the correct toolchain file, when regenerating the build env:

cmake -S . -B build/Debug \
 -G Ninja \
 -DCMAKE_TOOLCHAIN_FILE=./cmake/gcc-arm-none-eabi.cmake

 Thanks for replying!

Best Jonas

Julien D
ST Employee
February 16, 2026

Additionally, you can rely on CMakePresets.json, which should already define the toolchain file and the generator:

cmake -S . --preset Debug
cmake --build --preset Debug

 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.