[Icc-mot] RE: Icc-mot Digest, Vol 41, Issue 6

Edward Karpicz ekarpicz at freemail.lt
Thu Jan 31 01:09:24 PST 2008


Still the same. It works, both foo() variants and long fround(-xxx).

Does fround caller see proper fround prototype? Aren't there warnings about 
calling functions without prototype? Wrong prototype in the header file?
Else it must be something not really fround and integer<->FP conversion 
related. Stack overflow for example.

Edward


----- Original Message ----- 
From: "Rene Streubel" <r.streubel at emtec-papertest.de>
To: <icc-mot at imagecraft.com>
Sent: Thursday, January 31, 2008 9:56 AM
Subject: [Icc-mot] RE: Icc-mot Digest, Vol 41, Issue 6


>
> Of course I include math.h
> I deactivate the fround function in math.h with comment "//".
> //#define fround froundf
> And the complete fround is:
> signed long fround(float data_in)
> {
>    signed long data_out;
>
> if (data_in>0)
> {
>     data_out=(signed long)(data_in+0.5);
> }
> else
> {
>     data_out=(signed long)(data_in-0.5);
> }
>
> return data_out;
> }
> The important thing is that it crashes, if data_in is a signed value.
>
> But please look at my other tests: They are simpler...
> (With froundf I use the predefined froundf function from the include
> path [math.h] and not my own function)
>
> signed int foo(void)
> {return froundf(abs(-101.85));}
>
> In this function I use "abs()" to get an unsigned value. This works.
> But, if the function has to round a signed value, it crashes:
>
> signed int foo(void)
> {return froundf(-101.85);}
>
> This is reproducible on my system. I look to the include paths, but they
> are correct! (Also the library path)
> I think it only crashes, if the complete project is large and use
> expanded memory pages. Do you use expanded memory pages in your tests?
>
> Best regards
> Rene
>
>
>
>
> -----Original Message-----
> From: icc-mot-bounces at imagecraft.com
> [mailto:icc-mot-bounces at imagecraft.com] On Behalf Of
> icc-mot-request at imagecraft.com
> Sent: Wednesday, January 30, 2008 9:00 PM
> To: icc-mot at imagecraft.com
> Subject: Icc-mot Digest, Vol 41, Issue 6
>
> Send Icc-mot mailing list submissions to
> icc-mot at imagecraft.com
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://dragonsgate.net/mailman/listinfo/icc-mot
> or, via email, send a message with subject or body 'help' to
> icc-mot-request at imagecraft.com
>
> You can reach the person managing the list at
> icc-mot-owner at imagecraft.com
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Icc-mot digest..."
>
>
> Today's Topics:
>
>   1. Re: fround problem / fp conversion (Richard Man)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 30 Jan 2008 01:23:47 -0800
> From: Richard Man <richard-lists at imagecraft.com>
> Subject: Re: [Icc-mot] fround problem / fp conversion
> To: "Discussion List for ICC08/11/12/16 users. You do NOT need to
> subscribe to icc-announce if you are a member of this."
> <icc-mot at imagecraft.com>, "Discussion List for
> ICC08/11/12/16 users.
> You do NOT need tosubscribe toicc-announce if you are a
> member of
> this." <icc-mot at imagecraft.com>
> Message-ID: <200801300939.m0U9daGj060899 at dragonsgate2.imagecraft.com>
> Content-Type: text/plain; charset="us-ascii"; format=flowed
>
> As with Edward, I can't reproduce this problem. Whatever it is, I
> don't think it's related to uint2fp or signed int to FP conversion..?
>
> At 03:20 AM 1/23/2008, Edward Karpicz wrote:
>>Both get_pressure2() variants seem to work me :-(. Do you have
>>
>>#include <math.h>
>>
>>in your code?
>>
>>
>>Regarding your own fround:
>>
>>signed long fround(float data_in)
>>{
>>signed long data_out;
>>if (data_in>0)
>>{
>>    data_out=(signed long)(data_in+0.5);
>>}
>>return data_out;
>>}
>>
>>1) when data_in is negative or zero, data_out is undefined
>>2) if you included math.h, then it should complain  about redefining
>>fround. fround should return float, not signed long. BTW is fround a
>>standard C function?
>>3) without valid fround prototype you not only should get a warning
>>about missing prototype, but also it's expected to hang. Functions
>>returning longs and floats, such functions are pushing return value
>>to the stack. Callee has to pull return value from stack. Without
>>valid prototype, any function is assumed to be defined as int
>>foo(int). It wouldn't hang if fround was returning
>>int/short/char/void and signed variants of <=16bits wide return types.
>>
>>Also, is include path pointing to V7 include folder?
>>
>>Edward
>>
>>
>>
>>----- Original Message ----- From: "Rene Streubel"
>><r.streubel at emtec-papertest.de>
>>To: <icc-mot at imagecraft.com>
>>Sent: Wednesday, January 23, 2008 12:19 PM
>>Subject: [Icc-mot] fround problem / fp conversion
>>
>>
>>I tried to reduce the function:
>>If the function have to round an unsigned value, so it is OK:
>>
>>signed int get_pressure2(unsigned char p_ch)
>>{
>>return froundf(abs(-101.85));
>>}
>>
>>But, if the function have to round a signed value, it crashes:
>>
>>signed int get_pressure2(unsigned char p_ch)
>>{
>>return froundf(-101.85);
>>}
>>
>>I checked my Program Memory. I had a mistake in my email. The
>>correct settings in my project are:
>>Program Memory: 0x4000.0x7FFF:0xC000.0xEFFF
>>My complete program needs pages 20..23 Is there a problem with the
>>memory mapping?
>>
>>I wrote about my own fround function and that it crahes with the if
>>statement inside.
>>There is the same thing. If it is signed in the if statement it
>>crashes. Without the if statement it not crashes. I think there is a
>>problem with the signed fp conversion / emulation.
>>
>>Richard wrotes about the 7.03 Beta0 and that the compiler did not
>>generate calls to "uint2fp" for unsigned to FP conversion. Maybe
>>there is now a new bug with any conversion?
>>
>>What should I do?
>>
>>Rene
>>
>>
>>
>>-
>
> // richard (This email is for mailing lists. To reach me directly,
> please use richard at imagecraft.com)
>
>
>
> ------------------------------
>
> _______________________________________________
> Icc-mot mailing list
> Icc-mot at imagecraft.com
> http://dragonsgate.net/mailman/listinfo/icc-mot
>
>
> End of Icc-mot Digest, Vol 41, Issue 6
> **************************************
>
>
>
> _______________________________________________
> Icc-mot mailing list
> Icc-mot at imagecraft.com
> http://dragonsgate.net/mailman/listinfo/icc-mot
> 




More information about the Icc-mot mailing list