Bootloader() & SimpleMain()
|Various embedded projects (and ideas) I'm working on ...|
|Description||This is a bootloader for the AVR ATMega series
(initially made for the 64K, later updated for 128K) but it should be suitable for most of the ATMega's.
A bootloader is a piece of code, firmware placed on a system making it possible to load and start up. Since it's an embedded platform,
the term "bootloader" means a piece of code making it possible to start a pre-defined piece of code - that again later starts the
A flash-programmer [re-flashing, reprogrammable, reconfigurable etc] replace the existing code during special conditions (bootmode). This makes it possible (in our case here) to make the platform programme it-self.
We here have a Bootloader (containing re-flash capabilities), that could replace any existing application, with a new application.
|Notes||This bootloader is made in a rush, over a couple of long nights during a 2 week period. So no much optimization and
rework has been added after it was working. Initialle it worked fine with the 64K version, but since I only had 128K version, I ran into lots of
problems regarding the programming and selection (in the makefile).
Further more are a lot of debugging stuff left in the code, this should be removed.
|References, links etc||The ultimate best site for AVR-Freaks is http://www.avrfreaks.net
Wiki --> http://en.wikipedia.org/wiki/Booting
|BOOTLOADER||<bootloader & application picture - coming soon>
Bootloader is a small 'resident' program making it possible to switch out the real application code, again and again, and again ... without having any programming tools available (JTAG or ICE).
Standard ATMEL 50-100$ development platform (Specification here)
bootloader --> STK-500 (select by compile time-config in the file here below)
Boot up program flow:
Functions/modules in the bootloader.c (and a couple other) file:
|How to compile the stuff, install it and how to run it .... read more here,
Requires: JTAGICE for installing bootloader. HyperTerm for uploading application to the board.
|En bootloader er et lille permanent program der kan loade/skifte den applikation ud som er loadet på CPU'en. Dette
uden at man skal have specielle tools som f.eks en JTAGICE ...
En standard udviklings platform med 8 LED og 8 knapper.... (specifikation her)
Hvorledes det kompileres, installeres og hvorledes der loades ny applikation - læs mere her..
Krav: JTAGICE kræves for at isntallerer bootloader. Hyperterm for at uploade nyt program til board'et.
|Application / Program|
|A simple and small program that demonstrates a simple application - flashing a LED, reading a key press an stuff like that ...|
|En lille bitte program der demonstrerer hvorledes en LED blinker, en knap læses m.m ...|
You could easily adapt several 'almost' equal applications files, just for verifying the functionality.
|Additional Notes||ATMega128 Bootloader is used in my robot :-).
And I have had it running on various systems implementations, and the SDK500 and MAVRIC-IIB.