6 years, 7 months ago.

Compiler error for Nucleo F401RE target

I added mbed-rtos support for ST nucleo F401RE target which it works fine in keil IDE: but I get the following error in the online IDE:

Error: A1854E: Unknown opcode 'VSTMDBEQ', maybe wrong target CPU? in "mbed-rtos_F401/rtx/TARGET_M4/TOOLCHAIN_ARM/HAL_CM4.c", Line: 157, Col: 2 Error: A1854E: Unknown opcode 'VLDMIANE', maybe wrong target CPU? in "mbed-rtos_F401/rtx/TARGET_M4/TOOLCHAIN_ARM/HAL_CM4.c", Line: 175, Col: 2 Error: A1854E: Unknown opcode 'VSTMDBEQ', maybe wrong target CPU? in "mbed-rtos_F401/rtx/TARGET_M4/TOOLCHAIN_ARM/HAL_CM4.c", Line: 240, Col: 2 Error: A1854E: Unknown opcode 'VLDMIANE', maybe wrong target CPU? in "mbed-rtos_F401/rtx/TARGET_M4/TOOLCHAIN_ARM/HAL_CM4.c", Line: 257, Col: 2

I guess that some compiler flag are missing for Nucleo F401RE target here is the program http://mbed.org/users/abdess/code/rtos_basic_stm32_F401/

2 Answers

6 years, 7 months ago.

Hello,

I sense you asked this question on mbed-devel list where you received a reply from me. Anyway, CM4 file uses fpu instructions. and the 401 target was set without using fpu compiling flag. It should be fixed in the next mbed lib revision.

Regards,
0xc0170

Accepted Answer

Hi , yes this question is part of what i asked in mbed-devel list about systick_handler and thanks you.

posted by Abdessamad El Abbassi 20 Apr 2014
6 years, 7 months ago.

I have no running keil IDE, but I think you will get problems with your code. You have simply commented out the SysTick_Handler used by the ST CMSIS implementation without handling the HAL_IncTick() in your code. The uwTick is used by the ST code for all timeouts. To get a running rtos implementation you have to use a different timer for the rtos scheduler or have to add the HAL_IncTick() to your SysTick_Handler.

Hi Peter, I am aware of systick_handler redefinition and i had already asked about in mbed-devel, in my local KEIL project, i call HAL_IncTick at the end of SysTick_Handler in HAL_CM4.c, but it hangs on this while loop at SystemClock_Config (system_stm32f4xx.c), but stepping on debuging mode (F11) it works fine,and don't know why.

I will update the program in my repo for you to see how i did it and i will apreciate any help and i hope the ST team fix this soon.

posted by Abdessamad El Abbassi 20 Apr 2014