Sorry, dass die Beschreibung etwas dürftig ausfiel, war etwas knapp an
Zeit.
Okay, mal etwas genauer:
Sinn der Sache ist eine C-Bibliothek zu erstellen. Die Bibliothek soll
so geschrieben werden, dass ich über ein H-File steuern kann, auf
welchen Ports die Signale liegen, also Chip-Select, Reset usw.
Allerdings möchte ich die Bibliothek so gestalten, dass ich erst dann,
wenn ich die Lib in einem Programm verwende, angebe, um welche Ports es
sich handelt. Denn ansonsten müsste ich die Lib jedesmal neu erstellen,
wenn sich die Port-Zugriffe ändern!
Wie realisiere ich das?
Zu den Fehlermeldungen:
Aktuell habe ich die Bibliothek so geschrieben, dass im Lib-H-File alle
Variablen per "extern" definiert werden (z.B. Buffer, usw.). Auch sind
dort die Port-Angaben per "define" geregelt.
Die eigentlichen Variablen werden in einem C-Modul definiert. Dieses
Modul ist nicht Bestandteil der Lib (deswegen Variablen-Deklaration mit
"extern").
Das C-Modul mit den Variablen-Deklarationen holt sich aus der
Lib-H-Datei die benötigten Angaben, also Buffergrößen,
Port-Definitionen ("defines").
Das ganze im Überblick:
Lib-H-File:
#define Port_CS P3^1
...
extern bit bt_CS;
Variablen-C-File:
sbit bt_CS = Port_CS;
Und hier treten die Fehler auf:
L127: Reference made to unresolved external
L128: unresolved external
(Hab die genauen Fehlermeldungen gerade nicht im Kopf)
Und beide Fehlermeldungen für die gleiche Datei. In diesem Fall
betrifft es eine eigens geschriebene Lib für die serielle Schnittstelle
(Das mit dem Port_CS ist ein BEISPIEL!). Fehlerquelle ist offenbar das
Interrupt-Modul.
Hoffe, ihr blickt jetzt noch durch ;-)
Gruß Ralf