Page 1 of 1

nxtOSEK Installation problem

Posted: 19 Oct 2010, 08:31
by hot-nxt
We want to write our programs in C++ for a school robot project where we are going to take part in NXT robot competitions. NxtOSEK seems to be good for this. The program is installed in Windows environment (we have tried XP, Vista and Windows 7), but we don't manage to get it running.

We followed the installation instructions on http://lejos-osek.sourceforge.net/insta ... indows.htm. John Hansen's Enhanced NXT Firmware is used.

Everything is installed under C:\cygwin (for example C:\cygwin\nxtOSEK), just like they have done in the installation guide. When we come to the last part of the installation we get an "Error 127" message in Cygwin. When we write $ make all in Cygwin, we get the following message:
Compiling ../../ecrobot/../toppers_osek/kernel/alarm.c to alarm.o
/GNUARM/bin/arm-elf-gcc.exe: error while loading shared libraries: cygint1-3.dll
: cannot open shared object file: No such file or directory
make: *** [build/kernel/alarm.o] Error 127
We have done exactly as described below:
* Execute Cygwin and change the current directory to nxtOSEK\samples_c\helloworld directory by typing the following command
(It is assumed that nxtOSEK is extracted under C:\cygwin directory)
$ cd C:/cygwin/nxtOSEK/samples_c/helloworld

* Type the following command to build binary executables of helloworld sample
$ make all
If everything went well, binary executables and program upload scripts could be generated in the helloworld directory.
Do GNUARM_ROOT = /cygdrive/C/cygwin/GNUARM and NEXTTOOL_ROOT = /cygdrive/C/cygwin/nexttool in the tool_gcc.mak file mean the same as C:\cygwin\GNUARM and C:\cygwin\nexttool?

We also want to write, build and upload nxtOSEK applications in Eclipse. The installation of Eclipse was done without problem (the installation guide on http://lejos-osek.sourceforge.net/eclipse.htm was used), but when trying to run the program there it also results in an error.

What are we doing wrong? Any help would be very appreciated.

Re: nxtOSEK Installation problem

Posted: 30 Oct 2010, 16:14
by noeyewar
Hi, don't know if your ever got it working, but i have the solution.
I had the same problem (very frustrating).
The file can be obtained by installing the libintl3 packet. Just run the cygwin installer again, search for the package and install it and it should work okay.

But just a little comment. nxt osek is a real-time operating system, and it sure is a fine option for a competition robot, however it is _not_ easy to use. Unless your find pleasure (or it is a requirement of your school project) in real-time software then i would advice you to use another implementation like NXC or lejos.

But good luck. I am playing around with osek to as a part of a university project, and as a .NET junkie all this low-level stuff sometimes make me wanna bang my head hard into the computer monitor :-)

Re: nxtOSEK Installation problem

Posted: 31 Oct 2010, 20:03
by hot-nxt
noeyewar wrote:Hi, don't know if your ever got it working, but i have the solution.
I had the same problem (very frustrating).
The file can be obtained by installing the libintl3 packet. Just run the cygwin installer again, search for the package and install it and it should work okay.

But just a little comment. nxt osek is a real-time operating system, and it sure is a fine option for a competition robot, however it is _not_ easy to use. Unless your find pleasure (or it is a requirement of your school project) in real-time software then i would advice you to use another implementation like NXC or lejos.

But good luck. I am playing around with osek to as a part of a university project, and as a .NET junkie all this low-level stuff sometimes make me wanna bang my head hard into the computer monitor :-)
Thank you for your help! Now I manage to upload nxtOSEK programs to the NXT. :D

In our high school project we will take part in RoboCup Junior in Sweden and maybe some other competitions. I have previously used the Mindstorms NXT software, but now we want to program the robot in a more advanced language. Since we all have used C++ before, we decided that we want to write our programs in C++ or in a similar language. We found nxtOSEK and decided to try that.

In what way is it easier to use NXC and Lejos than nxtOSEK and why do you think they are better? There are no special rules regarding which language we choose. What do you recommend now when you know more about our project and our previous experience?

Re: nxtOSEK Installation problem

Posted: 01 Nov 2010, 16:48
by noeyewar
Coding multithreaded applications is a lot more challenging. It does not schedule tasks automatically. Your have to do it manually or or use the integrated "rate monotonic scheduler" by assigning priorities and alarms to the individual tasks. It is an advantage when developing safety critical real-time systems (systems where tasks has timed deadlines which must not be exceeded). Because you have no garbage collector and knows how the scheduling works, you can make some great assumptions about how long time things take and (hopefully) avoid situations where a deadline is missed and the car is crashing, because a garbage-collector were doing a little spring cleaning while the anti-lock brake system should have worked :-)

But for day-to-day work i strongly prefer nxc or lejos where you do not have to mess around with scheduling or configurations in .oil files (you must have seen them by now). Unless you know WHY you need osek, leave it to the professionals! (and no, i am not one of them. It is to low-level for me). But if you still insists on using osek make sure you read and understand the samples on the nxt-osek website. This pdf http://portal.osek-vdx.org/files/pdf/sp ... /os221.pdf provides a lot of information you need too. Chapter 4-12 is must-read:-)

Not eXactly C (NXC) is a c like language, but without pointers or recursion. The IDE (brixcc) is really great but you have no objects/classes to play around with.

Lejos is my favorite. The api is amazing, especially for communicating between a nxt and another nxt/pc/mobile phone using bluetooth or usb. The setup process can be a bit frustrating and the lejos plugin does not feel very well integrated in eclipse, but hey, you got nxt-osek to work, so you will be fine:D

Re: nxtOSEK Installation problem

Posted: 05 Nov 2010, 15:54
by hot-nxt
noeyewar wrote:Coding multithreaded applications is a lot more challenging. It does not schedule tasks automatically. Your have to do it manually or or use the integrated "rate monotonic scheduler" by assigning priorities and alarms to the individual tasks. It is an advantage when developing safety critical real-time systems (systems where tasks has timed deadlines which must not be exceeded). Because you have no garbage collector and knows how the scheduling works, you can make some great assumptions about how long time things take and (hopefully) avoid situations where a deadline is missed and the car is crashing, because a garbage-collector were doing a little spring cleaning while the anti-lock brake system should have worked :-)

But for day-to-day work i strongly prefer nxc or lejos where you do not have to mess around with scheduling or configurations in .oil files (you must have seen them by now). Unless you know WHY you need osek, leave it to the professionals! (and no, i am not one of them. It is to low-level for me). But if you still insists on using osek make sure you read and understand the samples on the nxt-osek website. This pdf http://portal.osek-vdx.org/files/pdf/sp ... /os221.pdf provides a lot of information you need too. Chapter 4-12 is must-read:-)

Not eXactly C (NXC) is a c like language, but without pointers or recursion. The IDE (brixcc) is really great but you have no objects/classes to play around with.

Lejos is my favorite. The api is amazing, especially for communicating between a nxt and another nxt/pc/mobile phone using bluetooth or usb. The setup process can be a bit frustrating and the lejos plugin does not feel very well integrated in eclipse, but hey, you got nxt-osek to work, so you will be fine:D
We chose leJOS as programming software, and it works great. Our team is very grateful for your help!