SDCC selbst mitentwickeln.

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…
Gast
Hi,

ich würde dir raten, erstmal den Compiler zu benutzen, den das Projekt 
nutzt.

Von der Webseite:
---snip---
What Platforms are Supported?

Linux - x86, Microsoft Windows - x86 and Mac OS X are the primary, so 
called "officially supported" platforms.

SDCC compiles natively on Linux and Mac OS X using using gcc. Windows 
release and snapshot builds are made by cross compiling to mingw32 on a 
Linux host.

Windows 9x/NT/2000/XP users are recommended to use Cygwin 
(http://sources.redhat.com/cygwin/) or may try the unsupported Borland C 
compiler or Microsoft Visual C++ build scripts.
---snip---

Wenn das läuft, kannst du immer noch versuchen, das ganze auf andere 
Compiler
zu portieren.

Boris
Gast
>> 1 ? (void)0 : printf

...das kann doch nur ein böser Hack von eime Programmierer sein, etwas 
zu realisieren was der Compiler anders anmäkeln würde...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.