MC9S12

Gast #38637
Lesenswert?

Man kann sich auch etwas anstellen "Herr Dannegger".
Ich weiß nicht wie oft ich schon die überflüssigen Worte "In den Kopf
schauen kann Dir keiner" in diesem Forum lesen musste. Etwas weniger
altklug wäre nicht schlecht :-)
Viele Grüße
Gast #38639
Lesenswert?

@Peter

Ja das ist schon richtig, allerdings könnte man immer schon einmal
pauschal einige grundlegende Dinge beantworten (Initialisierung der
Ports, blabla). Daraus könnte sich dann so etwas wie ein Dialog ergeben
(der dann nicht im Keim erstickt wird), in dem man dann konkreter
werden kann, ohne dass im Vorfeld gleich der Lehrmeister herausgekehrt
wird.
Also Peter, etwas weniger Phrasen bitte.

Benjamin
Gast #38640
Lesenswert?

Hallo Malve,

bin auch gerade von einem C166 Derivat am portieren. Zwar nicht auf
einen Motorola aber ich mußte auch mal ins Datenblatt des Motorola
Controllers gucken. Wenn deine Software gut gekapselt ist, hast Du die
meisten probleme eigentlich nur bei der Portierung der hardwarenahen
Teile des Programms. Also bei den Ports, AD-Wandlern und bei den
anderen Perepherieschnittstellen. Weiterhin mußt du dir evtl. ein paar
gedanken machen, wie du deine Interruptstruktur organisierst. Der
MC9S12 unterstützt ja keine gegenseitig unterbrechbaren Interrupts.
Bei mir waren das bis jetzt die wesentlichen Punkte, wo was zu ändern
war. Am besten nimmt man sich Modul für Modul vor und tested es nach
dem Umschreiben z.B. mit dem Emulator.
Was wahrscheinlich auch noch Fehler verursachen kann, ist die
Verwendung unterschiedlicher Compiler und der damit verbundenen
Eigenschaften wie z.B. andere Spracherweiterungen wie z.B. #Pragmas
oder Interruptaufrufe.

Hoffe ich konnte dir etwas helfen.

Viele Grüße,

Ralf
Gast #38641
Lesenswert?

@Ralf

Ich denke mein Problem liegt darin, dass ich zwei verschiedene Compiler
verwende. Zum einen ist das µVision2 von Keil und zum anderen ICC von
Imagecraft. Die Software, die ich versuche auf dem Motorola zum laufen
zu bringen, soll eine Tabelleninterpolation erzeugen. Das Problem ist
nun, dass diese Software bei µVision2 einwandfrei lief, sobald ich sie
aber mit dem ICC laufen lassen will, kommen verschiedene Fehler, mit
denen ich nicht wirklich etwas anfangen kann. Das Programm lege ich als
Dateianhang bei.
Angehängte Dateien:
Gast #38642
Lesenswert?

Moin Moin,

kann auf den ersten Blick so keinen Fehler erkennen. Was vielleicht
eine Ursache sein kann ist die Bitvariable. Hat der MC9S12 einen
Bitadressierbaren Bereich? Bei meinem Controller ist es jetzt nämlich
so, dass dieser keine mehr hat, im Vergleich zum C164. Bin jetzt an
einem Hitachi dran. Was bei mir auch ziemlich blöde Fehler erzeugt hat
waren die C++ Kommentare '//'. Diese werden beim IAR nicht default
mäßig unterstützt und brachten dann Fehler wie z.B. "Identifier
expected" oder so. Hänge vielleicht nochmal deine Fehlerliste an, dann
kann man vielleicht doch noch was erkennen.
Gast #38646
Lesenswert?

Nein, das nicht, aber die Tabelle wird ja beim Motorola auch innerhalb
der 64k liegen und dann kannst du dieser far weg lassen. Der Zeiger ist
ja auf jeden Fall near, wenn du nur 64k Speicher hast.
Gast #38647
Lesenswert?

Vielen Dank Ralf,

ich hab ihn jetzt weggelassen und das scheint auch kein Problem zu
sein. Jetzt hab ich nur noch das Problem, die einzelnen Pins
umzubenennen. Kann man eigentlich bei Motorola die Pins der jeweiligen
Ports auch einzeln ansprechen,z.B. mit PTP^3 oder so ähnlich? Oder muss
man immer den ganzen Port ansprechen?
Gast #38648
Lesenswert?

Das weiß ich nicht. Habe bis jetzt nur mal ins Datenblatt schauen müssen
und sonst noch nicht mit Motorola gearbeitet. Normalerweise sollte das
aber möglich sein. Ich würde mal in der Beschreibung des Compilers
nachsehen. Normalerweise gibt es für sowas C-Funktionen, die sowas
ermöglichen. Beim IAR-Compiler für den Hitachi heißen die z.B.
bset(Bit, Register) und bclr(Bit, Register). Die beiden funktionen sind
dort in der Headerdatei inh8.h abgelegt. Sowas sollte es für den
Motorola auch geben. Ich würde mal in den Header-Dateien für die
Grundlegenden Ein- Ausgabefunktionen nachsehen. Befehle zum setzen oder
löschen von Bits gibt es im Assembler bestimmt und dann gibt es
bestimmt auch Definitionen für C.

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