mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Compiler


Autor: Walle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe eine Frage zu Compilern. Ich hoffe ich bin hier richtig.
Ich programmiere zur Zeit die AVR mit Bascom - also einen Basiccompiler.
Ist es eigentlich besser (schnelleren Maschinencode), mit C- Compilern 
zu arbeiten? Und wenn, welchen?
Danke für die Antworten.
Gruß Walle

Autor: Ingo B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Mit asm kann man den effektivsten Code (was Geschwindigkeit und/oder 
Grösse betrifft) programmieren, allerdings ist es auch der aufwendigste 
Weg.

C hat den Vorteil unabhängig vom Prozessor (bis auf die jeweiligen 
Erweiterungen) zu sein, so kann man recht leicht mal einen M16C oder 
C167 programmieren, ohne lange Einarbeitung.

Der Bascom macht recht kompakten Code.
Wenn Dein Basicprogramm für deine Anwendung schnell genug ist und du 
keine Platzprobleme hast, gibt es keinen Grund etwas anderes zu 
benutzen.
Es sei denn, Du willst vielleicht mal einen anderen Controller 
ausprobieren.....

Bis dann,
Ingo.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ingo,

> Mit asm kann man den effektivsten Code (was Geschwindigkeit und/oder Grösse 
betrifft) programmieren ...

Gut, dass Du das Wörtchen "kann" gewählt hast. Andernfalls hätten wir 
beide nun eine heftige Diskussion. Die heutigen guten C-Compiler sind so 
ausgereift und produzieren einen solch effektiven Code, dass Du kaum 
noch eine Chance hast, hier mit Assembler deutliche Vorteile 
herauszuholen. Und wenn überhaupt, dann musst Du schon ein absoluter 
Crack in Assemblerprogrammierung sein, sowas lernt man nicht in wenigen 
Monaten. Diese Annahmen, dass man mit Assembler wesentlich besseren und 
effektiveren Code programmiert sind Fakten aus längst vergangenen 
Zeiten, aber sie haben sich bis heute als hartnäckige Gerüchte gehalten.

Nicht umsonst ist heutzutage C im Profibereich der 
Mikrocontroller-Programmierung Standard. Aber es gibt halt immer noch 
irgendwelche hartnäckigen Dinosaurier, die weiterhin mit 
althergebrachten Methoden arbeiten möchten. Ich habe sogar schon erlebt, 
dass jemand versucht hat, den BS2000 Editor EDT auf Unix zu portieren 
als er in seinem Arbeitsbereich das Betriebssystem wechseln musste, 
natürlich ohne Erfolg. Der gute Mann hat übrigens entnervt aufgegeben 
und ist nun schon längere Zeit im Ruhestand ;-)

Soweit meine 0.02$ zu diesem Thema.

Gruss

Peter

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manche Sachen kann man aber nicht mit C machen. Ich programmiere gerade 
an einem DDS-Signalgenerator, und da kommt es auf jeden einzelnen 
Taktzyklus an... aber wenn eine so harte Echtzeitfähigkeit nicht nötig 
ist gibt es eigentlich keinen Grund nicht C zu verwenden :-)

Gruß
Andreas

Autor: Walle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Danke für die Antworten, aber Eure Diskussion beantwortet leider meine
Frage nicht so recht.
Bascom oder C?
Danke
Schöne Grüße
Walle
PS:Ich habe aber grunsätzlich nichts geger Diskussionen

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Walle,
im Grunde sind deine Fragen doch schon beantwortet.
BASCOM ist ein Basic - Compiler, denn du nur für den AVR und in einer 
anderen Version auch für den 8051 nutzen kannst. Die beiden Versionen 
sind nicht kompatibel. Der erzeugte Maschinencode ist recht kompakt, 
hinkt aber einem mittelmäßig programmiertem Assembler - Code hinterher. 
Der BASCOM - Compiler ist manchmal ganz schön kopflastig. Allerdings 
kenne ich die neueste Version noch nicht.
Der C - Compiler ist in seiner Grundversion im Prinzip für alle 
Controler geeignet. Durch spezielle Bibliotheken wird der Compiler an 
die unterschiedlichen Controller angepasst. Aber auch "C" erzeugt 
teilweise noch viel Überhang. Andreas hat recht mit seiner Aussage über 
zeitkritische Anwendungen.
Wenn man sich also nicht auf einen speziellen Controller festlegen will, 
ist "C" die gute Wahl. Für die 8051er und die AVR`s ist BASCOM von 
seiner Einfachheit her spitze.

Der Meinung von Peter über "C" kann ich mich nicht voll anschliessen. 
"C" ist nur deshalb soweit verbreitet weil es der erste portierbare 
Compiler für Controller auf dem Markt war. Nicht weil es so gut 
ist...........


Es grüßt
Günter der Dinosaurier

Autor: Walle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi an alle,

Danke für die Antworten.  Hat mir doch geholfen.
Ich programmiere seit ca. einem Jahr mit Bascom (sehr einfach und sehr 
kurze Einarbeitungszeit) und ich habe mir schon gedacht, dass ich 
zeitkritische Aufgaben mit Assembler oder "C" lösen muss.
Vielleicht sollte ich mich doch noch in "C" einarbeiten.

Schönen Tag noch.

Gruß Walle

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na Walle,

wenn du es nicht unbedingt brauchst, tue es dir nicht an. Es grenzt an 
Selbstkasteiung.............

Günter

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Günter, ich weiss nicht, ist das tatsächlich dein Ernst, jemandem 
abzuraten, sich mit C zu beschäftigen? Das hört sich ja fast so an, als 
ob diese Programmiersprache bei Dir ein Trauma hinterlassen hat!

Aber wenn es tatsächlich darum geht den letzten Rest an Effektivität 
herauszukitzeln, dann könnten wir uns doch mal über VHDL oder 
FPGA-Design unterhalten, wie wäre es denn damit? Das ist doch bestimmt 
nicht mehr zu toppen.

So ganz nach dem Motto, wir basteln uns einen eigenen Prozessor.

Ach ja, das Ganze ist kein Quatsch. Wer sich für sowas interessiert, 
kann ja mal bei

http://www.opencores.org

vorbeischauen.

Ansonsten wünsch ich allen ein schönes WE, insbesondere unserem 
selbsternannten Ober-Dino Günter ;-)

Gruss,

Peter

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Peter,

:-) so ganz Ernst sollte man das nicht nehmen, natürlich nicht. Und ich 
denke mal, das der Walle das wohl auch nicht sooooo wörtlich nimmt. Aber 
ich habe versucht, mir "C" selbst beizubringen, und irgendwie klappte 
das auch. Aber es ist manchmal ganz schön Frust dabei.......

Und FPGA ist garnicht schlecht. Das steht demnächst an, da ich eine 
kleine Tastatur brauche und ich den 74C922 damit nachbilden will. Ich 
weiß, mit Kanonen auf Spatzen schießen, aber das wird dann eben mein 
erster, halbwegs intensiver Einstieg in diese Geschichte.

In diesem Sinne,
Günter

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Günter,

also wenn Du wirklich Interesse an dieser Sache hast, ich bin nun schon 
seit einiger Zeit auf der Suche nach Informationsmaterial, 
Freeware-Tools usw. Aber was schon beim Thema GALs schwierig ist, 
scheint beim Thema FPGA fast unmöglich zu werden. Das ist wohl ein 
Thema, da spielen nur Leute aus der Oberklasse-Liga mit.

Aber es gibt schon ein paar nette Tools als abgespeckte Versionen für 
lau. Die werde ich demnächst mal austesten.

hier mal als Tip:

http://www.mycad.com/products/product.html

Die beiden Programme MyVHDL-Station und MyLOGIC-Station schauen sehr 
interessant aus und die gibt es als sogenannte "Studentenversionen" mit 
kleinen Einschränkungen, die aber für einen privaten Nutzer immer noch 
sehr interessant sind.

Beste Grüsse,

Peter

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.