What is the purpose of the define FLOAT_ABI_HARD? I'm seeing it defined in some nRF52840 projects. I can't seem to find any documentation on it.
What is the purpose of the define FLOAT_ABI_HARD? I'm seeing it defined in some nRF52840 projects. I can't seem to find any documentation on it.
Hey,
A quick google search will land you here
"Hard floats use an on-chip floating point unit. Soft floats emulate one in software"
Thanks.
I suppose I should have elaborated. (I had already done more than a quick google search before posting here.) I'll be more specific and elaborate.
I noticed this define in one version of our build, but not in another.
I searched our entire source tree, including the nRF SDK and libraries (we're using V15.0.0). I found no references.
We're using KEIL as our toolchain. I wondered if it might be some sort of compiler option. I searched all the KEIL documentation I could find. No references found. I contacted KEIL support. They also couldn't find any references. They use command line options to select between hard and soft floats, not preprocessor defines. A deep google search for the FLOAT_ABI_HARD identifier only found hits on Nordic web sites. We decided it must be a Nordic thing.
Finally I did a comparison of our binary image when compiled with and without the define. There was no difference. It doesn't seem to do anything.
It looks like it should be OK to simply delete the define. But, not knowing exactly what it's for, I thought I would try and ask here before doing so.
Hey,
I also can't seem to find where this is being used except for one place, task manager.
Check the sdk/components/libraries/experimental_task_manager folder. Inside the task_manager_core_x.s file, there seems to be a use of FLOAT_ABI_HARD macro.
Other than that, I can't find where else it is used.
Hey,
I also can't seem to find where this is being used except for one place, task manager.
Check the sdk/components/libraries/experimental_task_manager folder. Inside the task_manager_core_x.s file, there seems to be a use of FLOAT_ABI_HARD macro.
Other than that, I can't find where else it is used.