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


Assembler FPU statements not recognized

I created a new project for the STM32F429IDico as described in the wiki.
The simple main loop worked OK.
But then I added an assembler file to the project I got these message:
../src/cm4Forth.S:6490: Error: selected processor does not support Thumb mode `vmov.f32 s2,#1.’

Preprocessor variable is set: __FPU_USED
What is wrong?

maybe wrong fpu abi and h/w selected ?

I added the following and it worked now:
.code 16
.syntax unified
.cpu cortex-m4
.fpu fpv4-sp-d16
Regards F. Seuhs


France

The right correction should be to edit the project properties and select the FPU and FPU-ABI:

project >> Properties >> C/C++ Build >> Settings >> MCU Settings
2015 03 30 134900

select FPU = fpv3_fp16
and fpu-abi = hard

Do this on both the main project and the static library project, then clean both projects (you can just delete their Debug folders) and rebuild. It should then work without any problem.

This is in fact due to a small glitch in the current System Workbench version: for STM32F4 we note they have an FPU, but nevertheless keep generating code without using the FPU... This will be corrected in the next update.

Correcting by changing the source code, like you do, will thus no more be needed, and all your code (C and ASM) will be able to use the FPU.

Bernard


Thank you Bernard
But my Setting window looks different, there is no input possibility for the fpu, see attached screenshot.

Updating the IDE with help>>Check For Updates didn’t really work well.

First windows asked for unauthorisized software, I allowed to continue, after some actions the updating stopped with:

An error occurred while installing the items
session context was:(profile=epp.package.cpp, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> Rorg.eclipse.rcp.configuration_root.win32.win32.x86_64 1.0.3.v20150204-1745, action=org.eclipse.equinox.internal.p2.touchpoint.natives.actions.ChmodAction).
The action chmod failed - file C:\Ac6\SystemWorkbench\eclipse.exe does not exist

An error occurred while installing the items
session context was:(profile=epp.package.cpp, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null-- > Rorg.eclipse.rcp.configuration_root.win32.win32.x86_64 1.0.3.v20150204-1745, action=org.eclipse.equinox.internal.p2.touchpoint.natives.actions.ChmodAction).
The action chmod failed - file C:\Ac6\SystemWorkbench\eclipse.exe does not exist

Regards F. Seuhs

France

Hello,

Obviously your System Workbench installation is not up-to-date.

To undesrtand why things go wrong when updating, I would like to have some more information:

  • Where did you install System Workbench for STM32?
  • Do you install it using the all-in-one installer or in an existing Eclipse installation?
  • If you install on an existing Eclipse, what Eclipse version do you use?
  • When you try to install updates, what are the outdated elements?
    • If there is also Eclipse, and mainly CDT, updates, try to install by phases:
      • First install only the standard Eclipse updates (non CDT nor Ac6)
      • Then install the CDT updates; they are known to need to be installed separately in some cases...
      • Finally bring the other updates (including the Ac6 updates)


In the meantime you can add “-mfpu=fpv4-fp-d16 -mfpu-abi=hard” options in the “Miscellaneous” tab of both the compiler and linker sections.

Bernard