Forum: Mikrocontroller und Digitale Elektronik sdcc einrichten, step by step


von Reiner M. (rmk)


Lesenswert?

Hallo,
kann mir jemand helfen. Ich habe Eclipse mit sdcc plugin "mittlerweile" 
erfolgreich installiert. Nun gut. Jetzt das Problem:
Wie und insbesondere wo konfiguriert man die Pfade zu den "include" 
files und "lib" files welche im Programmordner von sdcc zu finden sind? 
Das Manual dazu taugt leider nichts!
Ich erhalte nämlich bei einem einfachen Programm "void main() {}" immer 
die Meldung " ... command not found: sdcc [1]..." während des builds.

von Sigint 112 (sigint)


Lesenswert?

Reiner Michael schrieb:
> " ... command not found: sdcc [1]..."

Der findet den Compiler nicht... du musst also noch PATH richtig setzen.

von Matthias K. (matthiask)


Lesenswert?

Welche µC-Familie willst Du einsetzen?

von Reiner M. (rmk)


Lesenswert?

Es handelt sich um 8051er.
Folgendes Problem stellt sich:
Ich habe im Dialog "Window->Preferences" unter "C/C++->Build->Build 
Variables" einen neuen PATH angelegt(hier: d:\Programme\sdcc\bin). Dort 
sind die entsprechenden files zu finden.
Weiter habe ich unter "General->Workspace->Linked Resources" neue 
Variablen angelegt, welche die Pfade zu den Libraries (.C und .H files) 
beinhalten. Dem Workspace habe ich einen entsprechenden Namen gegeben.
Nach Neustart eclipse finde ich diese auch in Preferences wieder.
Nun habe ich ein neues C-Projekt in diesem Workspace erstellt.
Leider kennt das Projekt die angelegten Pfade nicht! Wenn ich in den 
Preferences nachschaue, dann sind die weg! Desgleichen gilt für die 
Projektoptionen.
What is wrong???
Mein Ziel ist es eine Umgebung für einen benannten Workspace anzulegen, 
in der ich den Build-Pfad definiere als auch die Pfade zu den Libraries.
Diese Umgebung möchte ich dann automatisch in dem Workspace wieder 
vorfinden ohne jedesmal im Projekt wieder alle Eingaben machen zu 
müssen.
Langsam geht mir das mit dem Ausprobieren ohne Anleitung mächtig auf die 
Nerven.
Gruß an alle denen es genauso geht.

von Matthias K. (matthiask)


Lesenswert?

Muss es undingt Eclipse sein?

Für SDCC 8051er ist MIDE-51 auch ganz gut geeignet. Ist speziell für 
SDCC angepasst.
http://www.opcube.com/home.html#MIDE51

von Reiner M. (rmk)


Lesenswert?

Mittlerweile habe ich die Preferences entsprechend definiert. In den 
Projektoptionen muß man allerdings die Pfade für Include mit ins Projekt 
manuell aufnehmen. Was anderes habe ich leider nicht gefunden. Soweit so 
gut. Nun habe ich ein einfaches Programm (Dip-Schalter einlesen und an 
LED-Port ausgeben geschrieben). Nächstes Problem: ändere ich etwas am 
Code, so muß ich zunächst den Quelltext speichern ansonsten meldet mir 
der Compiler "nischt zu tun", frei übersetzt natürlich. Habe keine 
entsprechenden Settings dafür gefunden, also jedesmal speichern, ok.
Nächstes Problem: Output files im .IHX format, na Klasse die kann mein 
controller leider nicht verarbeiten! Nach fast 1 Woche Eclipse finde ich 
die haben einen an der Waffel. Wenn ich bedenke daß ich eigentlich für 
den Cypress FX2 C-firmware schreiben will ... Die gesamten 
Definitionsdateien kann man dann auch noch umschreiben, denn
Cypress (Keil) code lautet:
EXTERN xdata volatile  BYTE GPIF_WAVE_DATA  __at 0xE400;
in SDCC ist dei Definition anders herum:
EXTERN xdata __at(0xE400) volatile  BYTE GPIF_WAVE_DATA;

Wer kommt eigentlich auf die Idee plötzlich alles anders herum zu 
definieren?
Ich überlege nun wieder aus Eclipse auszusteigen. Bin eigentlich 
Assembler-Programmierer und habe mir hübsche Tools für 8051er aufgebaut. 
Die laufen alle!
Andreas, wenn Du nun MIDE-51 vorschlägst (kenne ich eh nicht!) dann wird 
der SDCC-Kram ja wiederum benutzt und das bringt mich nun auch nicht 
richtig weiter.

von rmk (Gast)


Lesenswert?

Weiß jemand ob/wie man "makebin.exe" aus IDE von Eclipse heraus starten 
kann damit automatisch Binärfiles erzeugt werden?

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.