ATmega8 Code kompilieren - Anfägerfrage

OP #3040084
Lesenswert?

Hallo zusammen,

ich habe eine Anfängerfrage:

Ich habe im Netz einen Bauplan für einen ATmega8 basierten Timer 
gefunden und das Teil nachgebaut.

Soweit hat alles gut geklappt und ich habe vom Entwickler auch noch den 
Quellcode sowie die .hex und die .eep Dateien bekommen.

Nun habe ich folgendes Problem:

Wenn ich mit avrdude die Original-Dateien vom Entwickler flashe, dann 
klappt alles erwartungsgemäß und der Timer funktioniert.

Wenn ich mit AVR-Studio 5 jedoch die (unveränderten) Sourcecodes 
kompiliere und diese dann flashe, dann erscheinen nur krypische Zeichen 
auf dem Display des Timers. Flashe ich die .hex des Entwicklers zurück, 
dann ist alles wieder gut.

Ich beziehe mich auf dieses Projekt: 
http://www.kaffee-netz.de/m-hlen/67316-m-hlentimer-im-eigenbau.html

Was mache ich beim kompilieren falsch? Ich habe explizit ATmega8 als 
Device angegeben. Verbaut ist ein ATMEGA8-16PU

Zweites Problem:
Das Kompilieren mit AVRStudio unter Windows ist nur ein Notbehelf. Viel 
lieber würde ich unter Linux arbeiten, da das mein Haupt-OS ist. Leider 
bekomme ich das mit dem Makefile noch nicht hin.

Hat vielleicht jemand ein Makefile zur Codeerstellung/Linux für ATMega8?

Danke vorab für Tipps und Hilfe
Gruß
Ralf
OP #3040370
Lesenswert?

Dietrich L. schrieb:

> Falsches Timing?
> Falls das Timing mit SW-Delays arbeitet: F_CPU falsch oder an falscher
> Stelle definiert? Compiler-Optimierung falsch gewählt?
>
> Zeig doch mal den Source-File.
>

Hallo Dietrich,

die Sourcen sind öffentlich hier verfügbar:

http://dl.dropbox.com/u/3511265/Timer.rar

F_CPU sagt mir jetzt nichts, kommt in den Source-Files auch nicht vor! 
Die Compiler-Parameter sind wie folgt:

-funsigned-char -funsigned-bitfields -Os -fpack-struct -fshort-enums 
-Wall -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" 
-mmcu=($DEVICE)

Da ich blutiger Anfänger bin, sagt mir das nicht viel.

Was mir noch auffällt ist, dass die Files, die ich kompiliere, alle 
etwas größer sind (ein paar hundert Byte) als die, die mir der 
Entwickler zugesendet hat. Daher auch meine Theorie, dass ich in 
AVRStudio etwas falsch eingestellt habe.

Gruß
Ralf
OP #3040436
Lesenswert?

Neue Erkenntnisse.

Ich habe mir nun ein Makefile angepasst, so dass ich auch unter Linux 
ohne AVRStudio kompilieren kann.

Dummerweise sind auch die unter Linux erzeugten .hex-Dateien nicht 
lauffähig. Es kommen wieder nur kryptische Zeichen auf das Display.

Was übersehe ich da nur?

Gruß
Ralf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren