Gast
#1096649
Ich habe mir vorgenommen etwas in die Entwicklung von SDCC reinzuschauen. Als Werkzeug dazu möchte ich C++Builder verwenden. Ich hoffe das auch das Debugen von C-Programmen auch dabei möglich wird. Mein erster Schritt in diese Richtung ist der Versuch dir snapshots/sdd-src zu kompilieren. Später werde ich mich nur auf zwei für mich interessanten Prozessoren AVR und PIC konzentrieren. Meine erste Schritte: 1. http://totato.com/ : EOL Konverter ermöglicht Wandlung von Textdateien Linux <-> Windows 2. http://particle.teco.edu/software/sdcc/sdcc-archiv.html : SDCC_MinGW laden und installieren (Z.B. auf dem Laufwerk C:) . Vom Verzeichnis C:\SDCC_MinGW\msys\1.0\bin gawk.exe in das Verzeichnis C:\SDCC_MinGW\MinGW\bin kopieren. PATH ändern: Start -> Systemsteuerung -> Sytem -> Erweitert -> Umgebungsvariablen -> Path -> Bearbeiten. Am Ende einfügen: ;C:\SDCC_MinGW\MinGW\bin 3. http://www.koders.com/c/fid4E21E60DED227318812EA3BE4582C011C303524B.aspx Files: aslex.c und asm.h laden. C++Builder öffnen und dann: Neue->Anwendung->Weitere->C-Datei. Weiter dem Projekt beide Dateien aspex.c und asm.h hinzufügen. Menue Sart->Start (oder F9) wählen. So wurde aslex.obj erstellt. 4. http://sdcc.sourceforge.net/snap.php Aktuelle SDCC Source Code (sdcc-src) (Z.B. http://sdcc.sourceforge.net/snapshots/sdcc-src/sdcc-src-20090101-5312.tar.bz2) laden. Das gepackte File entpacken in C:\. Dann entsteht Verzeichnis C:\sdcc\... 5. Jetzt habe ich das aslex.obj in alle Unterverzeichnisse kopiert: C:\sdcc\as\asxxsrc C:\sdcc\as\hc08 C:\sdcc\as\mcs51 C:\sdcc\as\xa51 C:\sdcc\as\z80 6. Jetzt: Start->Alle Programme_>Zubehör->Eingabeanforderung. Dann über bekannte Dos-Befehle (cd \, cd sdcc) in das Verzeichnis c:\sdcc. Jetzt in der Kommandozeile tippen: make –fMakefile.bcc >meldungen.txt 7. Alle Meldungen wurden in das File meldungen.txt geschrieben. Es sind 4 Fehler aufgetreten: Fehler E2468 ralloc.c 1399: Ein Wert vom Typ void ist nicht zulässig in Funktion createStackSpil Fehler E2468 ralloc.c 1483: Ein Wert vom Typ void ist nicht zulässig in Funktion isSpiltOnStack Fehler E2468 ralloc.c 1512: Ein Wert vom Typ void ist nicht zulässig in Funktion spillThis Fehler E2468 ralloc.c 1562: Ein Wert vom Typ void ist nicht zulässig in Funktion selectSpil Alle Fehler (in C:\sdcc\src\pic\ ralloc.c) haben Verbindung zum Makro: #define FENTRY2 1 ? (void)0 : printf Ein Anruf: FENTRY2("called."); führt zum Fehler; “C” gibt es grenzlose Möglichkeiten. Manche führen jedoch zum „Absurdum“ Was bezweckte der Entwickler bei dem Makro? Vorläufig habe ich das Makro geändert: #define FENTRY2 printf In der Kommandozeile getippt: make –fMakefile.bcc >meldungen.txt Jetzt wird einen Fehler gemeldet: Fehler E2063 glue.c 142: Unzulässige Initialisierung in Funktion pic14_constructAbsMap. Die Zeile 142 im File c:\sdcc\src\pic\glue.c: memmap *maps[] = { data, sfr, NULL }; Vielleicht weiß schon jemand etwas dazu…