We've used two different versions of the ARM processor (AKA mxscale) here, a big endian and a little endian version. EPICS needs to know which endian its building for. Look at http://sourceforge.net/projects/libera-epics for EPICS patches for the little-endian version (which it sounds like you have). This patch claims there are two different floating point formats for the ARM. EPICS builds big-endian by default (according to src/ca/net_convert.h), which might explain what you're seeing.
Glen Wright
Canadian Light Source
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Rok Šabjan
Sent: Thursday, February 28, 2008 10:12 AM
To: EPICS Techtalk
Subject: Re: floating point problem in CA?
Hi Heinrich,
I remember this problem as we had it in 2004. I remember that we were not able to solve it, but it did not occur if we used a command-line client that wrapped the CDEV library. At that time I did not care about that, but it may help if you want to track down the problem.
Regards,
Rok
On 28.2.2008, at 23:51, Heinrich du Toit wrote:
> Hi
>
> This is weird and I'm not really sure how to track it down.
>
> I have an embedded ARM board. I've compiled EPICS onto that.
>
> I run vlinac (just to get something ) on my host PC (x86)
>
> Then I take an ai variable. (in other words a floating point thing)
>
> If I say from the ARM board caput pvname value Then the correct value
> gets into the pv on my host pc.
> But.. the wrong value gets back via channel access.
> if I caget the value I get the wrong answer.
>
> It seems that the network byte order is done wrongly maybe.. I'm not
> sure.
> If I put 1.0
> and then get again I get: 5.29981e-315
>
> Which is almost like the wrong network byte order but not exactly it
> seems.
> It could be that somewhere along the lines something thinks double is
> 6 bytes only (rather than 8) and then also swaps the byte order.
>
> Maybe there is an htons or something missing somewhere in the code?
> But how this is possible baffles me. :/
>
> I've written a small program to test the structure and layout off
> "double" on both my PC and the ARM. it seems identical to me.
>
> If anybody has any idea how I can "check" this or try and find the
> problem it would be help full.
> I am aware that the problem is not necessarily in epics but could be
> in the compiler options or something like that.
>
>
> thanks
> -Heinrich
>
- References:
- floating point problem in CA? Heinrich du Toit
- Re: floating point problem in CA? Rok Šabjan
- Navigate by Date:
- Prev:
Re: floating point problem in CA? Maren Purves
- Next:
RE: floating point problem in CA? Jeff Hill
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
<2008>
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: floating point problem in CA? Maren Purves
- Next:
RE: floating point problem in CA? Jeff Hill
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
<2008>
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|