To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 488
Subject: 
Notes on WinNT and legOS 0.2.2
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Thu, 18 Nov 1999 15:22:47 GMT
Viewed: 
907 times
  
No, I don't have it working yet. However, I've made
progress, and I thought my experience might be
helpful to others who are more savvy with
the GNU tools than I am.

- I did get everything to compile. As Luis suggested,
  the -nostdinc flag takes care of the redefined symbols
  problem. I think I had to copy some of the lnp stuff
  into the util directory to get dll to compile, but at
  this point I can't remember for sure.
- Some confusion arises with executable file names. In
  particular, the Makefile in util/dll-src tries to copy
  executables up a directory level once they're built. Under
  Win32, the names have .exe at the end which causes the copy
  to fail. This also means "make clean" doesn't always work right.
- Perl scripts were a problem. The Perl interpreter expects
  to be passed a Win32 path, but Cygwin passes the Cygwin
  path, which could be very different depending on how
  you've mounted your directories. Probably the easiest
  way around this is to map your Cygwin directories directly
  over your Win32 directories. I kluged through it by
  mirroring my Cygwin structure under Win32 and copying the
  Perl scripts there.

My current status:

- legOS is compiled and running on my RCX. Note that I did
  have to use --slow for firmdl3, but then again my serial
  ports under WinNT have always been a little strange.
- Everything in util is compiled.
- I'm able to make helloworld.lx.
- dll can't talk to the RCX, so I can't download user
  programs. I guess lnp is not working there? I guess I
  need to build the new compiler to get lnp working on the
  RCX. But here my knowledge is very shakey.

Jonathan


Subject: 
Re: Notes on WinNT and legOS 0.2.2
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Thu, 18 Nov 1999 16:13:45 GMT
Viewed: 
843 times
  
On Thu, 18 Nov 1999, Jonathan Knudsen wrote:
No, I don't have it working yet. However, I've made
progress, and I thought my experience might be
helpful to others who are more savvy with
the GNU tools than I am.

- I did get everything to compile. As Luis suggested,
  the -nostdinc flag takes care of the redefined symbols
  problem. I think I had to copy some of the lnp stuff
  into the util directory to get dll to compile, but at
  this point I can't remember for sure.

It's quite possible that the -nostdinc line will block out the getopt.h
mentioned in an earlier post. Could this be what you recall having to move?

- Some confusion arises with executable file names. In
  particular, the Makefile in util/dll-src tries to copy
  executables up a directory level once they're built. Under
  Win32, the names have .exe at the end which causes the copy
  to fail. This also means "make clean" doesn't always work right.

This would be Markus's bit, but do we have anyone who knows
cross-platform make stuff well? I think this should be simple to fix, if
we had someone who knew what they were doing.

- Perl scripts were a problem. The Perl interpreter expects
  to be passed a Win32 path, but Cygwin passes the Cygwin
  path, which could be very different depending on how
  you've mounted your directories. Probably the easiest
  way around this is to map your Cygwin directories directly
  over your Win32 directories. I kluged through it by
  mirroring my Cygwin structure under Win32 and copying the
  Perl scripts there.

I thought the perl aspect was gone? As far as I can see, it is only the
old-style firmware disassembly that needs it, and that should be easy to
comment out. Am I correct, Markus?

My current status:

- legOS is compiled and running on my RCX. Note that I did
  have to use --slow for firmdl3, but then again my serial
  ports under WinNT have always been a little strange.

On three separate Linux boxes (a dell, a sony, and a VA Research) I have
also been unable to use the fast mode. Don't feel too bad :)

- Everything in util is compiled.
- I'm able to make helloworld.lx.

Yay.

- dll can't talk to the RCX, so I can't download user
  programs. I guess lnp is not working there? I guess I
  need to build the new compiler to get lnp working on the
  RCX. But here my knowledge is very shakey.

dll should work with the old compiler- I have not yet compiled the new
compiler (the weird 2.95.2 problems I spoke of earlier) but I can get dll
to work just fine. Is there an error message?

Anyway, thanks for the update/info, Jonathan- hope the book continues to
sell well-
Luis

#######################################################################

     Profanity is the one language that all programmers understand.
                  -Anonymous

#######################################################################


Subject: 
Re: Notes on WinNT and legOS 0.2.2
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Thu, 18 Nov 1999 16:41:36 GMT
Viewed: 
758 times
  
Thanks for the notes.  I briefly tried to get legOS to compile on NT and
gave up before I got as far as you did.  Let us know if you get it all working.

At 03:22 PM 11/18/99 +0000, you wrote:
No, I don't have it working yet. However, I've made
progress, and I thought my experience might be
helpful to others who are more savvy with
the GNU tools than I am.

- I did get everything to compile. As Luis suggested,
  the -nostdinc flag takes care of the redefined symbols
  problem. I think I had to copy some of the lnp stuff
  into the util directory to get dll to compile, but at
  this point I can't remember for sure.
- Some confusion arises with executable file names. In
  particular, the Makefile in util/dll-src tries to copy
  executables up a directory level once they're built. Under
  Win32, the names have .exe at the end which causes the copy
  to fail. This also means "make clean" doesn't always work right.
- Perl scripts were a problem. The Perl interpreter expects
  to be passed a Win32 path, but Cygwin passes the Cygwin
  path, which could be very different depending on how
  you've mounted your directories. Probably the easiest
  way around this is to map your Cygwin directories directly
  over your Win32 directories. I kluged through it by
  mirroring my Cygwin structure under Win32 and copying the
  Perl scripts there.

My current status:

- legOS is compiled and running on my RCX. Note that I did
  have to use --slow for firmdl3, but then again my serial
  ports under WinNT have always been a little strange.
- Everything in util is compiled.
- I'm able to make helloworld.lx.
- dll can't talk to the RCX, so I can't download user
  programs. I guess lnp is not working there? I guess I
  need to build the new compiler to get lnp working on the
  RCX. But here my knowledge is very shakey.

Jonathan


Joel Shafer    joel@connect.net


Subject: 
Re: Notes on WinNT and legOS 0.2.2
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Thu, 18 Nov 1999 17:13:14 GMT
Viewed: 
968 times
  
Luis Villa wrote:
- Perl scripts were a problem. The Perl interpreter expects
  to be passed a Win32 path, but Cygwin passes the Cygwin
  path, which could be very different depending on how
  you've mounted your directories. Probably the easiest
  way around this is to map your Cygwin directories directly
  over your Win32 directories. I kluged through it by
  mirroring my Cygwin structure under Win32 and copying the
  Perl scripts there.

I thought the perl aspect was gone? As far as I can see, it is only the
old-style firmware disassembly that needs it, and that should be easy to
comment out. Am I correct, Markus?

I think that making .lx files doesn't involve Perl, even though
building legOS.srec and the util stuff still uses Perl. This implies
that you could distribute a precompiled legOS.srec and a smaller
set of tools, sans Perl, for people to build .lx files.

dll should work with the old compiler- I have not yet compiled the new
compiler (the weird 2.95.2 problems I spoke of earlier) but I can get dll
to work just fine. Is there an error message?

I thought lnp might not run in the legOS firmware because the
new compiler doesn't include the RCX interrupt patch. But I
really don't understand this very well.

Jonathan


Subject: 
Re: Notes on WinNT and legOS 0.2.2
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Thu, 18 Nov 1999 18:46:12 GMT
Viewed: 
1161 times
  
On Thu, 18 Nov 1999, Jonathan Knudsen wrote:
Luis Villa wrote:
I thought the perl aspect was gone? As far as I can see, it is only the
old-style firmware disassembly that needs it, and that should be easy to
comment out. Am I correct, Markus?

I think that making .lx files doesn't involve Perl, even though
building legOS.srec and the util stuff still uses Perl. This implies
that you could distribute a precompiled legOS.srec and a smaller
set of tools, sans Perl, for people to build .lx files.

In fact, as currently configured, building user-land programs also
requires one of the perl programs in util, so we can't quite get rid of
it yet. Here is my perl analysis-

As far as I can tell (via extensive grepping and make-file reading), of
the five perl scripts in the 0.2.2 package (all in /util):

-multireplace and merge-map are no longer used, or at least not unless
you want to do disassembly (unlikely.)

-genlds is still used, and while not directly part of .lx creation, still
plays a neccesary role in the creation of .ds1 and ds2 files, which (as
far as I can tell) is still important. This directly contradicts Markus's
claim that making .lx files is now perl free, so either a) I'm wrong
(quite likely) or b) Markus forgot about the lower-level use of perl in
the process. (given the complexity of the make process, this is also likely.)

-sample-convert is optional.

-fixdeps is still used. I'm finally seeing what it is used for- and it
seems like a sort of.... well, it is not an ugly hack, but it's not
wonderful either.

Wow. Actually, after having (literally) spent an hour tracking through
the makefiles
1) I've learned a lot
2) I have even more respect for Markus and
3) there is a lot more messy stuff in the Makefile system than even I
suspected.

Things that I think can be ripped out (Markus, please correct me if I'm
wrong- otherwise I'll be cleaning them up on my own...)
everything related to .dis2 files. As a direct result, the dmap and dcoff
files are also unecessary. Nothing big here- just cleaning stuff up.

I also think I can replace fixdeps with a similar C program, but Markus is
right- it is much nicer in perl than it would be in C The preferable
situation (I think) would be to process the depends in such a way as to
avoid the problem fixdeps fixes. I'm not sure that is possible, but I'll
look into it.

Unfortunately, genlds looks like the kicker- no way around using that, at
least not within my scope of understanding, which means we are stuck with
perl to compile _everything_. Markus?

dll should work with the old compiler- I have not yet compiled the new
compiler (the weird 2.95.2 problems I spoke of earlier) but I can get dll
to work just fine. Is there an error message?

I thought lnp might not run in the legOS firmware because the
new compiler doesn't include the RCX interrupt patch. But I
really don't understand this very well.

I can't claim to be much of an expert either- I had a pretty firm grasp of
what was going on in 0.1.7, but I'm still working on 0.2.2.  From what I
can see (and as he has indicated to the list), Markus has made a valiant
effort to make lnp usable without the patch. I think the question then is
whether or not task downloading is dependent on LNP. I don't believe that
is the case- the sub-program(?) download is not 4 speed, as I understand
it, so it shouldn't depend on LNP. But, I can't be sure without more time
that I don't have right at the moment.

Good thread, so far-
-Luis

P.S. Markus, I cc'd you because I thought you might be ignoring a winNT
thread, and this has gotten to the point where you might be interested.


#######################################################################

     Profanity is the one language that all programmers understand.
                  -Anonymous

#######################################################################


©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR