Forum: Mikrocontroller und Digitale Elektronik Brauche hilfe zum erstellen eines Bootloaders (ATmega32)


von Kai S. (luxell)


Lesenswert?

Hallo zusammen,

brauche dringenst hilfe einen Bootloader für den ATmega 32 herzustellen.

Natrülrich habe ich auch mehr als nur lange das Formun durchsucht und es 
gab da auch welche. Aber leider habe ich noch keine so großen Kentnisse 
und ich breuchte es dringenst. Hatte es auch mit den Bootloader von 
Peter Dannegger probiert.
http://www.mikrocontroller.net/articles/AVR_Bootloader_FastBoot_von_Peter_Dannegger

Aber ab den Teil "Assemblieren des Bootloaders" komm ich einfach nicht 
weiter. Ich weiß nicht was assemblieren ist oder noch besser was ich da 
genau machen soll. Dachte das ich die avrsm2.exe starten muss und dannn 
"avrasm2 -fI BOOTLOAD.ASM" rein schreiben soll. Aber wenn ich avrasm 
starte kommt nur ganz kurz ein dos fenster also so ein schwarzes Bild 
und weg ist es. Keine ahnung wodrann es liegt.

Super wäre es wenn mir einer auf die schnelle für den Atmega32 eine Hex 
Datei herstellen könnte (also das Programm für den Bootloader), so das 
ich es über PonyProg flashen kann und natrülich die entsprechende 
Fboot.exe um über diese meine selbst erstellten Hex Dateine (also 
Programme) auf den Atmega flashen kann. Natrülich würde es mir auch 
reichen wenn mir einer genau den Teil erklären kann beim erstellen eines 
Bootloaders, den ich nicht verstehe. Dann könnte ich es auch selbst 
machen. Nur so das ich es aber auch vertshen kann (also für anfänger ;)

Noch ein paar Daten:
ATmega32; Möchte diesen über RS232 flashen; 16000000Hz Quarz und der 
RS232 ist an Pin 14 (RXD/PD0) und Pin15 (TXD/PD1) angeschlossen.

Wie gesagt hab wenig Erfahrung. Nur schulwissen und programiere über 
AVR. Wäre super wenn mir da einer schnelstens helfen könnte. Danke!!!

von Hannes (Gast)


Lesenswert?

Besser, Du fängst mal mit kleineren Projekten an.

von Kai S. (luxell)


Lesenswert?

Hi Hannes,
danke für die schnelle Antwort. Was meinst du mit kleineren Projekten? 
Also den ATmega8 hab ich schon durch und auch schon einiges gemacht. Bin 
dann auf den ATmega32 umgestiegen, damit ich mehr zur verfügung habe. 
Und was würde es mir bringen kleinere Projete in Angriff zu nehmen, wenn 
der Bootloader mir schon sehr wichtig ist???

Mal ganz erlich. Dein Beitrag hilft mir überhaupt nicht weiter. Und die 
Lösung meines Proplems ist es auch nicht. Und auserdem gebe ich nicht so 
einfach auf, wenn etwas funktioniert oder fang wo anderes an.

Also bitte ich noch mal von den, die mir wirklich helfen können, um 
schnellst mögliche Antwort.
Vielen Dank.

PS.: Sorry, aber sinnlose Beiträge helfen mir garnicht. Und dafür ist 
dieses Forum wohl nicht gedacht!

von Floh (Gast)


Lesenswert?

Kai S. schrieb:
> Dachte das ich die avrsm2.exe starten muss und dannn
> "avrasm2 -fI BOOTLOAD.ASM" rein schreiben soll. Aber wenn ich avrasm
> starte kommt nur ganz kurz ein dos fenster also so ein schwarzes Bild
> und weg ist es. Keine ahnung wodrann es liegt.

Dein PC ist schnell :-)
Der Assembler müsste dir eigentlich ein Hex-File erzeugt haben, 
wahrscheinlich im selben Ordner. Die kannst du dann flashen.

von Christian J. (stormracer)


Lesenswert?

Kai S. schrieb:
> Aber ab den Teil "Assemblieren des Bootloaders" komm ich einfach nicht
> weiter. Ich weiß nicht was assemblieren ist oder noch besser was ich da
> genau machen soll. Dachte das ich die avrsm2.exe starten muss und dannn
> "avrasm2 -fI BOOTLOAD.ASM" rein schreiben soll. Aber wenn ich avrasm
> starte kommt nur ganz kurz ein dos fenster also so ein schwarzes Bild
> und weg ist es. Keine ahnung wodrann es liegt.

Moin,
so wie ich das jetzt verstanden habe, hast du die avrsm2.exe einfach nur 
doppel geklickt. Dadurch startet das Programm, werkt dann aber das es 
nichts zu tun hat und beendet sich wieder.

Du musst das Programm aber auf der Komandozeile starten, damit du den 
Parameter "-fI BOOTLOAD.ASM" mit anhängen kannst.

Dafür öffnest du ein "CMD", indem du bei start -> Ausführen "CMD" 
eintippst. Jetzt musst du nur noch in das Verzeichnis wechslen, indem 
die avrsm2.exe liegt und den Befehl: "avrasm2 -fI BOOTLOAD.ASM" 
eingeben.

Falls du nicht genau weißt, wie du in der "Console" navigieren kannst, 
einfach bescheid sagen und den genauen Pfad zu der avrsm2.exe angeben. 
Dann kan ich dir sagen, was du eingeben musst.

Christian

von Kai S. (luxell)


Angehängte Dateien:

Lesenswert?

Hallo Christian,

danke für deinen Beitrag. Der hat mir scheon ein bissien weiter 
geholfen. Ja, leider kenne ich mich nicht mit der "Console" aus. 
Müsstest mir nochmal helfen.

Also die Datei avrasm2.exe befindet sich hier:
C:\Users\Kai\Desktop\n\BOOTLOAD

Ich hab mehreres ausprobiert, komme aber nicht ganz so weiter. Er zeigt 
mir dann das an (siehe oben).

Wenn ich das assemblieren dann geschaft haben sollte, erhalte ich dann 
eine Hex-Datei, die ich einfach im ATmega32 flashen soll????
Danke schon mal für deine Hilfe.

PS: Floh, danke für das Kompliment, aber hab keine hex datei erhalten.

von Deutschlehrer (Gast)


Lesenswert?

Wie wäre es, erst einmal mit einer Nachhilfestunde in Rechtschreibung 
anzufangen?

von Christian J. (stormracer)


Lesenswert?

Moin,

die Fehlermeldung von deinem letzen aufruf zeigt, das er die Datei 
BOOTLOAD:ASM nichtgefunden hat. Das liegt daran, dass du zwar das 
Programm aufgerufen hast, aber der Pfad zu der Quelldatei noch nicht 
richtig ist.

Am besten ist, wenn du erstmal in das Verzeichnis gehst und dann das 
Programm ausführst.
Du must einfach nur noch nachfolgenden Befehl verwenden:
- cd   --   bedeutet Verzeichnis wechseln (change directory)

Du musst also nur noch:
cd Desktop
cd n
cd BOOTLOAD

eingeben, jeweils mit <ENTER> abgeschlossen.
Anschließend nur noch "avrasm2 -fI BOOTLOAD.ASM".

Dann sollte es funktionieren.

Ja, die HEX Datei, die er ausgiebt, kannst du dann direkt auf den AVR 
flashen.

von Peter D. (peda)


Lesenswert?

Du hast doch AVRstudio installiert, dann mach darin eben ein 
Assemblerprojekt.


Peter

von Ziff (Gast)


Lesenswert?

Den Bootloader laden zu koennen ist eine Sache. Der Bootloader selbst 
ist etwas anderes. Die Kommunikation sollte man ohne Interrupt machen, 
sonst wird's kompliziert. dh der Bootloader muss ein venuenftiges 
Protokol beinhalten. Dan sollte man den Artikel im Datenblatt ueber das 
Memoryprogramming lesen, es geht dabei um Flash schreiben, EEPROM 
schreiben, Fuses schreiben. Auf der PC Seite muss man das Gegenstueck 
schreiben.
Ich hab's schon mal gemacht und es war viel mehr Aufwand wie geplant. 
Auf die Schnelle wird da nichts.

von Kai S. (luxell)


Lesenswert?

Hy  Christian,

DANKE, danke, danke. ES funktioniert. Hab eben alles schnell fertig 
gestellt. So wie ich es haben wollte. Echt super. Auch großen dank an 
Peter Dannegger für den Bootloader. Endlich kann ich jetzt so weiter 
arbeiten wie ich es wollte.

Und Deutschlehrer: Danke für den Tipp. Werde es mir zu Herzen nehmen. 
Nimm du dir zu herzen sinnvolle Beiträge zu schreiben. ;)

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.