ts-7000
[Top] [All Lists]

[ts-7000] Re: transferring floating point data from PC to TS7300

To:
Subject: [ts-7000] Re: transferring floating point data from PC to TS7300
From: "Yan Seiner" <>
Date: Sun, 18 Feb 2007 15:46:32 -0000
--- In  "Oguz Dilmac" <> wrote:
>
> Hi all,
> 
> I'm trying to pass some data from my pc to ts7300 via Ethernet.
> It seems floating point formats of EP9302 and PC are different from
> each other.
> 
> In my program, I have a struct with both floating point and integer
> variables. I simply send this data to ethernet from PC. On the arm
> side, a user program gets the data from socket and put it to a FIFO to
> pass to a kernel module. Then I print them with rt_printk.
> 
> When I dmesg, Integer parts are OK. But float parts are garbage.
> 

I looked at doing this.  I even had a discussion of this on either the
gcc list or the general C list; I forget.

The gist of the issue is this:

While in theory you could get it to work, in practice it is
unmaintainable.

Structs are created by the compiler, and as such, the various byte
padding schemes and memory alignment schemes can vary from compiler to
compiler, between compiler versions, and possibly even between
compiler runs, so there's no guarantee that it will work even on the
same hardware platform.

Now throw in the problem of endiannes, and the different float
formats, and the fact that on some architectures ints are 2 bytes, on
some 4 bytes, and if you're really using off-the-wall stuff, 36 bits.

In other words, it cannot be done.

I ended up normalizing everything into 2 byte big-endian ints, and
writing routines that pack and unpack the data.  (See PHP's
pack/unpack functions.)

Look into the modbus spec for a truly portable (but not easy to
implement) way to transfer data between arbitrary architectures.

--Yan



 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU