Forum: Compiler & IDEs MSPGCC Dokumentation


von Michael Jung (Gast)


Lesenswert?

Hallo,

ich habe vor ca. einem Jahr zum ersten mal Kontakt mit einem
Microcomputer gehabt. Ein BFZ MFA, der durch seine 8085 CPU und die
Handfeste Groesse. (19" 3HE) recht einfach zu verstehen war. Nun habe
ich mir vor zwei Wochen einen MSP430 bestellt und stehe vor dem
Blinklicht-code ohne wirklich zu verstehen was die einzelnen Zeilen
bedeuten. Ich kann zwar C und C++ fliessen sprechen, aber so Sachen wie
P1DIR und P1OUT sind mspgcc spezifisch. De facto finde ich auf der
MPSGCC Seite keinerlei brauchbare Informationen fuer die MSP
spezifischen defines und aus den Headerfiles werde ich nur sehr
beschraenkt schlau.

Gibt es irgend ein referenzwerk zum thema MSP430 programmierung in C?
Onlinedokumentation waere mir am liebsten, jedoch auch ein Buchtipp
wuerde mir weiterhelfen.

Gruesse,

Michael

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Die offizielle Doku kennst du schon? Steht doch eigentlich alles
wichtige drin.
http://mspgcc.sourceforge.net/manual/book1.html

von Michael Jung (Gast)


Lesenswert?

Ich bin zwar nicht blind aber scheinbar nah dran. Ich finde nirgendwo
etwas das fuer mich wie eine Referenz aussieht. Ich steh nicht so sehr
auf umschreibende Dokumentation, sondern ziehe simple API
Beschriebungen vor.

Vieleicht gibt es ja sowas nicht und man muss sich wirklich durch die
Headerfiles durchschlagen, aber fuer den Fall, dass nicht ganz klar ist
wonach ich konkret suche moechte ich eine andere API Referenz als
Beispiel heranziehen. http://www.gtk.org/api/ - Die Funktionen sind
uebersichtlich gelistet und mit beschriebungen versehen. So stell ich
mir auch eine API Referenz fuer MSPGCC vor.

Gibt es sowas fuer MSPGCC nicht, oder habe ich einfach nur an der
falschen stelle nachgesehen? In der MSPGCC Dokumentation kann ich
soetwas jedenfalls nicht finden.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Eine großartige "API-Referenz" ist überhaupt nicht nötig. In der Doku
steht wie man Ports, Interrupts, Inline Assemler usw. verwendet, das
war's schon. Referenzen zur C-Standardbibliothek (string.h, stdlib.h,
math.h...) gibt es ja an jeder Ecke.

P1OUT, P1DIR usw. sind für den Compiler nichts weiter als Variablen die
an bestimmten Adressen liegen. Wenn du da Verständnisprobleme hast,
würde ich dir dringen empfehlen erst mal mit Assembler anzufangen.

Gruß
Andreas

von Michael P. Jung (Gast)


Lesenswert?

Dass es sich dabei um irgendwelche Variablen handelt, die direkt mit der
Hardware in verbindung stehen ist mir auch klar. Jedoch kann ich diese
Variablen in keiner der Texte der MSPGCC Dokumentation finden.

Oder suche ich an der falschen Stelle und TI hat diese selbst
dokumentiert?

ps.
Ich hatte mir auch zuerst vorgenommen mit dem MSP direkt Asembler zu
schrieben, als ich dann jedoch zu lesen bekommen habe, dass der MSPGCC
hervorragende Resultate liefern soll und Asembler nicht mehr wirklich
notwendig ist habe ich mich dazu entschieden doch lieber lesbaren
Asembler zu schreiben... C ;-)


Gruesse,
Michael

von Michael P. Jung (Gast)


Lesenswert?

Schliesslich habe ich dann doch etwas gefunden. In der "MSP430x1xx
Family User's Guide" findet man das Instruction Set. Wenn ich das
richtig verstehe sind in MSPGCC die Assemblerbefehle bzw. Konstanten
1:1 uebernommen worden. Dass dies der Fall ist wurde leider in keinem
einzigen MSPGCC Dokument erwaehn, oder ich habe es einfach
ueberlesen...

http://www-s.ti.com/sc/psheets/slau049c/slau049c.pdf


Wenn ich das jetzt doch falsch verstanden habe und die MSPGCC header
files doch teils andere Konstanten benutzten klaert mich bitte darueber
auf. - Ich werde, wenn ich das alles endlich geschnallt habe eine
kleines Howto fuer MSP430 Neulinge (so wie ich es im moment bin)
schreiben um ihnen einen Schmerzfreien Einstieg zu ermoeglichen. Ich
denke dagegen hat niemand etwas, denn die Dokumentation fuer diese
Hardware ist relativ duenn gesaet.

Gruesse,
Michael

von Peter D. (peda)


Lesenswert?

Üblicher Weise hat ein Microcontroller kein Operating-System, d.h. es
gibt nichts, was einen API-Call ausführen könnte.

Man kann höchstens eins kaufen oder lizensieren, aber das kostet
richtig Mäuse.

D.h. Du mußt Dir schon die Hardwarebeschreibung durcharbeiten und dann
direkt auf die Hardwareregister (Portpins, Timer, UART, ADC usw.)
zugreifen.

Wichtig ist auch, daß Du genau die Hardwarebeschreibung des Typs
nimmst, den Du später auch einsetzen willst. Die einzelnen Derivate
haben nämlich unterschiedliche Features. Und es macht z.B. wenig Sinn,
den Timer2 zu starten, wenn dieses Derivat gar keinen Timer2 hat.

Deshalb gibt es für jedes Derivat auch das entsprechende Headerfile, wo
die nur dafür zutreffenden Hardwareregister und Bits schon vordefiniert
sind.


Peter

von Michael P. Jung (Gast)


Lesenswert?

Schon kapiert, mit API hatte ich eigentlich genau diese Makros fuer die
portpins gemeint. Ist vieleicht uebertrieben soetwas API zu nennen,
aber wenn man es genau nimmt ist auch ein Instructionset eine art API.
;-)

...oh weia, jetzt bekomm ich gleich was von den MSP cracks auf die
Muetze...

Ich bin jetzt jedenfalls eifrig dabei den MSP430 zu verstehen. Mir ist
mitlerweile klar geworden wieso die Pins in Ports aufgeteilt sind und
insgesamt habe ich endlich in der TI doku hilfe zu den
Makros/Funktionen gefunden, die auch in MSPGCC eingesetzt werden. Also
auf dem Weg vom Mega-Noob zum Nurnoch-Bisserl-Noob. ;-)

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.