Forum: Projekte & Code boofa - Bootloader für AVR über UART (AVR109)


von Roland R. (roland) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Entschuldigt bitte den Doppelpost, ich habe die folgende Ankündigung 
zuvor versehentlich im Mikrocontroller-Forum gepostet, ich wollte sie 
eigentlich in der Codesammlung haben wo sie besser aufgehoben ist.

Auf
    http://www.roland-riegel.de/boofa/
oder im Anhang findet Ihr meinen kleinen Bootloader namens boofa. Er ist 
komplett in Assembler geschrieben, passt in einen 512-Wort-Bootsektor 
und ermöglicht das Booten über UART gemäß dem Protokoll der AVR109 
Application Note von Atmel.

Eine eigene PC-Applikation ist also nicht notwendig, man verwendet 
einfach z.B. avrdude. Die Version im ZIP-Archiv prüft beim Start den 
Zustand eines Tasters an der MCU und startet nur, wenn dieser gedrückt 
ist. Ansonsten wird das Anwendungsprogramm ab Adresse 0 gestartet.

Getestet habe ich den Bootloader auf dem ATmega16, er ist auch noch für 
den ATmega128 vorbereitet. Andere MCUs sollten aber einfach hinzuzufügen 
sein.

Vorsicht, wie immer könnten durchaus noch einige Bugs enthalten sein, 
also bitte nicht auf wichtigen Geräten ausprobieren!

Bei Fehlern, Wünschen oder anderen Kommentaren bitte hier melden.

Gruß
Roland

von Mirko (Gast)


Lesenswert?

ich möchte den bootloader für mega8 mit 8MHz umschreiben. wo muß ich 
ansetzen und was verändern. paar tips wären nicht schlecht.

von Roland R. (roland) Benutzerseite


Lesenswert?

Im Prinzip musst Du boofa_config.asm so abändern, dass der Bootloader 
gemäß Deinen Vorstellungen z.B. beim Gedrückthalten eines Tasters 
startet, und ansonsten das Anwendungsprogram gestartet wird.

Dann brauchst Du noch eine Datei m8_config.asm, die in boofa.asm statt 
der m16_config.asm eingebunden wird. Als Vorlage kannst Du die 
vorhandene m16_config.asm verwenden. In m8_config.asm wird die 
MCU-Frequenz eingestellt, sowie einige andere Hardwareanpassungen 
vorgenommen.

Insbesondere solltest Du für einen mega8 folgende Änderungen vornehmen:
.equ DEVCODE = 0x77
.equ DEVSIG = 0x1e9307
Daneben muss noch die Zeile
.equ RWWSRE = ASRE
gelöscht werden.

Habe das zwar nicht getestet, aber es sollte Dich schon einen Schritt 
weiter bringen.

Gruß,
Roland

von Birger Z. (nohelp)


Lesenswert?

mal hochholen

Angeregt durch den AVR_Softwarepool bin ich hier gelandet.

Würde den Bootloader gerne ausprobieren. Mir ist leider nicht ganz klar, 
wie ich das Projekt compilieren soll. Das Programm avra hab ich nicht. 
Schätze, dass das ein Assembler sein soll. Nur welcher? Kann wer helfen?

von Roland R. (roland) Benutzerseite


Lesenswert?

Schau mal hier:
  http://avra.sf.net

Sollte aber auch mit dem Standard-Assembler von Atmel funktionieren.

Gruß,
Roland

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.