Re: c oder assembler

Knolles ELEKTRONIK Forum

Geschrieben von gang man am 25. Oktober 2008 10:17:53:

Als Antwort auf: Re: c oder assembler geschrieben von el-haber am 24. Oktober 2008 13:28:16:

>> ich möchte gerne microprozessoren programieren und möchte wissen was ist leichter - c zu lernen oder assembler?
Hi,
gangman hat eben ein eindeutiges Votum für C abgegeben. Dem kann ich mich anschließen.
Allerdings ist in einem Punkt eine Einschränkung vorzunehmen.
Die Programme sind nicht austauschbar und leicht von einem uC zum anderen zu portieren.
Grund dafür sind die vielfältigen Internas, die gerade im uC-Bereich angesiedelt sind.
Wenn ich z.B. die PWM-Logik und einen A/D-Wandler in einem uC-Typ verfügbar habe, dann ist so ein Gerät in einem Anderem entweder nicht vorhanden, mit einer anderen Adresse ansteuerbar oder vollkommen anders zu bedienen (Steuercodes).
Das bedeutet, daß ich in meinem C-Programm also an der HW-Schnittstelle einige "#IFDEF MACHINE_Type"-Befehle stehen haben werde, wenn eine Portierung vorgesehen ist.
Bei Assembler habe ich von vorne herein, nicht die Möglichkeit an eine 1:1 Portierung zu denken, da die Mnemonik (Befehlsvorrat) zweier uCs schon grundsätzlich verschieden ist.
CU
Stef

Jaja, das mit der Hardware hatte ich schon bedacht (und auch geschrieben).
Aber: die "Intelligenz" eines Programms steckt nicht in der Ansteuerung irgendeiner Hardware, sondern in z.T. sehr ausgeklügelten Algorithmen, z.B. eine FFT-Analyse. Und die kann ich auf dem PC schreiben und testen und im Prinzip völlig unverändert auch auf einem MC laufen lassen (falls die Speicheressorucen dafür reichen).
Hardwarespezifische Sachen kann man komplett aus dem eigentlichen Programm heraushalten und in einer eigenen Datei dazubinden, es muss dann nur diese angepasst werden.
Klingt aufwändig und macht auch für viele Sachen keinen Sinn, da die eh nie auf einem anderen Prozessor laufen sollen.
Aber denk mal z.B. an CANopen oder einen Hart-Stack - solche Sachen (die selbst zu schreiben Monate dauern würde, wenn sie überhaupt jemals fehlerfrei funktionieren) nimmt man fertig dazu. Selbst TCP/IP läuft auf einem MC, gibt irgendwo im Netz ein sehr interessantes Projekt (Webserver mit ATMega32 und ENC28J760).
Letzten Endes ist das das im PC-Bereich seit jahrzehnten übliche Treiber-Prinzip, da steckt alles drin, was irgendwie direkt mit der Hardware kommuniziert.

Antworten:

Knolles ELEKTRONIK Forum

| ©www.HobbyElektronik.de | ©Knolle_P | (©Oliver Pering) |