Elektronik-Projekt: Elektronischer Adventkalender


zurück zu Elektronik, Homepage

Adventkalender im Betrieb

6. Umgehen der 1k-Grenze des CC5X-Compilers

Zum Umgehen der 1k-Grenze sind folgende drei Schritte notwendig:

Die folgende Abbildung zeigt diesen prinzipiellen Vorgang.

Schritt 1: Aufteilen des Projekts in mehrere C-Dateien
Wird also eine C-Datei so groß, dass es beim Kompilieren die 1k-Grenze überschreitet, so muss diese in mehrere C-Dateien aufgeteilt werden, wobei auch hier gilt: Jede C-Datei darf beim Kompilieren die 1k-Grenze nicht überschreiten!
Die Aufteilung, welches Unterprogramm sich in welcher C-Datei befindet ist grundsätzlich beliebig. Hier erfolgt die Aufteilung gemäß dem Quellcode aus Abschnitt 7 (Download).

Schritt 2: Kompilieren mit einer .BAT-Datei
Im nächsten Schritt wird nun jede C-Datei (mit Hilfe des CC5X-Compilers) in eine ASM-Datei kompiliert. Diese Aufgabe übernimmt eine .BAT-Datei. Dazu geht man wie folgt vor:

  1. Im Projektordner eine neue Textdatei erzeugen. Der Name der Datei ist egal, wichtig ist nur die Endung .bat (Also z.B. Adventkalender.bat). Es entsteht also eine Datei vom Typ Stapelverarbeitungsdatei für MS-DOS.
  2. Diese Datei (Adventkalender.bat) mit der rechten Maustaste anklicken und im Pop-Up-Menü Bearbeiten auswählen. Im Editor nun die folgenden Einträge einfügen:

    C:\Programme\bknd\CC5X\CC5X.EXE FLACKERLICHT_BAUM.C -IC:\Programme\bknd\CC5X\ -u -r -a -r2
    C:\Programme\bknd\CC5X\CC5X.EXE FLACKERLICHT_KERZEN.C -IC:\Programme\bknd\CC5X\ -u -r -a -r2
    C:\Programme\bknd\CC5X\CC5X.EXE FLACKERLICHT_STERN.C -IC:\Programme\bknd\CC5X\ -u -r -a -r2
    C:\Programme\bknd\CC5X\CC5X.EXE Adventkalender.C -IC:\Programme\bknd\CC5X\ -u -r -a -r2

    Hinweis: Für jede C-Datei muss eine entsprechende Zeile eingefügt werden
  3. Editor schließen (Datei natürlich vorher speichern)
  4. Batch-Datei (hier Adventkalender.bat) mit einem Doppelklick ausführen. Wenn in den C-Dateien alles richtig ist (also die Syntax), werden die dazugehörigen .ASM-Dateien erzeugt (hier FLACKERLICHT_BAUM.asm, FLACKERLICHT_KERZEN.asm, sowie FLACKERLICHT_STERN.asm und Adventkalender.asm). Bei einem Syntaxfehler (in der C-Datei) wird die eventuell schon vorhandene .ASM-Datei gelöscht, und die .OCC-Datei gibt Auskunft über die aufgetretenen Syntaxfehler.

Schritt 3: Zusammenfügen der einzelnen .ASM-Dateien}
Die im vorhergehenden Schritt erzeugten Assembler-Dateien müssen nun zu einem gesamten Projekt zusammengefügt werden. Und schließlich soll daraus die zum Programmieren des PIC notwendige .HEX-Datei erzeugt werden. Dazu geht man wie folgt vor:

MPLAB starten -> Project -> Project Wizard...

Taste Weiter >

PIC-Mikrocontroller (Device) auswählen (hier den PIC16F87)

Taste Weiter >

Active Toolsuite: B Knudsen Data CC5X auswählen

Taste Weiter >

Den Projektordner auswählen, wo dieses Beispiel-Projekt abgelegt werden soll. Dieser Ordner muss schon existieren!

Taste Weiter >

Zunächst in der rechten Spalte die Linker-Datei 16f87.lkr auswählen und die Taste Add >> anklicken. Die ausgewählte Datei erscheint nun in der rechten Spalte. Diesen Vorgang für alle Assembler-Dateien (hier also Adventkalender.asm, FLACKERLICHT_BAUM.asm, FLACKERLICHT_KERZEN.asm und FLACKERLICHT_STERN.asm) und die Header-Datei PROJEKT.H wiederholen.

Taste Weiter >

Taste Fertig stellen

Die MPLAB-IDE schließen und neu öffnen.

Das Projekt (Arbeitsbereich) mit File -> Open Workspace... öffnen.

Project -> Build

Für jede Assembler-Datei sollte nun nacheinander die Box Assembly Successful erscheinen. Diese muss jedes Mal mit der OK-Taste bestätigt werden. Wichtig ist die Meldung BUILD SUCCEEDED am Ende der Assemblierung.

nach oben


zurück zu Elektronik, Homepage

Autor: Stefan Buchgeher
Erstellt: 7. Februar 2010
Letzte Änderung: