Log in

View Full Version : Eclipse Development


Astronouth7303
03-12-2006, 17:29
I'm starting work on an all-out development environment in Eclipse. Anything you can do in mplab, Eclipse will do, but better. ;)

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.

Shinigami2057
03-12-2006, 20:35
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.

prograid
03-12-2006, 20:51
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 http://team254.bcp.org/update_site/.

Astronouth7303
03-12-2006, 21:11
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.

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 few other questions too.
By loader, do you mean code loader (i.e, loading a hex file onto the robot).

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

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.

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

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 http://team254.bcp.org/update_site/.

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

prograid
03-12-2006, 23:03
I hooked into CDT's current parsing system. You take a line for input, parse it, and give Eclipse an object describing it.


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.



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

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



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.


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.

Astronouth7303
10-12-2006, 21:05
I've got it online!

See the Subversion repository (http://www.astro73.com/viewvc/r/?root=fdt) (svn (http://www.astro73.com/svnroot/fdt/)).

There is also an Update site (http://www.astro73.com/eclipse/fdt/) 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!)

bear24rw
10-12-2006, 21:44
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

Astronouth7303
10-12-2006, 22:28
One thing I forgot to mention. My enhanced MCC18 wrappers are in subversion. I just have to figure out how to package them.

i would probably defiently use it if it works perfectly

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.)

Stuart
11-12-2006, 19:48
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)

chris31
11-12-2006, 20:00
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)

Linux.

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.

prograid
11-12-2006, 20:04
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)

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:

Tricked you, you can, but...
You need to know how to write a makefile.
You won't get the syntax highlighting appropriate to MCC18 (the version of C used by the robot).
You won't get your errors from the compiler parsed.
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 www.eclipse.org

Hope I answered your question,

Ben

Nitinol
26-12-2006, 13:25
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.
http://forum.microchip.com/tm.aspx?m=112347&mpage=2&key=&#212261
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.
http://www.chiefdelphi.com/forums/showthread.php?threadid=50708

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.

Astronouth7303
28-12-2006, 16:22
Eclipse is unnecessarily resource hungry, a common drawback to software written in Java.

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.)

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.

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.)

There is an issue running mcc18 on 64 bit processors.
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.

cjelly
28-12-2006, 16:37
I'd definitely be interested in helping with the development.

cjelly
28-12-2006, 19:23
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.

shawger
28-12-2006, 22:05
Most of the Linux community already uses a combination of Makefiles and Emacs for nearly all of their programming needs.

Emacs?!?!?!?!? Vim ftw :)

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.


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.

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.

JBotAlan
28-12-2006, 22:24
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".

JBot

gnirts
29-12-2006, 13:30
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?

Thanks,
Robinson

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

chris31
29-12-2006, 13:47
Is this project primarily going to be for development on Linux, or is this to make a drop-in replacement for MPLAB?

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 :( 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.

AustinSchuh
29-12-2006, 15:11
But I agree with your point, Makefiles + text editors are definately the most flexible and robust way to go.
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?

chris31
29-12-2006, 15:24
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?

I havent tried it, but give this a shot.


#!/usr/bin/env python

#Auto Makefile Generator
#Copyright under terms of GPL
#Based on Team 245's old Makefile....
# Copyright (C) 2005 Team 245
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


import os

DEBUG=False
VERSION="0.1.92 (0.2 beta 3)"

def printGPLBanner():
print "Makefile Generator, version "+VERSION+", Copyright (C) 2005 Adam-Bots"
print "This software comes with ABSOLUTELY NO WARRANTY"
print "This is free software, and you are welcome to redistribute it under certain conditions; See the accompanying license for details"

def isCygwin():
import os;
return os.platform=='cygwin'

def isLinux():
import os;
return os.platform.beginswith('linux')

def mccPath():
#Find path to the MCC folder.
if isCygwin():
pass
def sprint(msg,level=0):
# Prints a message of a given verbosity:
#Level 0 : Print regardless of status
#Level 1 : Print if DEBUG is set
if level == 0:
print msg
elif level == 1:
if DEBUG:
print "DEBUG:",msg
else:
print msg
def mccCommand():
return "mcc18"
def mccArgs():
return "-D_FRC_BOARD -w3 pa=3 -O+ -nw=2066"
def linkerCommand():
return "mplink"
def mp2hexCommand():
return "mp2hex"
def ifiLoaderCommand():
return "picloader_textmode"
def ifiSerialDevice():
return "/dev/ttyS0"
def ifiReadLogfile():
return "./read.log"
def codePath():
unixish_path="Z:"+os.getcwd()+"//"
return unixish_path.replace("/","\\")
def libPath():
return "/opt/mcc18/lib"
def includePath():
return "/opt/mcc18/h"
def includePathWindows():
return "Z:\\\\opt\\\\mcc18\\\\h"

printGPLBanner();
print
print
print

sprint("Opening the Makefile",1)
print
outfile=open('Makefile','w')
outfile.write('#This is automatically generated by the configure.py script\n#Keep your dirty hands off');
outfile.write("\n")
outfile.write('#Run ./configure.py to generate a fresh one.')
outfile.write("\n")
outfile.write('MCC18='+mccCommand())
outfile.write("\n")
outfile.write("PIC=18F8722 # Don't change")
outfile.write("\n")
outfile.write("ARGS="+mccArgs())
outfile.write("\n")
outfile.write("LINKER="+linkerCommand())
outfile.write("\n")
outfile.write("MP2HEX="+mp2hexCommand())
outfile.write("\n")
outfile.write("IFILOAD="+ifiLoaderCommand())
outfile.write("\n")
outfile.write("SERIAL_DEV="+ifiSerialDevice())
outfile.write("\n")
outfile.write("READLOG="+ifiReadLogfile())
outfile.write("\n")
outfile.write("LIB_PATH="+libPath())
outfile.write("\n")
outfile.write("CODE_PATH="+codePath())
outfile.write("\n")
outfile.write("INCLUDE_PATH="+includePath())
outfile.write("\n")
outfile.write("INCLUDE_PATHW="+includePathWindows())
outfile.write("\n")
outfile.write("\n\n\n\n")


sprint("Enumerating Target Object Files...")
import os;
all_targets=""
pipe=os.popen("find . -maxdepth 1 -name \"*.c\" | gawk '{gsub(/\\.c/,\".o\");print}' | uniq",'rt')
line=pipe.readline()
while line != "":
all_targets+=line[2:-1]
all_targets+=" "
line=pipe.readline()

all_targets.rstrip()

outfile.write("ALL_TARGETS="+all_targets);
outfile.write("\n")
sprint("Enumerating Header Files...")

pipe=os.popen("find . -name \"*.h\"",'rt')
line=pipe.readline()
headers=""
while line != "":
headers+=line[2:-1]
headers+=" "
line=pipe.readline()
headers.rstrip()


outfile.write("INCLUDE_FILES="+headers);
outfile.write("\n")
outfile.write("############ Targets: ")
outfile.write("\n")
outfile.write("default: FrcCode.hex")
outfile.write("\n")

sprint("Writing static targets...")
outfile.write("""
#Remove all the individual file backup (The files ending with ~)
#NOTE that this does NOT remove your tbz2 backups!
clean-backup-files:
@echo -e "Removing all the ~ backup files your annoying editor makes..."
@find . -name "*~" |xargs rm -f

#Removes all compiled files from the directory
clean: clean-backup-files clean-deps nohex
@echo -e "Cleaning compiler intermediate files..."
@rm -rf *.o *.err

#Remove deps folder
clean-deps:
@echo -e "Cleaning dependency folder..."
@rm -rf .deps
@mkdir .deps
@touch .deps/dummy

#Remove hexfiles
nohex:
@echo -e "Cleaning linker output and hex files..."
@rm -rf *.hex *.cod *.cof

#These all start the IFI Loader.
safeload: prettycode clean check load
load: FrcCode.hex
$(IFILOAD) FrcCode.hex $(SERIAL_DEV)

read:
@echo -e "Monitoring $(SERIAL_DEV) for data"
@echo -e "Output will also be logged to $(READLOG)"
@echo -e "---------"
@cat $(SERIAL_DEV) | tee $(READLOG) || /bin/true


prettycode:
@echo -e "Using indent to autoformat your .c and .h files..."
@indent *.c *.h
all: clean FrcCode.hex
%.o: %.c
@echo -e "Compiling $@..."
@echo -e "1. Checking Dependencies for $@"
@cpp -nostdinc -isystem $(INCLUDE_PATH) -M -MP $< -MF .deps/$*.deps
@echo -e "2. Launching Compiler..."
@echo -n "A thought to keep you occupied: "
@fortune -s || echo "GET FORTUNE"
@$(MCC18) -p=$(PIC) -fo $@ $< /i\\""$(INCLUDE_PATHW)"\\" $(ARGS)
@echo -e "Done with $@."




FrcCode.hex : $(ALL_TARGETS) $(INCLUDE_FILES)
@echo -e "Linking..."
$(LINKER) /l\\""$(LIB_PATH)"\\" \\""18f8722.lkr"\\" $(ALL_TARGETS) \\""$(CODE_PATH)FRC_library.lib"\\" /m\\""FrcCode.map"\\" /o\\""FrcCode.cof"\\"
$(MP2HEX) FrcCode.cof



.deps/*:
@echo -e "Creating Dependency Makefiles..."
@mkdir -p .deps
@touch .deps/dummy
@echo -e "Done!"

include .deps/*
""")
print
print

sprint("Makefile is generated, setting up working directory....")
os.system('rm -rf .deps')
os.system('mkdir .deps')
os.system('touch .deps/dummy')

print
print
print

sprint("Finished. To build, run 'make'")



EDIT: I got Eclipse up and running on my XP laptop. I got it compiling code and all. Ill be grabbin a copy of Astros code and making sure it all runs on windows.

Astronouth7303
03-01-2007, 01:53
I got a basic distro of Eclipse, CDT, and the toolchain up.

Win32 - Eclipse 3.2.1, CDT 3.1.1, MCC18 toolchain (com.astro73.fdt version) (http://www.astro73.com/eclipse/eclipse-FIRST-3.2.1.zip) (130.6 MB)

This package is for Windows. This should allow teams to get started using Eclipse quickly. All settings are at defaults.

NOTE: This package does not include Cygwin Make. You must have either Cygwin make or a native Win32 Make. MinGW Make will not work. If you get errors about being unable to find "W:\" or similar, you are using MinGW Make.



To make your own version:

Download the eclipse archive, extract
Download the CDT archive file, extract to the same location
Grab the com.astro73.fdt.mcc18.toolchain JAR file from the above file and put it in your plugins dir
Compress the entire directory.


This project got approved on sourceforge: https://sourceforge.net/projects/firstclipse/. No code up yet, but the project's there. I'll save the joining process for another post.

Astronouth7303
04-01-2007, 20:01
First, I forgot to say that mirroring the download is ok.

I've moved the subversion to SourceForge, and the jar file for what I posted earlier is in the downloads section on the project page (https://sourceforge.net/projects/firstclipse/).

If you want commit access, you will need a SourceForge ID. Please send that to me and I will add you to the project.

In order to develop the plugins, you will need:

Eclipse SDK 3.2+
Eclipse CDT SDK
Subclipse (use the instuctions for Callisto (http://subclipse.tigris.org/callisto.html))
PyDev (only needed if you want to work on the wrapper scripts)


Note that if you just installed PyDev, you need to go to the preferences and configure your interpreters.

Instructions on loading the projects:

Go to File > New > Project...
Select SVN > Checkout Projects from SVN. Hit Next.
Select Create a new repository location. Hit Next.
Enter https://firstclipse.svn.sourceforge.net/svnroot/firstclipse as the URL. Hit Next.
Accept the SSL fingerprint (I recomend permanently)
When asked for the folder, select everything under trunk (except for mcc-wrapper if you're not dealing with the Python stuff).
Hit Finish.
Wait. It will probably take awhile. Grab another dew. Brew some coffee. Think about how awesome this will be when done.


When all is said and done, you should have 6 plugins, 1 site, 1 feature patch, and maybe 1 other project (mcc-wrapper).

Almost all of it is just framework. Hardly any real code.

Notes:

This is the bleeding edge. It may not always work or even compile.
I recomend setting your workspace to UTF-8, but this is not required.
Please use the Java 1.4 compiler.

Astronouth7303
05-01-2007, 23:44
Here is some information for those of you who are not familiar with Eclipse.

Eclipse (http://www.eclipse.org/) is an extensible, cross-platform IDE. With the C/C++ Development Tooling (CDT) (http://www.eclipse.org/cdt/), it will work with and compile C code. Subclipse (http://subclipse.tigris.org/) allows for the easy usage of Subversion (http://subversion.tigris.org/). (I've also found Eclipse to be flexible. I run it off my flash drive.)

This stock configuration works fine for FIRST. I've used it for 2 years so far, and will use it for a 3rd. There are, however, some rough edges and other tools that are not cross-platform. Things like slightly incomplete syntax highlighting, IFI_Loader, error reporting, and Win32 GNU Make.

The goal of FIRSTclipse is to polish an already usable program. We aren't writing something from scratch. We're adding on to a very excellent application.

The current target list:

compiler toolchain support
Error parser
Library/binary parser
More complete syntax handling
HEX file loader
Wrapper scripts to run mcc18 under Linux
Documentation for all of this.


Things that will be provided:

A complete "extract and go" package of everything you need (except MCC18, which we can't distribute)
An installer for GNU Make (Windows)
A project for the default code


My hope is that there will be some mentors involved with this, helping or coding alongside the students.

Any questions may be posted here or PM'd, emailed, IM'd, etc. to me.

chris31
06-01-2007, 07:52
I can whip out a quick NSIS installer for the Win32 version if you need it.

gnirts
06-01-2007, 11:53
There are, however, some rough edges and other tools that are not cross-platform. Things like slightly incomplete syntax highlighting, IFI_Loader, error reporting, and Win32 GNU Make.

[...]
compiler toolchain support
Error parser
Library/binary parser
More complete syntax handling
HEX file loader
Wrapper scripts to run mcc18 under Linux
Documentation for all of this.

Questions:
Without an error parser, what exactly happens when there is a compiler/linker error? How does a developer receive feedback?
Can one use IFI_Loader with this project? Other than non-W32 compatibility, why would you not want to use IFI_Loader?
How easy will it be to finish the C18 syntax highlighting support? What skills are needed/can I help?
How easy is it to go back and forth with a given code base from Eclipse to MPLAB?
And is this project truly ready to go as far as compiling C18 code goes? Eg. what steps are needed, from downloading the Sourceforge project, to start downloading code to the PIC?
What is compiler toolchain support?
Does MPLAB support library/binary parsing? Or is this just does help with code completion?Thanks in advance, and let me know how I can help/where you need it the most, even if it's just writing documentation. I want to see this working really soon.

prograid
06-01-2007, 15:37
Questions:
Without an error parser, what exactly happens when there is a compiler/linker error? How does a developer receive feedback?
Can one use IFI_Loader with this project? Other than non-W32 compatibility, why would you not want to use IFI_Loader?
How easy will it be to finish the C18 syntax highlighting support? What skills are needed/can I help?
How easy is it to go back and forth with a given code base from Eclipse to MPLAB?
And is this project truly ready to go as far as compiling C18 code goes? Eg. what steps are needed, from downloading the Sourceforge project, to start downloading code to the PIC?
What is compiler toolchain support?
Does MPLAB support library/binary parsing? Or is this just does help with code completion?Thanks in advance, and let me know how I can help/where you need it the most, even if it's just writing documentation. I want to see this working really soon.

Answers:

The output of the compiler does show up in the console tab, so you can see errors, however, apparently, in the SourceForge version, they are not parsed. This is fixed in the updated version of my original plug-in but I haven't merged that into the SF project yet, because of naming convention issues with the plug-in.
One can use IFI_Loader with this project? Mainly it's to provide support for non W-32 toolchains; however, it's also nice to be able to just right click on a file and select something like "Load to RC..."
How easy will it be to finish the C18 syntax highlighting support? What skills are needed/can I help?
This is the hard part, in the current version of the CDT there isn't an easy way to add new keywords. However, I believe this will change in CDT 4. Since they plan on adding Visual C support, the editors are undergoing major changes.
The only problems right now are that certain keywords specific to the C18 dialect of C (e.g., rom, ram, near, far, overlay), are not highlighted, but everything else is highlighted and works properly.
How easy is it to go back and forth with a given code base from Eclipse to MPLAB?
This is very easy, you just have to have keep the MPLAB project files when you import your code into eclipse. Then you can use MPLAB to edit the code whenever you want to use MPSIM or anything like that. However, certain features of Eclipse like local history (in which Eclipse has it's sort of own internal revision control system), won't work as well, since Eclipse doesn't know what you have changed.
And is this project truly ready to go as far as compiling C18 code goes? Yes, if you want to see what a version looks like (since there isn't an update site on sourceforge yet) you can download eclipse and the CDT, and then install the plug-ins from the http://team254.bcp.org/update_site/ update site. The other issues mentioned are still there, but I believe it is a much better alternative to MPLAB already.
What is compiler toolchain support?
Basically, allowing you to set options in the Eclipse GUI for the compiler.
Eclipse then automatically generates makefiles for the compiler toolchain (i.e., MCC18 and MPLINK, and maybe later MPASM), and then compiles the code.
Does MPLAB support library/binary parsing? Or is this just does help with code completion?
To the first question, I don't believe so. To the second question, I think it does, but not as much as you might think, since it can already get a lot of information from the header files.
In terms of other problems, such as the lack of Win32 GNU Make, you can either use MSYS (not MinGW) or Cygwin, but they are slightly larger downloads.

Astronouth7303
07-01-2007, 12:20
There are two big features of Eclipse I failed to mention:

Autocompletion
Content indexing


Autocompletion means if you start typing a function, eclipse will show a list of possible functions, and then show you its arguments when you select one.

Content indexing means that if you select a function or a variable and hit F3, Eclipse will show you where it is declared. Ctrl+F3 shows you where it is defined (the actual code).

What is in the SourceForge downloads area is just the additions I made to Eclipse and the CDT in my own distribution on my website. I did not put the full Eclipse package in SF because of its size.

The update site of the whole project is http://firstclipse.sourceforge.net/update/. Note that this includes everything, so you'll get some odd additions to Eclipse with no real functionality.

The error parser I believe is fine, but I have had problems compiling it. It seems that if you compile the plugins in the Java 5.0 mode, it won't find some classes. I can make a release of it, and (if people verify that it's ok) add it to the extract-and-go package.

The addition of the loader will mean that we can add functionality to it. Storing and retrieving EEPROM settings. Reading hex files. Whatever. We can also add virtual serial ports; in addition to using hardware, you could use, eg, a "serial server" instead. (esp useful if your development system has no serial ports. This is not for USB-Serial adapters.) Note that this is still under development, and I would not recommend using it until we work out the details.

Here's my list of priorities (feel free to critique as fit):

Toolchain
Error parser
mcc18/wine wrappers
loader
binary parser
syntax highlighting


Also, I'm considering adding these additions:

Dashboard
CMUcam2 miniapp

Both of these would use the same serial library used by the loader code.

The serial called something I'm/we're developing called JSerial. I looked at the "standard" Java library (JavaComm), and I found that it was a pain to gather and install, there was no source available, and the latest version had no Win32 support. (Not even getting into licensing problems.) The current version is in SVN. (Or will be in a few minutes.)

Thank you for the offer to handle NSIS, but Eclipse requires no installation. You extract it and run it. And I know NSIS already. (If people would like an installation program, we can add that.)

chris31
07-01-2007, 14:14
Check out http://sourceforge.net/project/showfiles.php?group_id=62859 from some Java code using CMUCam2. For serial communication I have use http://users.frii.com/jarvi/rxtx/ and liked it.

Astronouth7303
08-01-2007, 15:34
Good news! FIRST didn't introduce a radically different controller! No dramatic changes need to be made!

Check out http://sourceforge.net/project/showfiles.php?group_id=62859 from some Java code using CMUCam2. For serial communication I have use http://users.frii.com/jarvi/rxtx/ and liked it.

:o I should have inspected RXTX more after discarding JavaComm.

As for the camera stuff, I'll look into it. I won't be able to use the GUI code, since it's written with AWT. We'll see how it is.

gnirts
08-01-2007, 22:10
I go to http://firstclipse.sourceforge.net/update/ then I click on the link to com.astro73.fdt_0.0.001.jar

I get this:

An error has been encountered in accessing this page.
1. Server: firstclipse.sourceforge.net
2. URL path: /update/features/com.astro73.fdt_0.0.001.jar
3. Error notes: File does not exist: /home/groups/f/fi/firstclipse/htdocs/update/features/com.astro73.fdt_0.0.001.jar
4. Error type: 404
5. Request method: GET
6. Request query string:
7. Time: 2007-01-08 19:02:45 PST (1168311765)
Reporting this problem: The problem you have encountered is with a project web site hosted by SourceForge.net. This issue should be reported to the SourceForge.net-hosted project (not to SourceForge.net).
If this is a severe or recurring/persistent problem, please do one of the following, and provide the error text (numbered 1 through 7, above):

Contact the project via their designated support resources (http://sourceforge.net/support/prweb-lookup.php?host=firstclipse.sourceforge.net&support=1).
Contact the project administrators of this project via email (see the upper right-hand corner of the Project Summary page (http://sourceforge.net/support/prweb-lookup.php?host=firstclipse.sourceforge.net) for their usernames) at user-name@users.sourceforge.net If you are a member of the project that maintains this web content, please refer to the Site Documentation regarding the project web service (https://sourceforge.net/docs/E07/) for further assistance.



How do I set up my development environment?

Thanks in advance,
Robinson

Astronouth7303
10-01-2007, 13:10
Very weird. That should work. I'll look at it when I can access it.

In the mean time, I put a new version of the extract-and-run at http://astro73.com/download/eclipse/. It's the "full" file. It includes the toolchain, the error parser, and Subclipse. It is not, however, tested, so I can't say if it will work. This is the version I'll use to setup my team if it works.

I'll post the jars for those two plugins on SourceForge later.

As for the update site, I'll make sure to upload the new version later. (The major change is in the branding.)

Changes in the toolchain plugin:

Added targets for 2004-2005 controllers vs. 2006-2007 controllers
Fixed branding


EDIT: Ah. It's a bug. The actual file is "..._0.0.1.jar".

TheHolyLancer
15-01-2007, 02:45
i would definitely like to use it

AnubisByte
27-03-2007, 15:51
Wow...I know I'm kinda late in the proccess here but I think this is a great devolpment. I started using Eclipse in my programming classes in college and am in love with it. I helped out with the programming back in the day and I know how big of a headache MPLAB could be. I don't have any real experience writing extensions but I'm going to install the beta version on my box and try it out.

Great job guys

CardcaptorRLH85
30-10-2007, 18:10
I'm wondering what happened to this project. I've decided to switch from Visual Studio to Eclipse for most of my general coding primarily because I remember hearing a while a go that it's possible for me to code for FRC in Eclipse. By the way, will this project be able to load code onto an RC directly from Eclipse on a Win64 or Win32 system? I'm running Windows Vista 64-bit here at home and our team uses a Win2k laptop, a WinXP 32-bit desktop, and two Win2k desktops. As one of the programmers I end up coding at home and on the laptop mostly. I'm just wondering just how much needs to be done for us to get a working beta before the start of the next season.

cooker52
30-10-2007, 20:01
I've gotten the Eclipse IDE, but it won't work on my computer. It says I need the Java Virtual Machine 1.5 or higher, but I can't seem to find it. Does anyone get me a link to where I can get it from?

BTW, it says I have JVM 1.4.2_14.

CardcaptorRLH85
30-10-2007, 21:11
I've gotten the Eclipse IDE, but it won't work on my computer. It says I need the Java Virtual Machine 1.5 or higher, but I can't seem to find it. Does anyone get me a link to where I can get it from?

BTW, it says I have JVM 1.4.2_14.

The current version of Java is Version 6 Update 3. Here (http://www.java.com/en/download/windows_xpi.jsp?locale=en&host=www.java.com) is the link for the latest version of Java.

cooker52
31-10-2007, 19:18
It says that I am up to date on the latest download.

I got curious and looked in my hard drive. What I found was that right in the C Drive was the file Eclipse keeps referring to what I have. Moving into my program files, I found the Java folder. Here's what I found. Now what? Any ideas?

CardcaptorRLH85
31-10-2007, 23:17
It says that I am up to date on the latest download.

I got curious and looked in my hard drive. What I found was that right in the C Drive was the file Eclipse keeps referring to what I have. Moving into my program files, I found the Java folder. Here's what I found. Now what? Any ideas?
Just delete everything in your Java folder except for the JDK 6.01_03 and JRE 6.01_03. Java doesn't remove old versions when it updates, since some Java apps require certain versions of the JVM. The good news is that clearing out all of those old ones will probably free up a gigabyte or more of storage space ^_^

neutrino15
16-12-2007, 02:52
My team is all linux right now, and we currently use emacs with the configure python script. I have limited knowledge in eclipse, but would like to help out with this project. I hope its still alive!

However, I keep hearing that FIRST will switch RCs in 2009. Nobody seems to know what this means exactly, but I hope it will still work with this plugin.