Programm kopieren von AT90S4433 nach ATmega8

Gast #318702
Lesenswert?

Guten Morgen.

Hänge seit 3 Tagen an einem Problem fest.
Ich wollte mit dem STK500 ein Programm von einem AT90S4433 auf einen
ATmega8 kopieren. Auslesen klappt wunderbar, schreiben auch. Nur läuft
die Schaltung (Uhr des Düsseldorfer Fernsehturms) mit dem ATmega8
nicht. Ich habe meiner Meinung nach alles übernommen (Fuses, Lockbits,
Flash, EEPROM). Vielleicht kann mir ja jemand helfen.

Danke im Voraus an alle.
Gast #318703
Lesenswert?

Du hast die Uhr des Düsseldorfer Fernsehturms abgeschossen? Schäm
Dich:-)

Spaß beiseite, ob die direkte Code-Portierung von AT90S4433 nach Mega8
überhaupt funktioniert, weiß ich nicht, es gibt aber von ATMEL eine
AppNote, die vielleicht Hinweise enthält (AVR081):

http://www.atmel.com/dyn/resources/prod_documents/doc2515.pdf

Hoffe, dass Dir das hilft. Hab jetzt nur keine Zeit, mir das selber
durchzulesen.

Ich tippe aber auf Unterschiede in der Speicherverwaltung.

Gruß

Johnny
Gast #318704
Lesenswert?

Hi!

Das einfache "rüberkopieren" wird nicht funktionieren.
Du wirst den Quellcode schon neu kompilieren müssen, da z.B. schon das
EEPROM nicht dieselbe Größe hat und beim Mega8 über 2 Register
angesprochen wird (4433: 1 Register).
Zum anderen - was noch viel "schlimmer" ist - ist die
Interruptvektor-Tabelle anders.
(Findet sich alles im Datenblatt-Link meines Vorredners.)

Gruß
Markus
Gast #318706
Lesenswert?

Wenn du keinen C-Quellcode für das Programm hast, wird es anstrengend...
Bei vorhandenem Assembler-Quellcode könnte es mit ein paar Änderungen
gehen, sofern das Programm gut kommentiert ist.
Wenn du nur das Hex-File, also die Daten aus dem 4433, hast, dann wird
es richtig anstrengend...
Wenn das Programm in einer Hochsprache wie C vorliegt, kümmert sich
überwiegend der Compiler um die Portierung, und spuckt beim Compilieren
ein paar Fehlermeldungen aus...
Gast #318707
Lesenswert?

hm...
Assemblercode is da. Auch gut kommentiert. Ich hab den mal angehängt.
Leider bin ich nich wirklich Programmierbegabt. Könnte also was dauern
bis ich das alles selber RICHTIG geändert hab. Gibts denn sonst noch ne
Methode hex-Code in C-Code umzuwandeln. Suche sowas noch für ein anderes
Projekt zu dem einfach nix existiert.
Danke schonmal für die Tips.
Angehängte Dateien:
Gast #318708
Lesenswert?

Hex- oder Assembler-Code in C-Code ist beinahe unmöglich. C ist eine
strukturierte Programmiersprache, Assembler nicht. Aber das
Assembler-File in diesem Fall sieht ganz gut aus. Du müsstest
'lediglich' die entsprechenden Bezeichnungen ändern (z.B. GIMSK heißt
beim Mega8 GICR, MCUSR heißt MCUCSR...), die Interrupt-Sprungtabelle
ändern, die Initialisierung des Stack Pointers erweitern,...

Wenn Du die Application Note durcharbeitest, sollte das recht fix
gehen. Und wenn Du dafür bezahlt wirst, um so besser:-)

Bei dem anderen Projekt wirds natürlich schwieriger.

Gruß

Johnny
Gast #318709
Lesenswert?

Sehr gut.
Vielen vielen dank an euch.
Werd dann jetzt mal loslegen. Hab die passenden stellen auch bereits
entdeckt.
Dann kann ich das andere Projekt wohl abblasen. Dabei handelt es sich
nämlich um einen AT90S2333 der is laut Datenblatt baugleich zum 4433.
Und für hex-code "überstezten" ist meine Bezahlung auf jeden Fall
nich gut genug ;-)

Danke nochmal.
Gast #318710
Lesenswert?

In Assembler kannste es glaub ich konvertieren (Müsste eigentlich mit
AVRStudio gehen, sicher weiß ich es aber nicht). Nur hättest Du dann
keine Kommentare und keine Registernamen (was allerdings eher besser
ist, weil Du da dann z.T. nix ändern musst). Ist aber schon ein Stück
Arbeit.

Gruß

Johnny
Gast #318712
Lesenswert?

Zu disassemblern befrage ich dann mal google, bzw. hab ich bereits. Gibt
einige Programme mal sehen was die taugen. Habt mir auf jedenfall
geholfen. Mal sehen ob dann noch eine Chance für Projekt 2 besteht.
THX
Gast #318714
Lesenswert?

also ich hab jetzt drei Tools ausprobiert und keins arbeitet so wie ichs
gern hätte.
Registernamen wären natürlich überaus praktisch. Aber das scheint es
nich zu geben.
Werd mich einfach mal weiter damit auseinander setzten. Jetzt hab ich
erstmal Feierabend :-)
Und wenn es nich klappt... auch egal. Bedeutet nur weniger arbeit für
mich :-)
Euch noch nen schönen Tag.

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