Forum: Mikrocontroller und Digitale Elektronik kostenloser Compiler gesucht


von ElektronikBastler (Gast)


Lesenswert?

Hallo zusammen
ich bin gerade dabei ein kleines Projekt (ein Cocktailautomat) zu bauen.
als Mikrocontroller benütze ich den 89C51AC3 von ATMEL.
Bis jetzt habe ich die kostenlose Version von keil.4 benützt. Nur leider 
bin ich jetzt am Ende der Kostenlosen Version mit 2,8kB Code angekommen.

Kennt jemand einen anderen Kostenlosen Compiler  den ich nehmen könnte?
ich weiß sonst nicht weiter habe schon versucht zu kürze, ist aber nicht 
viel drin gewesen.

Ich hoffe auf eure hilfe.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

sdcc

von Peter D. (peda)


Lesenswert?

Wickenhäuser bis 8kB.


Peter

von ElektronikBastler (Gast)


Lesenswert?

habe gerade den sdcc heruntergeladen.
habe ihn auch installiert nur jetzt eine dumme frage.
Wie starte ich den?
Finde da nix.

von hp-freund (Gast)


Lesenswert?


von ElektronikBastler (Gast)


Lesenswert?

Danke komme trotzdem nicht weiter.

Schreibe ich dannden Quell code im Editor und speichere ihn dann unter 
dem Pfad ab?
was ist mit "cd bin" gemeint?

wieso kann das nicht so leicht sein wie beim Keil.
Oder kommt das mir nur am Anfang so kompliziert vor?

von R. F. (rfr)


Lesenswert?

sdcc -IC:/sdcc/share/sdcc/include c:\sdcc\test.c

ist der Befehl, mit dem du den compiliervorgang startest.
Im letztem Teil steht der Pfad, an dem der Compiler seine Datei findet, 
hier C:\sdcc\test.c  .

Ändere den Pfad so, dass dein Programm gefunden werden kann, und 
versuche es nochmal.

Robert

von hp-freund (Gast)


Lesenswert?


von rudi (Gast)


Lesenswert?


von ElektronikBastler (Gast)


Lesenswert?

brauch ich dazu nicht erstmal eine ausführbahre Anwendung?
ich finde in dem Ordner sdcc nicht mal eine Anwendung in der ich etwas 
machen könnte.
da muss es doch was geben oder sehe ich das falsch

von hp-freund (Gast)


Lesenswert?

Ich denke für dich ist die Komplettvariante die beste Lösung.
Installier mal:

http://www.opcube.com/software/midepack02518.exe

von ElektronikBastler (Gast)


Lesenswert?

genau so was habe ich gesucht. Das sieht auf den ersten Blick so aus, 
als könnte ich es das verstehen.

Vielen Danke dafür
Falls noch fragen auftauchen melde ich mich wieder

von Heinz (Gast)


Lesenswert?

Die Eva-Version von Raisonance? Alles in einem Paket vom Editor bis zum 
Compiler - inklusive hochwertiger Codegenerierung. 
http://raisonance.com/

von ElektronikBastler (Gast)


Lesenswert?

gibt es eine alternative header datei für den at89C51AC3?
die passende für den Controller ist nicht beim sdcc vorhanden.
Habe versucht die von Keil zu nehmen. Da bringt der Compiler aber sehr 
viele Warnungen.
Hat jemand einen Tipp welche datei ich da nehmen könnte oder was für 
möglichkeiten ich sonst habe.

von Christian R. (supachris)


Lesenswert?

Such mal nach keil2sdcc das ist ein perl script, was dir die Header 
Dateien umwandeln kann.

von ElektronikBastler (Gast)


Lesenswert?

das sieht passend aus.
Nur weiß ich nicht wie das gehen soll. Was muss ich dazu machen um aus 
der keil version die Sdcc version zu bekommen. Habe noch nie eine Pearl 
script verwendet und bin absolut ratlos

von Matthias L. (matze88)


Lesenswert?

Schau doch einfach mit einem Dateiexplorer deiner Wahl im 
Include-Verzeichnis vom SDCC, was es noch so gibt. In den ersten Zeilen 
der Header steht auch meist, wofür die da sind.

Ein Tip noch dazu:
Beschäftige dich doch auch mal ein wenig mit der Welt der Kommandozeile, 
lerne, dass es eine große Welt von tollen Programmen gibt, die keine 
grafische Benutzeroberfläche bieten und nur auf der Kommandozeile 
ausgeführt werden, durch Parameter gesteuert werden und dann die 
tollsten Sachen für dich erledigen :)

Und nebenbei:
Kommst du nicht vielleicht günstig an ne Version des Keil Compilers? 
Meine Erfahrung, welche allerdings nur ein einziges Projekt einbezieht, 
hat mir gezeigt, dass der Keil wirklich um Welten besser ist als der 
SDCC. Allerdings hat auch der noch einen gewaltigen Rückstand zum GCC, 
d.h. man hat viel Spielraum für Assembler-Optimierung an den kritischen 
Stellen. Der 8051 hat einige Befehle und Fähigkeiten, welche in C 
schlecht abbildbar sind. Zusätzlich fehlen mir sowohl beim Keil als auch 
beim SDCC sehr viele Optimierungen, welche ich bei einem C Compiler der 
heutigen Zeit vorraussetze. Im ASM Listing fallen mir regelmäßig stellen 
auf, die der Compiler einfach anders hätte machen müssen :) Naja - GCC 
verwöhnt eben...

von Purzel H. (hacky)


Lesenswert?

Die Welt der Gratis Compiler ist eher etwas fuer die erfahrenen 
Benutzer, weniger fuer Leute, die fuer jeden unbekannten Schritt die 
Mama an der Hand haben muessen.

Ich geb zu, ich lass auch lieber ein paar hunder Euro springen und spar 
mir damit ein paar Tage Einarbeiten.

:-)

von hbl333 (Gast)


Lesenswert?

ElektronikBastler schrieb:
> Danke komme trotzdem nicht weiter.
>
> Schreibe ich dannden Quell code im Editor und speichere ihn dann unter
> dem Pfad ab?
> was ist mit "cd bin" gemeint?
>
> wieso kann das nicht so leicht sein wie beim Keil.
> Oder kommt das mir nur am Anfang so kompliziert vor?

Das ist doch ganz einfach.
Das ist open source wuselkram.
Das ist genauso Schrott wie der WinAVR.

Sei nicht geizig, nimm Geld in die Hand und kauf dir was gescheites.

von Coder (Gast)


Lesenswert?

Na wenn das alles so kompliziert ist, würde ich vielleicht einen anderen 
uC benutzen, für die es komfortablere freie Entwicklungswerkzeuge gibt. 
Oder zwingt dich jemand ausgerechnet diesen uC benutzen?

Trotzdem ist es hilfreich zu wissen, wie man mit Kommandozeilen-Tools 
umgeht.

von hp-freund (Gast)


Lesenswert?

Nur keine Panik!
Nimm die:

http://sourceforge.net/tracker/download.php?group_id=599&atid=100599&file_id=375799&aid=3009787

und pack sie in:

C:\MIDE\sdcc\include\mcs51

Alles wird Gut :)

von Peter D. (peda)


Lesenswert?

Matthias Larisch schrieb:
> Zusätzlich fehlen mir sowohl beim Keil als auch
> beim SDCC sehr viele Optimierungen, welche ich bei einem C Compiler der
> heutigen Zeit vorraussetze. Im ASM Listing fallen mir regelmäßig stellen
> auf, die der Compiler einfach anders hätte machen müssen :) Naja - GCC
> verwöhnt eben...

Welcher GCC verwöhnt Dich denn?

Der AVR-GCC kann es jedenfalls nicht sein.
Der erzeugt für die gleiche Applikation auf dem AVR deutlich größeren 
Code, als der C51 auf dem 8051.

Die Optimierungen des Keil sind schon sehr clever, Hut ab.
Da kann der AVR-GCC nur von träumen. Dessen Registerverschwendung 
brachte mich regelmäßig in Rage, bevor Atmel den Flash ordentlich 
gepimmt hat (40-Pinner: 128kB). Beim C51 sind dagegen 32kB schon richtig 
viel Holz.

Natürlich muß man beim Keil das Small-Model benutzen und xdata/code 
Memory selber zuweisen. Das ist aber immer noch um Längen komfortabler, 
als bei AVR-GCC diese unsägliche PGM_SPACE-Krücke. Einfache Strings 
kriegt man ja noch gebacken, aber bei Arrays, Unions, Structs, Pointer 
habe ich aufgeben müssen und sie im SRAM gelassen.


Peter

von Peter D. (peda)


Lesenswert?

Hat schonmal jemand den Wickenhäuser getestet?


Peter

von hbl333 (Gast)


Lesenswert?

ElektronikBastler schrieb:
> Danke komme trotzdem nicht weiter.
>
> Schreibe ich dannden Quell code im Editor und speichere ihn dann unter
> dem Pfad ab?
> was ist mit "cd bin" gemeint?
>
> wieso kann das nicht so leicht sein wie beim Keil.
> Oder kommt das mir nur am Anfang so kompliziert vor?

Das ist doch ganz einfach.
Das ist open source wuselkram.
Das ist genauso Schrott wie der WinAVR.

Sei nicht geizig, nimm Geld in die Hand und kauf dir was gescheites.

Peter Dannegger schrieb:
> Natürlich muß man beim Keil das Small-Model benutzen und xdata/code
> Memory selber zuweisen. Das ist aber immer noch um Längen komfortabler,
> als bei AVR-GCC diese unsägliche PGM_SPACE-Krücke. Einfache Strings
> kriegt man ja noch gebacken, aber bei Arrays, Unions, Structs, Pointer
> habe ich aufgeben müssen und sie im SRAM gelassen.

Das kann ich voll und ganz unterstützen. AVR-GCC ist die totale
Krücke. Ich weiss auch nicht was Leute dazu treibt so ein Zeug
auf die Menschheit loszulassen. Ich will mich schliesslich mit
meinem Projekt beschäftigen und nicht mit den unzulänglichkeiten
diverser Wuseltools.

von ??? (Gast)


Lesenswert?

hbl333 schrieb:
> Das ist doch ganz einfach.
> Das ist open source wuselkram.
> Das ist genauso Schrott wie der WinAVR.
Was hindert dich daran es zu verbessern? Nichts? Dann halt die ... und 
tue es!

von Purzel H. (hacky)


Lesenswert?

Die harten Jungs muessen mit Opensource arbeiten und koennen sich dann 
bruesten 100 Euro gespart zu haben. Dass sie dafuer eine Woche 
rausgeblasen haben und jedes Projekt doppelt solange dauert gehoert zwar 
auch dazu, und wird unter "wir sind doch zaeh" abgelegt.

von hbl333 (Gast)


Lesenswert?

??? schrieb:
> hbl333 schrieb:
>> Das ist doch ganz einfach.
>> Das ist open source wuselkram.
>> Das ist genauso Schrott wie der WinAVR.
> Was hindert dich daran es zu verbessern? Nichts? Dann halt die ... und
> tue es!

Warum soll ich den Schrott verbessern?
Ich nehme Geld in die Hand und kaufe mir was gescheites.
Was willste den aus diesem Müll und Dreck machen.
Das sind einfach "Ladendiebstahl Tools". Die einen gehen
in den Laden und klauen den Leuten die Sachen. Die Typen
die solche Tools publizieren klauen die das kostbarste was
Du hast, deine Zeit.

von Heinz (Gast)


Lesenswert?

> Der AVR-GCC kann es jedenfalls nicht sein.
> Der erzeugt für die gleiche Applikation auf dem AVR deutlich größeren
> Code, als der C51 auf dem 8051.

Kannst du an einem Beispiel konkretisieren?

> Die Optimierungen des Keil sind schon sehr clever, Hut ab.

Die haben auch nur das Drachenbuch sorgfältig durchgelesen.

Du bezahlst einen Haufen Geld, für ein Produkt, dass du im Prinzip nur 
auf einen Rechner einsetzen kannst. Hinzu kommen die jährlich fälligen 
Updategebühren.

von Peter D. (peda)


Lesenswert?

Ich will hier nicht den Eindruck erwecken, der AVR-GCC sei unbrauchbar.
Er ist halt bloß nicht so effizient wie andere. Das kann man aber mit 
mehr Flash leicht ausgleichen. Und mit 16kB SRAM kann man auch ruhig 
Konstanten im RAM belassen.

Warum ich den AVR-GCC benutze, liegt an der Lizenz. Ich habe einfach 
Angst, daß mich der Lizenzkram eines kommerziellen AVR-Compilers nervt.

Wir haben z.B. Altium in der Firma und dessen Lizenz-Brimborium nervt 
tierisch.
Es kann sich nicht automatisch eine freie Lizenz nehmen, sondern startet 
erstmal ohne Lizenz und man muß sie dann erst auswählen. Startet man es 
versehentlich ein 2. mal, will es dafür auch ne 2. Lizenz. Will man 
einen anderen PC benutzen (Labor/Büro/Werkstatt/Notebook), darf man 
nicht vergessen, Altium auf dem anderen PC zu schließen.
Manchmal sind auch keine Lizenzen frei, weil ein PC 2 Lizenzen belegt, 
obwohl nur ein Altium offen ist. Dann muß derjenige erstmal seine Arbeit 
abspeichern, Altium schließen und neu öffnen.


Peter

von ElektronikBastler (Gast)


Lesenswert?

Vielen Dank für eure Hilfe.Ich habe mein Ziel erreicht und der Compiler 
funktioniert mit der header datei.

was die Fragen an mich betreffen.

1. mir ist es fast egal wie gut oder schlecht der Compiler etwas macht. 
Hauptsache mein Mikrokontroller macht später das was ich Programmiert 
habe. Bin so wie so eher am Anfang meiner Programmierkünste somit fällt 
mir das auch gar nicht auf.
Hatte das Programmieren ein bischen in der Schule und mach das jetzt 
Privat weiter.

2. Wie schon geschrieben verdiene ich damit kein Geld deswegen möchte 
ich auch keine 340 € für die Keil Software ausgeben.

3. den Controller nehme ich da wir diesen in der Schule hatten und ich 
mit diesem schon Erfahrungen habe. Ein Umstieg wäre mit sehr viel 
Aufwand verbunden und ich hätte auch keine passenden Unterlagen mehr.

Aber ich möchte mich nochmal bedanken und wünsch eeuch allen Frohe 
Weihnachten.
Gruß

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.