Forum: Mikrocontroller und Digitale Elektronik Compiler


von Walle (Gast)


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

von Ingo B. (Gast)


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.

von Peter (Gast)


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

von Andreas S. (andreas) (Admin) Benutzerseite


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

von Walle (Gast)


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

von Günter König (Gast)


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

von Walle (Gast)


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

von Günter König (Gast)


Lesenswert?

Na Walle,

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

Günter

von Peter (Gast)


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

von Günter König (Gast)


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

von Peter (Gast)


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

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.