Soft vs Hard Floating point
The STM32L476 (which I am using) has a hardware (aka hard) floating point unit.
Unfortunately sometimes the build will stick in a ‘soft’ (aka software) floating point setup for the FreeRTOS.
When this happens I have not yet figured out how to set it back to ‘hard’. I know how to set it (select the base of your project, select Project->Properties->C/C++ Build->Settings->MCU Settings->Floating-point ABI->hard).
But that does not seem to change the actual build. I do a clean build after re-checking the settings but the build still yields “uses VFP register arguments” errors.
These errors are caused by a mismatch in floating-point settings.
Anyone know how to fix this?
The last time this happened the build script for FreeRTOS would not change it’s settings (discovered by selecting Middlewares->FreeRTOS (right-click)->Properties). I had to abandon the project and create a new one then copy over all the changes.
This time that seems fine, but I still get build errors.
It happened when I went to create the ‘Release’ build. The Release build first did not have all the proper include paths, I fixed that then did a build and started getting wrong processor errors, found the processor was not set, set it, did a clean build, normal build -> VFP errors.
-Matt