mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programm kopieren von AT90S4433 nach ATmega8


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/...

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

Ich tippe aber auf Unterschiede in der Speicherverwaltung.

Gruß

Johnny

Autor: Markus Wentker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Johnny.
Werd mich dann mal einlesen. Ich hab ja jetzt die Zeit (is gut wenn
sowas beruflich is :-))

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Sebastian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das nennt sich dann "disassemblieren"...

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du dir das Programm (hex-file) im AVRStudio anguckst, wird es dir
disassembliert.
Naja, so würde ich es zumindest nennen...
http://de.wikipedia.org/wiki/Disassembler
Man kann den Assemblercode betrachten. Schöne wäre dann natürlich, wenn
der Disassembler dann auch gleich noch die Registernamen anzeigen würde.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.