Hallo Allerseits, ich nutze MPLAB von Microchip und den C18 Compiler. Wenn ich die Funktion OpenUSART() aus usart.h nutzen will, kommt folgende Fehlermeldung MPLINK 4.00, Linker Copyright (c) 2005 Microchip Technology Inc. Error - could not find definition of symbol 'OpenUSART' in file 'N:\Projekte\2063030_Netzschaltfeld\03_Arbeitsverzeichnis\033_Funktionsm usterphase\0333_FBG_Netzschaltfeld\Firmware\main.o'. Errors : 1 Wie es scheint findet der Linker die Bibliothek nicht, welche OpenUSART() enthält. Wie kann man das dem MPLAB/Linker beibringen? MFG Falk
Hallo Falk, ist denn im main.c der komplette Pfad zu usart.h per #include eingebunden? Nachtrag: Prüfe mal die Einstellungen unter Project>Build Options>Project dort findest du Eingaben für Include-, Library-, Linker-Path Gruß, Edson
@Meister Eder (edson) >ist denn im main.c der komplette Pfad zu usart.h per #include >eingebunden? Nö, warum auch? Alle Beispiele machen einfach
1 | #include <usart.h> |
Und fertig. Und der Compiler meckert ja nicht, wohl aber der Linker. MFG Falk
Jetzt haben sich die Posts wohl überschnitten. Ich habe oben noch was hinzugefügt. Das mit dem kompletten Pfad war eine pure Vermutung, da ich mit dem C18 schon lange nichts mehr gemacht habe.
@Meister Eder (edson)
>dort findest du Eingaben für Include-, Library-, Linker-Path
Stehen alle auf den entsprechenden Verzeichnissen im MCC18 Verzeichnis.
MFG
Falk
Sorry, dann fällt mir auf die Schnelle auch nichts mehr ein. Momentan habe ich den C18 leider nicht installiert, kann also nicht nachschauen. Naja, so ist wenigstens dein Thread oben geblieben ;) Grüße, Edson
hast du nen mc mit mehreren usarts? dann musst du das kind beim richtigen namen nennen :)
@ morph1 (Gast) >hast du nen mc mit mehreren usarts? Nein, ist ein 18F4221. > dann musst du das kind beim richtigen namen nennen :) Schon probiert, Fehlanzeige :-( MFG Falk
Ich hatte vor einiger Zeit mal Schwierigkeiten mit Pfadnamen die länger als 64 Zeichen waren, kann mich aber nicht mehr an Einzelheiten erinnern.
@Dieter Werner (dds5) >Ich hatte vor einiger Zeit mal Schwierigkeiten mit Pfadnamen die länger >als 64 Zeichen waren, Problem ist bekannt, kann ich aber ausschliessen. Hab ein Testprojekt mit kurzen Pfadnamen angelegt, geht immer noch nicht. :-( MfG Falk
Kannst Du nicht das gezippte Projekt (ev. auf's Minimum reduziert) posten, dann könnten wir es auch mal versuchen?
1 | #include <p18cxxx.h> |
2 | #include <usart.h> |
3 | |
4 | void main(void) { |
5 | |
6 | // configure IOs
|
7 | |
8 | TRISA = 0xFF; |
9 | TRISB = 0x21; |
10 | TRISC = 0x90; |
11 | TRISD = 0xFF; |
12 | TRISE = 0x00; |
13 | |
14 | PORTB = 0x20; |
15 | PORTC = 0xFF; |
16 | |
17 | // configure UART
|
18 | |
19 | OpenUSART(USART_TX_INT_OFF & |
20 | USART_RX_INT_OFF & |
21 | USART_ASYNCH_MODE & |
22 | USART_EIGHT_BIT & |
23 | USART_CONT_RX & |
24 | USART_BRGH_HIGH, |
25 | 3); |
26 | |
27 | // endless main loop
|
28 | |
29 | while(1) { |
30 | }
|
31 | }
|
Prozessor ist 18F4221
Also ich konnte es compilieren und linken und auch in MPLAB SIM debuggen (single steppen). MPLAB 8.10 C18 3.14 MPLINK 4.14 Kannst Du nicht das ganze Projekt posten, denn darin befinden sich auch div. Settings.
severino: >MPLINK 4.14 >MPLINK 4.21 Das könnte es sein. Falk hat angegeben: >MPLINK 4.00 Ist das die böse MPLAB V8.0? Damit gabs doch jede Menge Ärger. Ich musste die Version komplett deinstallieren, um nachher mit V8.10 weiter arbeiten zu können.
@ Meister Eder (edson)
>Ist das die böse MPLAB V8.0? Damit gabs doch jede Menge Ärger.
Ich hab die 7.6
MFG
Falk
OK, das Problem wurde gefunden, wenn auch noch nicht behoben. Aus unerfindlichen Gründen ist die Bibliothek für den PIC18F4221 in meiner Compilerversion kastriert, gerade mal 6kB. Die für die meisten anderen Typen ist um die 500kB. Stellt man einen anderen Typen mit grosser Bibliothek ein läuft der Linker problemlos. Schöner Mist! MFG Falk
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.