This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

STM32F1 compiler issues

Hello,

I am trying to compile a project for STM32F103CB, but it doesn't seem to work properly.
First of all, this project compiles and runs on IAR SDK.
I ported it on uVision 5 SDK, and, after quite some pain, I made it compile.
The problem is, I am still getting this warning:

Libraries\X_Lib\src\X_Configuration.c(438): warning:  #223-D: function "roundf" declared implicitly
        GAverage[0] = (u32)(roundf((float)GAverage[0]/(float)(GSampleCount)));

although I am including the math.h file in X_Configuration.c:

#include <math.h>

in math.h, roundf is defined as

extern _ARMABI_FPEXCEPT double round(double /*x*/);
extern _ARMABI_FPEXCEPT float roundf(float /*x*/);
_ARMDEFLD1(round);

...what am I doing wrong?
Is there some precise setting I overlooked?

Thanks a lot for your time!

Parents
  • in math.h, roundf is defined as

    Ahem, no. That's no definition; it's a declaration. You really need be perfectly clear about that distinction.

    And are you sure that the compiler actually sees that line you're looking at? I.e. it's not disabled by some #if clause surrounding it, or by you looking at a completely different copy of <math.h> than the one the compiler is actually using?

    It's often necessary to generate and double-check the preprocessor's intermediate version of your source to figure out such puzzles.

Reply
  • in math.h, roundf is defined as

    Ahem, no. That's no definition; it's a declaration. You really need be perfectly clear about that distinction.

    And are you sure that the compiler actually sees that line you're looking at? I.e. it's not disabled by some #if clause surrounding it, or by you looking at a completely different copy of <math.h> than the one the compiler is actually using?

    It's often necessary to generate and double-check the preprocessor's intermediate version of your source to figure out such puzzles.

Children