Forum: Compiler & IDEs MegaLoad mit WinAVR compilieren


von Georg Schmidt (Gast)


Lesenswert?

Hallo,

ich möchte auf einem ATMega128 den Bootloader MegaLoad von microsyl
(http://www.microsyl.com) einsetzen, jedoch möchte ich ihn auch ggf.
modifizieren können. MegaLoad ist in der Originalfassung jedoch mit
ICCAVR von ImageCraft (http://www.imagecraft.com/software/) compiliert,
ich arbeite mit WinAVR und möchte auch dabei bleiben.

Ich habe mir nun mal die Testversion von ICCAVR heruntergeladen und
die Includes daraus in WinAVR eingebunden. Als makefile habe ich das
Beispiel-makefile aus WinAVR genommen, auf die Quelldateien abgestimmt
und in den Linker-Options die Option -Ttext=0x01F000 hinzugefügt, damit
das Programm im Boot-Bereich landet.

Einziges Problem scheint nun die Assembler-Datei zu sein. Leider habe
ich von Assembler nicht allzuiel Ahnung. Wenn ich die in der
Original-Version copiliere, bekomme ich nur Fehlermeldungen. Wenn ich
die Datei ein wenig umschreibe (XCALL -> RCALL, Funktionsdeklaration
mit .global, nur einen Doppelpunkt hinter Funktionsname, habe ich aus
einer anderen Assembler-Datei abgeschaut...), wird der Bootloader zwar
ohne Probleme von WinAVR compiliert, jedoch funktioniert er nur bis zu
dem Punkt, an dem die erste Assembler-Funktion aufgerufen wird.

Hat da vielleicht schon jemand Erfahrungen mit gemacht, wie man eine
solche Assembler-Datei von einem Compiler auf den anderen umschreiben
kann?

Bin für jede Hilfe dankbar!

Gruß, Georg

von Berndt Brandes (Gast)


Angehängte Dateien:

Lesenswert?

Arthur de Beun hat das Problem mal gelöst (entweder hier oder bei
http://www.avrfreaks.com/ suchen, weiß nicht mehr wo), siehe Anhang. Es
liegt an der unterschiedlichen Registernutzung der Compiler, die muß
daher auch angepasst werden.

Achtung: Makefile muß auf die jeweilige Umgebung, Prozessortype...
angepasst werden

/Berndt

von Georg Schmidt (Gast)


Lesenswert?

Hallo Berndt.
Die angepasste assembly.S funktioniert super.
Ich hatte mir schon fast gedacht, dass es an den Registern liegt, hatte
nur leider keine Ahnung, wie man das anpasst.
Besten Dank!

Gruß, Georg

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.