This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Network programming for eCos under linux


On Wed, Aug 08, 2001 at 08:56:52AM -0600, Trenton D. Adams wrote:


>   > Watch out for endianness issues. i386 linux is little endian.
>   > Whats the endianness of your target? Things like this affects
>   > network code.
> 
> This shouldn't pose a problem since I've configured my ARM as
> little-endian.  However, htons (), htonl (), etc should solve that
> problem anyhow, shouldn't it?  I mean as far networking code goes that
> is.  I would obviously have to be careful about data types between the
> two if they were different.  It's nice to have the ARM with 32-bit
> little-endian!  Makes my life a lot easier since I'm sending data to a
> PC.

You're headed for trouble.  I work on software where the author
"knew" data was being sent from one little endian machine to
another over the network.  Unfortunately one of the ends is now
big-endian, and it's now a royal PITA to maintain this stuff.
Unfortunalyte there aren't standard host-to-little-endian and
little-endian-to-host macros.

> What about threads?  How do those work under Linux?  Are they similar at
> all?  

The set of mechanisms is similar, but the details are
different. For example, roughly the same set of calls to
synchronize threads exists, but the data types and calling
conventions are different.

If you only use a small set of features, wrapping the Linux
calls to make them look like eCos calls would be a viable
option.  An eCos emulator that runs on top of one of the
popular Unix threading libraries would be an interesting
project.  You couldn't accurately emulate the scheduling
algorithm, but for some applications it could be useful.

-- 
Grant Edwards
grante@visi.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]