How to use simple floating point (Kinetis)?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to use simple floating point (Kinetis)?

1,992 Views
mjbcswitzerland
Specialist V

Hi All

 

I am sorry about this simple question but CW has beaten me here..

 

I need to use a very small amount of single-precision floating point in a Kinetis project (part without FPU) but can't work out which libraries are needed to be added. I understand that "FP_fixedI_Thumb_LE_v7m.a" means that it includes just single precision IEEE32 - which seems fine (I prefer not to use the fastI since I need to exchange files with the format saved in them and I think that this faster format is not fully IEEE conform).

 

The problem is that this library requires support from other libraries as soon as floats are used. One missing reference is "__FSL__fp_handler_32_to_32" (but there are three or four others).

After studying the "EWL for Kinetis Development" help sections and trying a bunch of libraries that I could find as well as searching for any indication of where these are coming from I have to admit defeat.

 

Any clues?

 

Regards

 

Mark

 

 

Labels (1)
Tags (2)
3 Replies

808 Views
mjbcswitzerland
Specialist V

Hi All

The project has been moved over to GCC for the moment since the CW library issue hasn't been able to be solved yet.

It would however be good to work out how the libraries need to be used so that it can be moved back again or at least for future projects.

Ideas still welcomed...

Regards

Mark

0 Kudos

808 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

I have same error as yours and has it fixed today. the root cause is that c library is not passed. That’s why you get errors.

So to correct this,

1. Please enable automatic library configuration. To do this Go to Properties/C/C++ Build/Settings/Librarian and check Enable Automatic Library Configuration. Under print formats you can select int_FP if you are using printf to print float variables. Otherwise leave it as it is.

2. Go to Settings/ARM Compiler/input and add include search path. "${MCU_TOOLS_HOME}\ARM_EABI_Support\ewl\EWL_C\include"

3. Go to Settings/ARM Linker/input/Library Search Paths and add: "${MCU_TOOLS_HOME}\ARM_EABI_Support\ewl\lib"

Hope this helps!

============================

this answer is for you. if it helps, please click on "correct answer button". thanks!

ZhangJun

808 Views
mjbcswitzerland
Specialist V

Hi

Thanks. In the meantime all projects have been converted form using the Metroworks compiler in CW to the GCC compiler - the main reason actualyl being that the Metroworks compler doesn't support the m0+ core so this was needed anyway.

There are also no issues with floating point with GCC since thsi all seems to be solved with "${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m"

In case I need to add floating point support to an old project I will try the paths.

Regards

Mark

0 Kudos