mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MPLAB und UART


Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Meister Eder (edson)

>ist denn im main.c der komplette Pfad zu usart.h per #include
>eingebunden?

Nö, warum auch? Alle Beispiele machen einfach

#include <usart.h>

Und fertig. Und der Compiler meckert ja nicht, wohl aber der Linker.

MFG
Falk

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Meister Eder (edson)

>dort findest du Eingaben für Include-, Library-, Linker-Path

Stehen alle auf den entsprechenden Verzeichnissen im MCC18 Verzeichnis.

MFG
Falk

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: morph1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du nen mc mit mehreren usarts? dann musst du das kind beim 
richtigen namen nennen :)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte vor einiger Zeit mal Schwierigkeiten mit Pfadnamen die länger 
als 64 Zeichen waren, kann mich aber nicht mehr an Einzelheiten 
erinnern.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst Du nicht das gezippte Projekt (ev. auf's Minimum reduziert) 
posten, dann könnten wir es auch mal versuchen?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <p18cxxx.h>
#include <usart.h>

void main(void) {

  // configure IOs

  TRISA = 0xFF;
  TRISB = 0x21;
  TRISC = 0x90;
  TRISD = 0xFF;
  TRISE = 0x00;

    PORTB = 0x20;
    PORTC = 0xFF;

  // configure UART

    OpenUSART(USART_TX_INT_OFF &
              USART_RX_INT_OFF &
              USART_ASYNCH_MODE &
              USART_EIGHT_BIT &
              USART_CONT_RX &
              USART_BRGH_HIGH,
              3);

    // endless main loop

  while(1) {
  }
}

Prozessor ist 18F4221

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

Auch mit
MPLAB 8.14
MPLAB C18 v3.21
und
MPLINK 4.21

klappt's bei mir.

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Meister Eder (edson)

>Ist das die böse MPLAB V8.0? Damit gabs doch jede Menge Ärger.

Ich hab die 7.6

MFG
Falk

Autor: morph1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibts dafür nen speziellen grund? die is ja doch etwas antik, vl liegts 
daran

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.