Awesome, bro. I like the expansion to include GUI communications.
Cross-platform with GTK was what I was thinking - GiMP does it, along
with many other programs. But you're right, I will need to look into
it since I haven't done that before (open to hints). Here's my half-
baked plan, let me know what you think. Feature list first,
implementation second.
Features:
* Cross-platform GUI written in GTK.
* Uses AVRDude in the background to do the programming
* Uses SVN to update XBoot to the latest version.
* Uses "make" to compile things, so either a WinAVR or AVR-GCC
Makefile can be used
* Configures all available XBoot options
* Configures some available AVRDude settings
* Communicates with bootloader (e.g., can send all available AVR109
bootloader commands)
Implementation
* xboot.h stays as it is, with the only possible changes being
standardizing the line numbers where certain features are located
* A separate "feature config" file (possibly XML, maybe just CSV) lets
the GUI program know what line numbers certain features are at. This
way, a new feature doesn't require adding code to the GUI.
* The GUI lists the available features as parsed from the "feature
config" file, letting the user select from dropdown box/check/uncheck
available bootloader features.
* The GUI can save the setup to an alternate file. Features will be
saved by unique IDs, which will allow for future compatibility.
* The GUI has a list of AVRDude options that will go into the
makefile. Should probably parse directly from AVRDude available
programmer output.
* The GUI has a few buttons:
* Save setup to file (as described above)
* Update bootloader to latest version (via SVN/tarball)
* Export xboot.h
* Compile bootloader
* Program Bootloader to Chip (with alternate filename)
* Program Fuse Bits (probably with just hex values, but later maybe
we could add a list of chip specific fuse bit options like
AVRStudio ... I'm sure that data already exists somewhere...)
* Program Application to Chip (with associated filename box and
browse button)
* Several buttons to play with the bootloader (erase flash, erase
EEPROM, read buffer, write buffer, etc.)
I'm hoping this kind of architecture will keep program maintenance to
a minimum. I've drawn a lofty picture, but I plan on starting with a
bare bones set of features and adding features incrementally. I
should have a GUI drawn up in a few days. Where should I add the GUI
folder into the repository?
I'm a little concerned because I haven't done any Windows programming
since VB6 ... MinGW should work for a Windows compile environment,
right? I think I'll start with getting it working in Linux first,
then port it over to Windows.
Brad
--
You received this message because you are subscribed to the Google Groups "avr-xboot" group.
To post to this group, send email to
avr-...@googlegroups.com.
To unsubscribe from this group, send email to
avr-xboot+...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/avr-xboot?hl=en.