Subject:
|
Linux, Cygwin, DJGPP: what is it all about?
|
Newsgroups:
|
lugnet.robotics.rcx.legos
|
Date:
|
Mon, 17 Jun 2002 20:07:24 GMT
|
Viewed:
|
2225 times
|
| |
| |
Ok, lets try to fiddle some things out. There seems to be a confusion about
the software needed for running legOS and why. And there seems to be some
confusion about what cygwin and DJGPP are.
legOS runs user programs written in C and compiled to the machine language
of the Brick. The brick has a Hitachi processor, so the C code has to be
compiled to Hitachi machine code.
legOS itself has to be compiled to the Hitachi machine code, too. So even if
we provide a downloadable legOS image in the distribution, everyone wanting
to write a user program must have a C compiler that can translate to
Hitachi machine code.
The only free compiler I know of is the H8 GNU C crosscompiler. And this
compiler is Unix software. You _must_ have a unix system to run it. If you
are running Linux, you are lucky because the GNU compiler runs on native
Linux.
You don't have Linux? Bad. But not too bad. There is cygwin. Cygwin can be
seen as a layer between DOS (yes, you Windows users: you are running DOS
under your windows system, even if you never saw it in action).
If for example the GNU C compiler opens a file, it calls the needed Linux
system routines. Cygwin sits between and translates this calls to DOS
system calls. The GNU compiler never knows that it does not run on Unix and
the DOS system does not know that it is called by a software not aware of
its existance.
But nothing comes free. DOS and Unix have some incompatibilities. The
seperator for subdirectories are different, Unix has no drive names but
only a file system tree and so on. The Windows user has to learn some nasty
things: How to fiddle with the command line. How to use cryptic command
line switches. How to run some weired programs like make. And many things
more.
Now to DJGPP. DJGPP is a port of the GNU C compiler to DOS. Where is the
difference between this and the cygwin / H8-GNU C compiler? DJGPP will
compile a C program to an exe file that could be run on DOS. Thats all. You
can't tell DJGPP to make Hitachi code. And you can't run the GNU H8
compiler on the DJGPP system because the whole DJGPP system is a DOS
system. There are bash, make and all things a GNU C compiler wants to see.
But all these programs have been changed in a way that they can run on DOS.
They don't know about unix. Cygwin and DJGPP may be similar in the actual
handling. GNU-C needs a fair amount of support programs both systems must
include. But cygwin runs Unix programs and DJGPP runs DOS programs. With
cygwin you can use a Linux progam to get Hitachi machine code. With DJGPP
this Linux program won't work at all.
- legOS runs user Hitachi machine language programs
- you need the H8 crosscompiler to compile these programs
- this crosscompiler only exists for the Unix system
- so you have to run cygwin to run the compiler to compile your program
If you don't want to do that, the only chance is not to use legOS.
What could we do for the new Windows user? Not much, I fear. We could try to
make a better documentation for Windows. We could even try to make an
installation cookbook. But you _must_ have some knowledge of "make" to
compile a user program. You _must_ learn the unix way to do your work. Even
if you use a good editor to resemble an IDE, you first must set up some
batch files and in the end you first have to know what has to be done on
the command line level and then resemble it for your editor.
Or, better, buy a cheap harddisk, install a Linux system on it and run your
legOS development system under Linux. You will see that it is _much_
faster, because the cygwin translation layer has vanished and you have all
needed unix tools at hand.
Regards,
Michael
|
|
Message has 1 Reply:
4 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|