2010-12-02 06:17:39     Corba and uclinux

Document created by Aaronwu Employee on Aug 23, 2013
Version 1Show Document
  • View in full screen mode

2010-12-02 06:17:39     Corba and uclinux

shuja ahmed (UNITED KINGDOM)

Message: 96405   


I wanted to perform some distributed image processing task between multiple robots.  All the robots are having blackfin processor. To establish communication and to perform distributed computing, I wanted to cross compile Corba or ice-E with uclinux.


Any one already done this? I will appreciate any suggestion or help




2010-12-02 13:25:11     Re: Corba and uclinux

Robert Cochran (UNITED STATES)

Message: 96416   


I was also looking around the other day for CORBA.  I thought maybe I might find an implmentation for CORBA/E for uCLinux, but I had no luck.   In fact, I didn't see much in the way of implementations for embedded CORBA.   Perhaps it hasn't taken off?  And after seeing how heavy the embedded spec is, I pretty much dropped the idea.


When you ask about CORBA, are you asking about CORBA/E?  Have you seen this implemented on embedded devices?


Info on CORBA/E:   www.corba.org/corba-e/






2010-12-02 14:21:45     Re: Corba and uclinux

Wojtek Skulski (UNITED STATES)

Message: 96418    Our team used ICE on BF533 / uCLinux platform. I am trying to gather more

info how it was done.




2010-12-02 18:31:03     Re: Corba and uclinux

Wojtek Skulski (UNITED STATES)

Message: 96422   




concerning ICE-E on uCLinux, one of the developers who did most of this work forwarded me a short description. I can attest I watched this work being done, but I do not know the details. I am attaching a one-page summary. Maybe it will be helpful.






2010-12-03 02:46:46     Re: Corba and uclinux

shuja ahmed (UNITED KINGDOM)

Message: 96427   


Hi Wojtek,


Thanks for help. I will give it a try now and will share the output.






2010-12-03 05:53:15     Re: Corba and uclinux

shuja ahmed (UNITED KINGDOM)

Message: 96444   


Hi Wojtek,


I tried to follow the procedure you suggested. I am using ubuntu platform and I am not able to "make" "IceE-trans-1.2.0" successfully. I got the following error.


making all in src

make[1]: Entering directory `/home/shuja/Desktop/Phd/ICE/IceE-trans-1.2.0/src'

making all in IceUtil

make[2]: Entering directory `/home/shuja/Desktop/Phd/ICE/IceE-trans-1.2.0/src/IceUtil'

c++ -c -I../../include  -DICE_UTIL_API_EXPORTS -I..  -ftemplate-depth-128 -Wall -D_REENTRANT -O2 -DNDEBUG ArgVector.cpp

ArgVector.cpp: In member function ‘void IceUtil::ArgVector::copyVec(int, int, char**)’:

ArgVector.cpp:74: error: ‘strlen’ was not declared in this scope

ArgVector.cpp:91: error: ‘strcpy’ was not declared in this scope

ArgVector.cpp: In member function ‘void IceUtil::ArgVector::copyVec(const std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)’:

ArgVector.cpp:126: error: ‘strcpy’ was not declared in this scope

make[2]: *** [ArgVector.o] Error 1

make[2]: Leaving directory `/home/shuja/Desktop/Phd/ICE/IceE-trans-1.2.0/src/IceUtil'

make[1]: *** [all] Error 1

make[1]: Leaving directory `/home/shuja/Desktop/Phd/ICE/IceE-trans-1.2.0/src'



Any suggestions..




2010-12-03 06:43:39     Re: Corba and uclinux

shuja ahmed (UNITED KINGDOM)

Message: 96446   


Yeah Robert,


I was refering to corba/e which has smaller foot print and specially for embedded systems.




2010-12-03 06:56:35     Re: Corba and uclinux

Robert Cochran (UNITED STATES)

Message: 96447   


strcpy & strlen are in the C library.  Try adding a #include <string.h> to the .cpp files.




2010-12-03 07:23:10     Re: Corba and uclinux

shuja ahmed (UNITED KINGDOM)

Message: 96449   


Hi Again,


I just added string.h and limits.h in the cpp files which were not compiled correctly and now I am able to "make install" atleast "IceE-trans-1.2.0". I will report further progress here so that other users as Robert can also benefit from it.




2010-12-03 11:12:55     Re: Corba and uclinux

Wojtek Skulski (UNITED STATES)

Message: 96456    Our team was using ICE-E 1.3. If you go to the ZeroC download page

mentioned at the bottom of the .doc file , you will see this particular



I do have a remnant of this project in the form of

IceE-1.3.0-blackfinbf533.tar.bz2, but it is 10 megs. The GForge server

refuses to take such a large attachment. I do not know whether it is a

regular ICE-E 1.30 downloaded from ZeroC, or perhaps with some tweaks. My

friends seem too busy to answer this question.


If there is a way to post a 10-meg archive, I can do it for you.




2010-12-04 05:32:37     Re: Corba and uclinux

shuja ahmed (UNITED KINGDOM)

Message: 96469   


Hi Wojtek,


I have followed the procedure, as suggested in the document you forwarded me. In the first step, I have build "IceE-trans-1.2.0" successfully and generated the binary files "icecpp", "slice2cppe" and "slice2javae". Then I have export the path to the these binary files. I have also set the following variables via export:






This is for cross compilation of Ice-E with blackfin. Then I have downloaded "IceE-1.3.0-linux.tar.gz". After decompressing and doing "make" and "make install", I am able to cross compile it with blackfin. In the "cppe/config/Make.rules" of "IceE-1.3.0" folder, I have set the "prefix" variable to point to the build directory (i.e. /home/shuja/Desktop/Phd/ICE/IceE3Build). Now in "IceE3Build" directory, the following files and folders are generated


shuja@ubuntu:~/Desktop/Phd/ICE/IceE3Build$ ls

bin  ICEE_LICENSE  include  lib  LICENSE  slice


The size of IceE3Build in uncompressed form is 30Mb (and 7.6Mb if I compress it). The size of "lib" folder alone is 29Mb. Which is quite large for blackfin processor.


In my project, I am using surveyor robots and they have BF537 processor installed on them. During cross compilation of Ice-E, I did not mention any where about the processor number (i.e. BF537). I guess this cross compiled version should work on any processor following blackfin architecture. Even the final cross compiled libraries you got (i.e. IceE-1.3.0-blackfinbf533.tar.bz2), should work for BF537 too unless they are customized some how for BF533 processor. I guess you can share "IceE-1.3.0-blackfinbf533.tar.bz2" with me on hotmail as it allows to attach 10Mb files. If it is ok with this website and we are not breaking any rules, then please tell me. I will share my hotmail ID with you here.


In the document you forwarded me, I am stuck with the following section which comes after cross compilation of IceE.


"Load the contents of the directory you set as “prefix” above onto the board. On the board set LD_LIBRARY_PATH to include the lib subdirectory of $prefix.


“root:> export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/iceE/lib”


The library folder is 29Mb and even compressed version is also going to be above 6Mb. How can we load it to blackfin processor. I am confuse here now. Please also share if in "IceE-1.3.0-blackfinbf533.tar.bz2" file, you did some customization for BF533 processor.


In general, I am trying to cross compile this middleware for blackfin, because I wanted to do some distributed computing between multiple Surveyor robots. All these robots will be connected through a wireless medium and will be performing some distributed computing task together. I hope by cross compiling IceE, I am going in the right direction. Please guide me if I am doing anything wrong.


Any suggestion will be appreciated.




2010-12-04 08:06:27     Re: Corba and uclinux

shuja ahmed (UNITED KINGDOM)

Message: 96473   


Hi Again,


Another update. To reduce the size of "lib" folder, I have applied the following changes in "cppe/config/Make.rules" file.


OPTIMIZE_SIZE        = yes

OPTIMIZE_SPEED        = yes

After this, the size of "lib" folder is reduced from 29Mb to 3.6Mb. There are someother options too which can reduce the size of lib folder further. These options are following


#STATICLIBS        = yes

#GUMSTIX        = yes

HAS_ROUTER        = yes

HAS_LOCATOR        = yes

HAS_BATCH        = yes

HAS_WSTRING        = yes


HAS_AMI            = yes




For a moment, I dont know anything about these options. Maybe if someone can suggest what we really need to perform distributed computing on blackfin based embedded system. Then we can keep only those features enabled and can get rid off the rest of features.




2010-12-07 16:09:46     Re: Corba and uclinux

Ben Matthews (UNITED STATES)

Message: 96544   


I suppose I'm one of the people who Wojtek is talking about.


Since you've gotten libraries, I assume you're all set, but if not I've put the patches against IceE and uClinux that I had developed last time I was using Ice on Blackfin here:   kc2vjw.com/blackfin/ice/ I assume the tarball that Wojtek mentioned is just the Ice source patched with   kc2vjw.com/blackfin/ice/icee-1.3.0-bfin_jun25_09.patch


We handled the Library size issue by putting them on a network filesystem. Obviously stripping the binaries helps a lot (it's c++ after all), but it still leaves you with a library that's almost as large as the rest of the system.  Turning off those other features probably won't help much. You should be able to figure out what they do by looking at the Ice manual (though I still haven't found a good list of features in Ice that are missing in IceE). If you're not very familiar with Ice, I would start looking at the manual before you proceed too much (maybe write some tests on X86 machines). For simple applications ICE doesn't save you much work over designing a simple text or packed binary protocol and using POSIX sockets (and adds a massive amount of object code and build time headache).


Depending on what kind of distributed computing you're trying to do, there are lots of other options out there. I'd shop around. The only reason we used Ice was because it's used extensively elsewhere in our organization (on much more powerful/supported platforms - x86 and sparc mostly). Ice does seem stable and adequately fast, but I don't have too many other nice things to say about it ;-)