Forum: Projekte & Code Bootloader ATmega168


von Simon Lehmayr (Gast)


Angehängte Dateien:

Lesenswert?

Da ich keinen geeigneten seriellen Bootloader für den mega168 gefunden
habe, nun meine Eigenentwickung (mit WinAVR C und AVR-Studio 4
programmiert).
Der Bootloader läuft auf einem mega168 mit internem 8MHz-Clock.
Bootsize 1024 Words, Bootvector enabled. Er ist für mein Projekt
Mr.Midi 2, daher kennt er Tasten und LCD. Man kann ihn natürlich vom
LCD-Ballast befreien (dann passt er auch in 512 Words). Beim Anschalten
prüft der Bootloader, ob eine Taste gedrückt ist. Wenn ja: Bootloader
wird aktiv - sonst Programmstart.
Die feste Baudrate ist 19200 (kann man auch im Source einstellen). Das
PC-Kommandozeilentool ist auch in C (Visual Studio .NET 2003)
programmiert. Syntax: mload.exe com1@19200 myhexfile.hex

von Mirko (Gast)


Lesenswert?

hallo.
kann man den bootloader für einen ATmega8 umstricken? wenn ja wo muß da 
ansetzen(hatte noch keine erfahrungen mit bootloader)?

mfg Mirko

von Simon Lehmayr (Gast)


Lesenswert?

Mittlerweile ist der serielle Bootloader auch veraltet :-)
Mr.MIDI2 hat jetzt einen SD-Karten-Bootloader.

Mit WinAVR und der boot.h aus der avr_lib kann man mittlerweile ohne 
großen Aufwand seinen eigenen Bootloader unabhängig vom verwendeten AVR 
direkt im AVR-Studio 4 programmmieren.

Hol dir einfach meinen aktuellen AVR-Bootloader und tausch die 
Programmierroutinen (flash_erase, flash_write) im alten Bootloader aus.
Stell das Projekt auf mega8. Die seriellen Register heißen auch z.T. 
anders (Funktion bleibt gleich).

von Mirko (Gast)


Lesenswert?

verstehe ich das richtig?
ich soll flash_erase und flash_write routinen aus neuem bootloader 
nehmen und im alten einfügen.
dann Projekt auf mega8 umstellen.
dann serielle Register entsprechend in mega8-register umbenennen.

von Matthias R. (mons)


Lesenswert?

Ich kanns nicht öffnen

von Mario G. (mario)


Lesenswert?

Wen das Thema Bootloader interessiert, schaut euch bitte mal den Artikel
AVR Bootloader in C - eine einfache Anleitung an.

von D.S. (Gast)


Lesenswert?

if ((PIND & 0xFC) != 0xFC)

muss wohl eher

if (PIND != 0xFC)

heißen.

Will aber trotzdem nicht laufen.

Schade

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.