Loading...
 

SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32


Error: sorry, unimplemented: Thumb-1 hard-float VFP ABI - SOLVED

Hi. I’m new to STM32 in general, so perhaps there is an obvious solution to the problem, but I couldn’t find it.

I am using the STM32F302RET6 chip, and I have generated code from CubeMX. I have then imported the code to System Workbench, and now while compiling it I’m getting the error:

In file included from ../../../Drivers/CMSIS/Include/core_cm4.h:169:0,
from ../../../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xe.h:164,
from ../../../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h:136,
from ../../../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h:48,
from ../../../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h:47,
from ../../../Inc/stm32f3xx_hal_conf.h:178,
from ../../../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h:48,
from D:/Kazek/Projekty/Telefony_RTL20/soft_v3_stm/RTL20/Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal.c:54:
../../../Drivers/CMSIS/Include/core_cmInstr.h: In function ‘__REV’:
../../../Drivers/CMSIS/Include/core_cmInstr.h:405:1: sorry, unimplemented: Thumb-1 hard-float VFP ABI

The compiler options are:
COLLECT_GCC_OPTIONS=’-mthumb’ ‘-mfloat-abi=hard’ ‘-mfpu=fpv4-sp-d16’ ‘-D’ ‘USE_HAL_DRIVER’ ‘-D’ ‘STM32F302xE’ ‘-I’ ‘../../../Inc’ ‘-I’ ‘../../../Drivers/STM32F3xx_HAL_Driver/Inc’ ‘-I’ ‘../../../Drivers/CMSIS/Include’ ‘-I’ ‘../../../Drivers/CMSIS/Device/ST/STM32F3xx/Include’ ‘-O1’ ‘-g3’ ‘-Wall’ ‘-fmessage-length=0’ ‘-v’ ‘-ffunction-sections’ ‘-c’ ‘-MMD’ ‘-MP’ ‘-MF’ ‘Drivers/STM32F3xx_HAL_Driver/stm32f3xx_hal.d’ ‘-MT’ ‘Drivers/STM32F3xx_HAL_Driver/stm32f3xx_hal.o’ ‘-o’ ‘Drivers/STM32F3xx_HAL_Driver/stm32f3xx_hal.o’

I have checked the MCU settings, and they are:
Floating point hardware: fpv4-sp-d16
Floating-point ABI: hard
Instruction Set: Thumb II

I have read elsewhere, that Thumb-1 does not support hardware floating point calculations. But There is Thumb II selected in the options. Why does the error say about Thumb-1?

EDIT - SOLVED:
The problem was that the target MCU was not set properly by Cube MX (In Workbench: Project Properties -> C/C++ Build -> Settings -> Target tab). It seems that the MCU is forgotten (not saved) if the target board is not set. I had to define a custom board, and then set the MCU, and it now compiles properly.

I had the same error message. It was solved by updating System Workbench. The stock download does seem to need updating.

I have experienced difficulties getting the target device selection to “stick”, that is, be set and saved properly once set.

One normally sets the target device by navigating through this menu sequence:
Project -> Properties -> C/C++ Build (left list) -> Settings (left list) -> Target (tab)

There are several drop-down lists on this tab that let you select device Series, MCU, and Board.

I have found that this setting is often distorted, reverted or otherwise not set properly if I change it. This is especially true if I’m using Eclipse’s “Build Configurations” capability so I can have several different build configurations for a single project (e.g. different #defines and compiler settings for a “Debug” configuration vs. a “Release” configuration).

These problem(s) existed in the 1.10.x version of the AC6 tools, I just got the 1.11.x update today but have not checked to see if this issue has been fixed.

hi MSchultz,

As the warning said, this manip is not recommanded.
you must create a new project with the needed board/mcu ... and copy paste the sources and so on ...

Christelle


I just had the same problem here with the STM32F769-Discovery. The correct board was selected by the example project.
I select another MUC and after reselect the board. That solved the problem.

I had the same problem and this was the solution that worked for me

Just updated the firmware packet for my MCU and got the error.

“I select another MCU and after reselect the board. That solved the problem. ”
This simple solution worked for me. Thank you!

Seems to be a problem/bug that exists for quite a while...