View Single Post
  #10   Spotlight this post!  
Unread 29-01-2007, 18:03
Shinigami2057 Shinigami2057 is offline
Slackware Is Your New God (Mentor)
AKA: Harry Bock
FRC #1350 (Rambots)
Team Role: Programmer
 
Join Date: Oct 2006
Rookie Year: 2006
Location: Johnston, RI
Posts: 106
Shinigami2057 is just really niceShinigami2057 is just really niceShinigami2057 is just really niceShinigami2057 is just really niceShinigami2057 is just really nice
Re: rigel: yet another program loader!

Quote:
Originally Posted by Astronouth7303 View Post
The 2004-2005 RC, Vex, and EDUbot all use the PIC18F8520.

I would be interested in this as well. I haven't even gotten to loading master code, yet. (Although I suspect it's pretty easy.)
It's very easy, actually. In the utils/ dir of the tarball is a program "an851d", which is just a program that pretends to be the FRC controller. I used it to see how IFI_Loader would try to load the master firmware without actually having to do it on our bot. All the .BIN file is is a text file that holds a program in a slightly different format from INHEX32 (see ifi_bin_read in src/inhex32.c), which, when loaded and run, will flash the master processor FROM the user processor (as far as I can tell). The only thing my program does when flashing the master is force IFI's "BIN" format and write verification (it would be bad for a flashing error to occur ).

Quote:
Originally Posted by ace123 View Post
Is it as simple as "cat /dev/ttyS0"? (though I'm wondering what happens to all the bytes when the robot serial interface is not outputting anything... are they just null characters?)

Also, how does this compare to the JIFI program in here: http://chiefdelphi.com/forums/showthread.php?t=52546 (though afaik JIFI doesn't seem to be open source)
Yes, just capture the output from the serial port (and change \r to \n where necessary). What happens when you're not getting input depends on whether you opened the serial port with blocking or non-blocking I/O. If it's non-blocking, it will read 0 bytes, if it's blocking, it will wait (usually with a user-set timeout) until it can read something.

I haven't tried JIFI yet because I don't use the Sun JRE, which is (currently) required, but it seems like his is a little earlier in development. His has a GUI, however, which may be more appealing for your purposes. Or, if you'd like to help write one for my library, that'd be fantastic

Quote:
Originally Posted by Eldarion View Post
Since I know exactly where the programming sequence is getting "hung up", maybe I could modify your loader to support a homemade programming cable?
Go for it! If you need any help, let me know (I hope my API is easy enough to work with )
__________________
One of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs.