View Full Version : IFI Loader Reloaded
sciguy125
07-07-2005, 01:18
For the last couple weeks, I've been working on writing my own version of IFI Loader. The major improvements are being able to read the flash and being able to "tag" it. By tag, I mean putting some information at the end of the flash so that you know stuff about it. Normally, after it's written to the controller, all information about it is gone. You have to rely on memory and testing to find out what it is and who put it there. At the moment, the tag contains the programmer's initials and the time it was written (I'm open to suggestions about what else it could have).
This is only a preview release so that I can get some feed back about it. It has enough functionality to be used full time instead of IFI Loader, but I wouldn't do that just yet. There are many bugs and many of the widgets in the GUI don't actually do anything yet (and will probably be removed anyway). I also have to do some code clean up to get it ready for a real release.
All development of IFI Loader Reloaded has been done in Linux. It uses Qt, so you should be able to compile the GUI on Windows, Linux, and Mac with the appropriate software from Trolltech (http://www.trolltech.com/products/qt). The only problem with other OSes is the serial port code. Right now, it's only written for POSIX systems. I think you can use Cygwin to compile it on Windows, but I haven't tried it. Although, it'd be nice if someone would write a Windows port (information to do so is in the package).
You can temporarily get it here:
http://ratlab.dyndns.org/loader/ifi-reloaded_qt.zip
It'll only be there for this preview release. I'll find a more permanent home for it at some point. Pretty much, I'd just like to know what you think of it. Suggestions, comments, wishlist...
Notes:
-the serial port is currently hardcoded to /dev/ttyS0
-various bugs
-the menu and toolbar are pretty much decoration (little functionality)
-also see README
Hey! Now that's cool. This goes along great with Eclipse (http://www.chiefdelphi.com/forums/showthread.php?t=37736)!
(Or heck, even the FIRST Contact Database (http://traherom.homeunix.net/contacts)) ;)
Looks nice.
I do not have access to the controller right now, but will test when I get it again.
sciguy125
19-08-2005, 00:24
Alright, it took me awhile, but I'm back. Now I have a windows port. Through the miracle of compiler directives, the same files will compile on windows and linux. I'm almost ready to make a release (probably in the next few days), but I need some help. I'm not set up to compile a static binary for windows. I can get a windows binary, but you'll need Qt (and probably MinGW also) to run it. I don't think library issues are a problem on linux because most of them will already have Qt anyway.
Windows folk seem to shy away from compiling programs from source so, I'm looking for Windows Qt developers that can get me a distributable binary. You'll need Qt3 (Qt2 might work, but I know for a fact that Qt4 won't - I'm working with 3.3.4). I'll give you the source, you can compile it and send me the binary. I'll figure out how to distribute it. I don't need anyone at the moment, I just want to know who I can get help from.
sciguy125
22-08-2005, 12:28
IFI Loader Reloaded 0.1.0
http://ratlab.dyndns.org/loader/ifi-reloaded_qt-0.1.0.zip
You can download Qt 3.3.4 from SourceForge (http://sourceforge.net/project/showfiles.php?group_id=49109&package_id=42335&release_id=331966)
If you're using Visual C++ and plan on installing Qt from source, I'd appreciate it if you compile Qt for static libraries and send me your ifi-reloaded binary.
Jack Jones
22-08-2005, 12:38
I'm running Qt - Windows Dev. with static libraries & can take a shot at it for you.
EDIT: Your most recent post reminded me of the fact the I'm running Borland-5 - Will try to resolve that.
Very cool. I'm currently the lead developer for the Linux ifi-picloader and its textmode enhancements. This looks very awesome. What's the license on it?
sciguy125
22-08-2005, 19:25
Very cool. I'm currently the lead developer for the Linux ifi-picloader and its textmode enhancements. This looks very awesome. What's the license on it?
It's GPLed. The Qt license is the GPL, so any works using it have to be also (almost anything I do will be anyway...).
And thanks for ifi-picloader. I used it as a reference when writing this program.
I wrote this such that it can be used for command line also, but I haven't written the command line interface yet. The GUI is my main priority. The guts of the program will work independent of the interface. As long as you instantiate the primary class and call the right functions (with correct parameters), it'll do it's job.
I forgot to mention the highlights of this version:
The program "tag" contains a 15 character space for a name (intended to be some kind of program name), 3 characters for the programmer's initials (intended to be for the person that clicks Write to Flash), and a timestamp. The tag is written to the last 64 bytes of program flash. I used 64 bytes becuase I wanted to make space for future versions. If the program occupies that space, the tag won't be written though.
I also included a terminal window (like the annoying one that pops up in IFI Loader). One enhancement that I added is the ability to start and stop it. Sometimes, we use it for debugging, but it scrolls by so fast that we have trouble reading it. My terminal window also has to be called manually (I haven't decided if this is a good thing or a bad thing yet).
With the ability to read the program flash, I added a save feature. It takes what it read from the flash and writes a hex file with it.
There's also a verify option when you write (off by default because it's a little time consuming). After it's done writing, it reads the flash to make sure that everything is correct.
It's still hardcoded to /dev/ttyS0 (COM1 on Windows).
Very nice. Off-season I'll take a look at the code, (perhaps port it to my favorite language Python with PyQT support), and make it the new Ifi-pictools :)
sciguy125
01-09-2005, 22:13
Ok, I have a static Windows binary. (Thanks for the offer though, Jack.) To get it however, I needed to make version 0.1.1. It's now ISO C++ compliant and thus compilable with VC++. No other changes though.
Windows binary (http://ratlab.dyndns.org/loader/ifi-reloaded_qt.exe)
Linux/Windows source (not tested on Mac, but might work) (http://ratlab.dyndns.org/loader/ifi-reloaded_qt-0.1.1.zip)
Depending on your system, you might need the VC runtime libraries:
msvcp71.dll (http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71)
msvcr71.dll (http://www.dll-files.com/dllindex/dll-files.shtml?msvcr71)
Unzip the files you get there and drop the dlls in C:\Windows\system
hello...
i have two questions, one of which is even on topic. has this been tested with the vex programmer? the thing has its own wee little pic built in, whether for obfuscation or actaual added functionality i don't know.
the off topic query is this. are there instructions for the braindead available detailing the installation of mcc18 under wine? is it possible to do this without windows isntalled on the linux machine? i have a dying laptop with windows and mcc18 installed and would like to get the compiler moved over to my desktop before the laptop breathes its last, (literally, the fan has gone intermittent). i have no experience with wine, the pic compiler and pinball are the only two windows programs i use and pinball isn't really important enough to me that i much care.
anyway i'll slurp a copy of the picloader dowline here and see if it'll recogize my toy.
thanks...
sciguy125
05-09-2005, 21:35
It hasn't been explicity tested with the Vex kit, but it's compatable with IFI Loader. I think Vex uses IFI Loader, if so, then it should work.
As for mcc18, it runs fine with wine. I haven't tried MPLAB though. Just copy the mcc18 folder to your Linux machine. The Makefile from 245 is also good to have. There's more information in this thread: http://www.chiefdelphi.com/forums/showthread.php?t=36377
Hi,
First, thanks for this great software. I couldn't test it right now because I don't have an RC with me, but is there a way to copy data from the terminal window? A big problem I have with the original loader is I cannot download such data to analyze it with, say, Matlab or Excel :ahh:
Hi,
First, thanks for this great software. I couldn't test it right now because I don't have an RC with me, but is there a way to copy data from the terminal window? A big problem I have with the original loader is I cannot download such data to analyze it with, say, Matlab or Excel :ahh:I can't test it, because I don't have the controller with me, but I'm willing to bet that both the original and the QT loader terminal windows use ctrl-c to copy.
sciguy125
22-10-2005, 12:06
I can't test it, because I don't have the controller with me, but I'm willing to bet that both the original and the QT loader terminal windows use ctrl-c to copy.
I haven't tested IFI Loader, but I'm pretty sure copy works with mine.
Rickertsen2
22-10-2005, 13:56
What info can you give me on how the code loading scheme works? I heard that it is based off of some Microchip reference implementation. You obviously figured it out in order to write this. I am curious.
sciguy125
22-10-2005, 14:39
What info can you give me on how the code loading scheme works? I heard that it is based off of some Microchip reference implementation. You obviously figured it out in order to write this. I am curious.
The PIC on the RC has a bootloader on it. There's read/write commands as well as a few other things. The IFI bootloader is a slightly modified version of the one put out by Microchip. Matt Fowler (FRC team #312) sent me a whitepaper on the IFI bootloader. The Microchip bootloader has the same protocol and both share most of their commands. For documentation on the Microchip bootloader, look for AN851 on their website.
I haven't used it yet, so it may have this feature... but in case it doesn't.
It'd be nice to have a feature to disconnect from the COM port. This way, if you are using another terminal program you don't have to close it in order to be able to use that port.
Tom Bottiglieri
03-11-2005, 20:04
Where can I get a binary? :D
sciguy125
03-11-2005, 20:51
It'd be nice to have a feature to disconnect from the COM port. This way, if you are using another terminal program you don't have to close it in order to be able to use that port.
It's been awhile since I've been in that part of the code, but I'm pretty sure that it does. The port is normally free. When the program wants it, it'll open the port, then close it when it's done.
Where can I get a binary?
I posted a link to a Windows binary a few posts back. I've had trouble making it work, so your milage may vary. It was compiled with Visual Studio, and didn't give any error (it obviously compiled), but it has problems with the serial port. When the program opens the port, it seems to crash. I haven't found the problem though, because if I run that same binary on WINE (windows emulator for linux), it works fine. I don't have access to another windows compiler though. I'd be great if someone came up with a binary for me though. :)
SoftwareBug2.0
03-11-2005, 23:49
...I don't have access to another windows compiler though. ...
Have you tried the Digital Mars compiler?
http://www.digitalmars.com/
I posted a link to a Windows binary a few posts back. I've had trouble making it work, so your milage may vary. It was compiled with Visual Studio, and didn't give any error (it obviously compiled), but it has problems with the serial port. When the program opens the port, it seems to crash. I haven't found the problem though, because if I run that same binary on WINE (windows emulator for linux), it works fine. I don't have access to another windows compiler though. I'd be great if someone came up with a binary for me though. :)I'll give it a shot sometime over the weekend. I have a few different compilers... if I get one to work, I'll post it.
The default microchip loader will also load and unload binaries from the controller, but this is a nice update.
However, this will probably not be able to update the master code, at least not in its original format.
bear24rw
05-08-2007, 00:57
Firstly, yes I know this thread is like two years old but..
I was wondering if you continued work on finishing ifiloader reloaded..
Does it work with the 8722 chip?
Can you email me the whitepaper on the bootloader?
Thanks
sciguy125
06-08-2007, 10:55
Firstly, yes I know this thread is like two years old but..
I was wondering if you continued work on finishing ifiloader reloaded..
Does it work with the 8722 chip?
Can you email me the whitepaper on the bootloader?
Thanks
The response from my team wasn't as good as I thought it would be. I pretty much just stopped working on it.
Tottanka
06-08-2007, 11:03
I would suggest you to add to the tags a word from the programmer, so he knows what program is on the RC at the moment.
Great work!
bear24rw
07-08-2007, 00:07
The response from my team wasn't as good as I thought it would be. I pretty much just stopped working on it.
Oh, sorry to here about the lack of enthusiasm imo i think its a great project
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.