PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR Bootloader



ts230
22.01.2009, 00:40
Hallo,
ich möchte in meine C-Software für einen ATMega644 eine Updateroutine einbauen.
Diese sollte(wenn möglich) nicht größer als 1kb sein und die Programmdaten von der Seriellen Schnittstelle entgegennehmen.

Da ich sowas noch nie gmacht habe,hab ich ja wirklich keine Ahnung.
Bitte helft mir (;

sdz55
22.01.2009, 06:42
Hi,
Am besten du googelst mal nach diesen zwei Stichwörtern.
Dann findest du zahlreiche Einträge und fertige Bootloader, die nur darauf warten gebraucht zu werden ;-)

Gruss

Hubert.G
22.01.2009, 10:47
Hier gibts eine Menge Links dazu: www.mikrocontroller.net/articles/Bootloader

ts230
24.01.2009, 16:59
Ja aber die sind alle in Assembler.
Ich wollte das aber in C,so dass ich jederzeit Neuflashen kann.

Hubert.G
24.01.2009, 20:22
Willst du dir den Bootloader neu schreiben?
Flashen kannst du ja dann was du willst.

ts230
26.01.2009, 03:38
Ich brauch ja nur Routinen zum beschreiben des Flash.
Was sollte ich da Beachten?
Ich sende Das HEX-File zeile für Zeile zum Controller.
Wie muss ich mit den Daten umgehen?
Was macht das :-Zeichen?
Dann könnte ich es auch selber machen.
Ich möchte halt zur Laufzeit Flashen,ohne ein Reset zu machen.
Ansonsten könnte ich doch mit einem "JMP" zum Bootloader springen?

Vitis
26.01.2009, 10:44
aha, du willst Daten in den Flash schreiben.
SPM kann halt nur aus dem Bootloaderbereich heraus
gemacht werden im Progmem gehts nicht.
Im Prinzip kannst Du in den Loaderbereich Jumpen
und wieder zurück.
Aber Vorsicht, das laufende Programm überschreiben
kann dann ins Nirvana schicken.

ts230
31.01.2009, 00:10
Könnte jmd. mir bitte Beispiele geben wie ich einen Block flasht(ATMEGA644)?
Wie groß ist die größe eines blocks?
Ich lese eine Zeile der HEX-Datei und schicke es über RS232.
Was bedeutet der Doppelpunkt in der HEX-Datei?