Main
Contact
Comments
Intro
Hardware
Software
FAT32
Photos
ASP.NET
ASP
Perl/CGI
NAS Sys
Libraries
Utilities
Projects DB
Parts Source
MP3Car
YAMMP
Oxygen MP3
PJRC
Z Player
PRUK2000
DSP MP3
Add a link
BootManager.NET - AVR & ARM


About
BootManager is a simple .NET powered bootloader application that allows the download and upload of firmware files to AVR and ARM microcontrollers using a custom bootloader runtime at the target device.
The application supports downloading of either binary flash images or Intel Hex files.

The system is extensible, due to its XML based device configuration details file that allows new devices to be added at a later date without source code modification. The XML file stores details about specific processors such as size of firmware, start address for programming etc.

It would be relativly easy to produce a number of the embedded bootloader application for various processors and platforms, and as long as it was compatible at a protocol level, the Windows application should work without modification (all that would be required is adding new device details to the XML file)...

Windows Application Features
- Poll Unit - Allows checking that attached unit is responding...
- Query Unit - Checks the current processor ID and firmware details...
- Program Firmware - Download a firmware to the attached device...
- Upload Firmware - Read the current device ROM to a file...
- Run Application - Allows you to start the application from the bootloader...
- Currently supports raw binary files as well as Intel Hex files...

GUI Usage
When programming a device, the bootloader application needs to present at the target.
On the AVR platform, I use PonyProg and a parallel cable to initially download the bootloader to the target.
Next, click the 'Start Bootloader' button and then reset the target device. The reason for this is the bootloader will automatically boot the application code (if present) after a few seconds if no 'start bootloader' requests are received.
You can then check the device is connected and accepting commands by clicking 'Poll Unit' or 'Query Unit'.
Now a firmware file can be selected and programmed to the device.
The application can be then started by clicking 'Run Application' or by resetting the target.



Future Extensions
I would like to add the following features soon;
- Verify option - an extension of 'Upload Firmware' feature...
- Command line support - This would be useful where integration with batch build files or IDE integration are required...
- Possibly would like to create a Visual Studio plugin...

Embedded Target
A bootloader is required to run at the target device in order to respond the BootManager.NET requests for Flash programming, etc.

Due to the memory limitations relating to code space (FLASH) of AVR bootloaders, the embedded bootloader is as simple as it possibly can be whilst still supporting checksums and EEPROM status programming...
The compiled size is currently less than 2Kwords which allows it to fit into the ATMega32 and upwards.

Currently, I have developed an ATMEL ATMega AVR's embedded target and are currently working on ARM7 version.
The AVR version supports internal FLASH and EEPROM, although the system could be ported to many other types of platforms with or without external FLASH.

AVR Fuse Settings
The following example of the fuse sections required to get started with the bootloader using the ATMega128 as an example.
The fuses can be programmed using PonyProg at the same time as downloading the bootloader image.


Initial Target Setup - AVR
The target needs to have the bootloader programmed onto it initially. On the AVR, a parallel port cable will be required (can be made from a few wires and a couple of resistors, see here) and
then using PonyProg to download the file to the device.
The AVR also has to have some fuses set:
- Bootloader space needs to be 2Kwords or more.
- Reset vector needs to point to bootloader rather than application start points.

Download
- BootManager.NET Install Files (V1.01) (.NET 2.0 runtime required)
- Embedded Target Builds (38.4K Baud)
- ATMega128 @ 8Mhz
- ATMega128 @ 16Mhz
- ATMega32 @ 1Mhz
- ATMega32 @ 8Mhz
- ARM LPC22xx Build - Coming soon...

The number of builds I have got around to producing is limited at the moment, I'm not making the source code available for either target or GUI yet.

I probably will release the source code at some point, contact:



...for more info relating to getting hold of the source.

Advertiser Links

ASP.NET Digital Sales IPN
Digital sales ecommerce system for PayPal's IPN.
Start making money from only $14.99.


ASP User Membership
User signup & login authentication system
Low cost ASP script from only $4.99...

ASP.NET User Management
ASP.NET members area system, protect your website from only $5.99...

.NET Download Protection
ASP.NET download link protection/anti-leach system.
Low cost ASP.NET module for $3.99...

.NET Email Validation
Email address verification module
Low cost ASP.NET script only $3.99...

Advertise here!
(c) R. Riglar 2003-2006
Disclaimer