[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CORBA for RTEMS



From: Tom Sys <tsys at intec.rug.ac.be>
To: Rosimildo DaSilva <rdasilva at connecttel.com>
Date: Friday, August 20, 1999 2:18 AM
Subject: CORBA for RTEMS


>Dear Mr. DaSilva,
>
>I am a student at the university of Ghent (Belgium) and we are
>interested in using CORBA/RTEMS.
>
>We already have some experience using RTEMS, but running CORBA
>on top of it is new to us. In your mail (7/9/99) you mentioned
>the porting of omniORB2 to RTEMS. But you also say that you
>need RTEMS-19990528 (snapshot) to build upon.
>Can you please tell me where we can download this snapshot or
>the diffs ?
>

The snapshots are provided by OARCorp, they are not
publicly available. All this new stuff will be available with the
next release of RTEMS. Joel, and his team,  are working
extremely hard to get this release out *real soon*.
I'll let Joel to fill in about availability of the snapshots.

>I have also a second question : the required code space (.text)
>for CORBA seems to be about 600 kB. However in an article from
>Niall Murphy (Introduction to CORBA for Embedded Systems,
>http://204.33.180.24/98/9810fe2.htm ) I read that a full ORB
>library is typically in the order of 150 kB... Does this 600 kB
>contain more than just the ORB library or is this typical number
>not so correct ?


The 600K is a combination of many packages. I'll try to
give some hints where this number comes from.
In the example below I have used the CDTEST as a small test case,
where I compiled it, with just RTEMS, and added peaces to it. These
peaces are: IOSTREAM + Networking + ORB.

In a nutshell:
+-----------------------------------+------ Code -------------+ -----------
Data --------------+
 | CORE RTEMS                  |         121K                  |
17K                     |
+-----------------------------------+----------------------------+ ---------
-------------------------+
 |  C++/IOSTREAM              |           55K                  |
2K                     |
+-----------------------------------+----------------------------+ ---------
-------------------------+
 | NETWORKING                 |          116K                 |
8K                    |
+-----------------------------------+----------------------------+ ---------
-------------------------+
 | MINIMUM ORB *               |          320K                 |
17K                  |
+-----------------------------------+----------------------------+ ---------
-------------------------+
 | FULL BLOWN ORB         |          459K                 |
27K                   |
+-----------------------------------+----------------------------+ ---------
-------------------------+

 * No dynamic support( Any, TypeCode, etc ).

There are some commercial ORBs that claim to have a footprint of 150K
ORBExpress ( sorry do not have the URL handy ) comes to my mind.

Hope this helps.

=======================================================================
See some comparative numbers for code and data spaces for
a small CORBA sample and a plain RTEMS sample to get an idea
of the footprint required by omniORB.

CASE #1 - RTEMS' cdtest example without iostream support:

   text    data     bss     dec     hex filename
 121589    4983   11684  138256   21c10 cdtest.exe

   CODE --> 121K
   DATA -->   5K
   BSS  -->  12K

I'll assume this number as the minimun size of a RTEMS application. It might
not be
precise, but it gives you an idea of the footprint of RTEMS itself.


CASE #2 - RTEMS' cdtest example with iostream support:

   text    data     bss     dec     hex filename
 175861    5943   12164  193968   2f5b0 cdtest.exe

CODE --> 176K
DATA -->   6K
BSS  -->  13K


It is important to notice that Iostream alone adds a fooprint of 55K to the
code space
and 2K to the data space.


CASE #3 - RTEMS' cdtest example with iostream + Networking support

   text    data     bss     dec     hex filename
 291957   8503   17052  317512   4d848 cdtest.exe

   CODE --> 292K
   DATA -->   9K
   BSS  -->    18K


As you can see, the network stack adds a footprint of 116K to the code
space,
and 8K to the data space. Network stack requires a lot of memory to that are
allocated dynamically and do not appear on these numbers.


CASE #4 - omniORB eg3_impl example:   --- Full support ( all dynamic stuff
from CORBA )

   text    data     bss     dec     hex filename
 750301   33855   19044  803200   c4180 eg3_impl.elf32


   CODE --> 751K
   DATA -->  34K
   BSS  -->  20K

CASE #5 - omniORB eg3_impl example compiled with RtemsMinimumCorba=1.

   text    data     bss     dec     hex filename
 611645   24415   18788  654848   9fe00 eg3_impl.elf32


CODE --> 612K
DATA -->  25K
BSS  -->  19K

For a full blown ORB, with all dynamic stuff, it adds around 459K of code
space
plus 27K of data space.

For a minimum ORB, without the dynamic stuff, it adds around 320K of code
space
plus 17K of data space.


Regards, Rosimildo.

+---------------------------------------------------------------------
| ConnectTel, Inc. - Austin, Texas.
| Phone : 512-338-1111 - Fax : 512-918-0449
| Email : devl at connecttel.com  or mkting at connecttel.com
| Site  : http://www.connecttel.com
+---------------------------------------------------------------------