Eclipse Development

I’m starting work on an all-out development environment in Eclipse. Anything you can do in mplab, Eclipse will do, but better. :wink:

I’ve already written an error parser and toolchain handler, and I’ve started on the binary parser, a loader, and syntax highlighting extras. I’ve done enhanced wrapper scripts for mcc18 (no more “c:\mcc18…”).

My question is: How many people (adults and students) would be willing to help maintain it? The highlighting code especially will need to be kept real close to the CDT code, until they figure out how to extend it.

The FDT (FIRST Development Toolkit) will take the form of a feature patch of the CDT. Most of the functionality is implemented as plugins. The exception is the actual highlighter, which is a fragment against org.eclipse.cdt.core.

So I’m gaging interest to see if it would be worth my while or if it will fizzle out and die. Frankly, I’d love to be able to get this to the point where we can stick it in the kit and send it to the 1500 teams that will be around by then.

Sounds like a good project, I’d definitely use it! And if you need help developing it, I’d be more than happy to lend a hand. I don’t know very much about the internals of Eclipse, but I’ll pick it up quick.

Hey, well, I like what you’re talking about, and it shouldn’t be too difficult. I was just curious on how you would write the binary parsers, since as far as I know, Microchip does not provide any information on the .lib format created by MPLINK. I’d certainly be willing to help though.

A few other questions too.
By loader, do you mean code loader (i.e, loading a hex file onto the robot).

And just out of curiosity, (since I’ve been working on error parsers as well), did you actually give the CDT a string to highlight for variable specific errors, or did you just leave it at the line.

If anyone’s interested in an example of what this might look like, you can install a bare-bones version of what Astronouth is suggesting from the update site at

At the end of the users guide, they describe a binary format, their version of the COFF format. I don’t know what objects it’s used for.

A port of my pycloader to java and some eclipse integration. (That is, yes.)

I hooked into CDT’s current parsing system. You take a line for input, parse it, and give Eclipse an object describing it.

I’ll have an update site as well, as soon as my web space returns. (BTW, your server is unreachable.)

I know, but in that object you can include a String that should be highlighted when the error/warning/message is selected. If this string is included, then Eclipse will highlight that string specifically. If the String is null, the entire line is highlighted.

Thanks for letting me know. It probably won’t be fixed until tomorrow.

If you’re using Eclipse, I’d suggest installing the CDT SDK (not the plain runtime) and reading the CDT Managed Build Extensibility Reference Document (I know, long name :rolleyes: ) It also has information about some of the other areas that Astronouth is planning on working on.

I’ve got it online!

See the Subversion repository (svn).

There is also an Update site for Eclipse 3.2.

I just don’t recomend any installing it as-is, since there is little real functionality. (I’ve been working on setting up basic infrastructure!)

sounds awsome
i would probably defiently use it if it works perfectly

now, we just need to all hope that ifi doesnt radically change the RC lol

One thing I forgot to mention. My enhanced MCC18 wrappers are in subversion. I just have to figure out how to package them.

You haven’t been developing software for long, have you?

Even if it doesn’t, it’d still work a lot better than MPLAB and IFI Loader. (I can’t do much about MCC18.)

this post has intrigued me, but 2 questions. what is eclipse and why should I use it?(I can guess its a IDE/compiler of some sort but to me all compilers kinda look the same. what makes this “better” is the real question Im asking)


The goal is to have a complete code development system all installable from 1 CD. MPLab has no Linux version so you can instead use a modified version of Eclipse.

Now that I think of it. Including instructions on how to set up a Subversion server in the final release might be helpful to some teams.

Well, as you guessed Eclipse is an IDE, sort off. It was conceived by some people at IBM as an extensible platform, written in Java, upon which other applications could be written. When initially released, it contained a set of Java Development Tools, as an example of this type of application. Later a set of C/C++ Development Tools was released. As you know, the robotics code is written in C.
The reasons, you can’t just use Eclipse CDT right away are as follows:

  1. Tricked you, you can, but…
  2. You need to know how to write a makefile.
  3. You won’t get the syntax highlighting appropriate to MCC18 (the version of C used by the robot).
  4. You won’t get your errors from the compiler parsed.
  5. Eclipse CDT can’t parse the binary files (e.g., FRC_Library.lib) created by the C18 toolchain and show you the functions available inside.

Problems 2 & 4 are already fixed thanks to a plug-in I initially wrote. 2 has been fixed for a while. 4 was partially working for a while, then broke, and should be working now.
The other 2 are not working yet, but are not a very big deal. By innappropriate syntax highlighting, the only thing I can think of, is that certain keywords, such as “rom” & “ram” that are specific to the C18 version of C, aren’t highlighted. Most people don’t use 5 anyway (I never have).

Now why should you use Eclipse:

  • My favorite, auto-completion. Hit Ctrl-Space while typing a long function or variable name, and Eclipse will show you a list of possible completions.
  • Integrated Subversion/CVS support (was not available in MPLAB until very recently, and is still no where as nice)
  • A tabbed editor, rather than the horrible MDI interface MPLAB uses.

And it’s usable, as chris31 said on Windows and Linux. However, don’t be scared off by this fact. If anything, it’s more usable on Windows than Linux because there is no hassle with WINE (a sort of windows emulator to get the compiler working)

If you want more info see

Hope I answered your question,


Eclipse is unnecessarily resource hungry, a common drawback to software written in Java. Although Eclipse itself is available for multiple platforms, getting mcc18 to work on Linux is problematic as it relies on Wine, though that is a problem that can be overcome.
There is an issue running mcc18 on 64 bit processors.

Assuming that these problems are overcome, most of the Linux community already relies heavily on Makefiles because a good majority of Open Source Linux Software is distributed as Source which requires compilation after downloading. Eclipse is indeed resource hungry, and unnecessarily large as a general purpose IDE. You’re taking a general purpose IDE and using it for a specific purpose. Most of the Linux community already uses a combination of Makefiles and Emacs for nearly all of their programming needs.
Perhaps I should look into creating a pre-customized Emacs for the purpose of working with mcc18.
I’ve created an unfinished but functional Portable IDE-like program written in Perl, as a Test of Concept. If there’s a large enough Linux community within the Chief Delphi Programming community, I can adapt this program to run under Linux, so long as they have mcc18 set up.

I’m sorry I do not mean to bash anyone’s project, I hope it did not seem that way.
It’s still a great idea, and I would more than love to contribute to its development.
Eclipse is also a very versatile IDE, and does have several advantages over using using a few customizations in combination with makefiles.
Or some poorly written perhaps unreliable custom IDE.
(I suppose I should be allowed to bash my own project)

My apologies again.

I’ve found that Eclipse, while it does take a while to load, runs well on any system from 2000 or newer. (Milage May Vary.) Just make sure you have a decent amount of RAM. (I doubt 128MB will cut it.)

On distributions with a package manager, it’s generally as easy as installing wine, grabbing the wrapper scripts, and sticking them in /bin.

There are multiple makefiles around. I use one that updates itself (uses make’s variables instead of hard-coded file names). There is a script that will generate one for you. You can also use Eclipse’s Managed Make to do it. (Make sure you have the mcc18 toolchain plugin installed.)

From the sound of it, there are only issues when you use a 64-bit operating system on top of a 64-bit processor. The 64-bit version of Windows XP is not widely used, IIRC. There are 64-bit Linux distros, but they are still somewhat unstable.

I’d definitely be interested in helping with the development.

I just realized that I’m a bit late on that last post, but anyway, if you need any help developing the thing, let me know.

Emacs?!?!?!?!? Vim ftw :slight_smile:

But I agree with your point, Makefiles + text editors are definately the most flexible and robust way to go. While Eclipse is certainly better than MPlab, it has its own set of limitations which should not be overlooked.

Yes, 64-bit Windows is virtually worthless because nobody makes decent drivers for it. Maybe that’s changed with Vista.

But with Linux, 64-bit is a perfectly valid option. I’m running 64-bit Gentoo over here, and it is 100% functional and stable. Maybe some distros like Ubuntu or Fedora aren’t quite as flexible when it comes to 64-bit, but 64-bit Linux should not be discounted.

Well, I hit “no interest”, then thought about it.

I would like a replacement for MPLAB, so yes, I could help beta test. I won’t realistically help code on this, even though I would like to offer that.

This is a really cool project and I hope it doesn’t “fizzle out”.


Is this project primarily going to be for development on Linux, or is this to make a drop-in replacement for MPLAB? I would be interested in using Eclipse as an IDE for code completion and possible more robust syntax highlighting, but have never really had any problems with IFI Loader or MCC18. Can I just use the IDE portion?

When is the first release coming?


P.S. Did CD remove spell check from the reply form? Why do I recall being able to spell check? Or am I blind?

Because Eclipse runs on windows and linux I see no reason why there cant be a release of that also.

@Astro: You think you could get a page up where you (or whoever) can post compressed final copies of all the software as one package to make it easy for those who dont want to mess with svn.

Ill start trying to get Eclipse and the plugins working under Windows (my HD with Fedora died last week :frowning: RIP old HD from an Pentium 2 Dell).

@gnirts: Yes spell check was removed. FF2 has spell check if you use that. It might come back to the forum but it also might not.

I have been using Wine, Debian, makefiles, and vim to program our robot for the past 2 years. I have trouble finding the correct compiler flags. Would there be any way to extract the makefile that compiles the code from the eclipse project without installing Eclipse?