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.
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?
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
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
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
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.
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
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...
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.
:-)
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.
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.
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
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.
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!
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.
??? 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.
> 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.
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
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ß