kostenloser Compiler gesucht

Gast #2471250
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.
Gast #2471542
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?
#2471545
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
Gast #2471554
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
Gast #2471635
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.
Gast #2471651
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
#2471672
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...
#2471679
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.

:-)
Gast #2471691
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.
Gast #2471697
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.
#2471752
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
Gast #2471809
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.
Gast #2471825
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.
Gast #2471856
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.
#2471864
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
Gast #2471933
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ß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren