mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC, C18: Linker Problem


Autor: Pascal Stadelmann (Firma: none) (pascals)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin mich gerade am Herantasten an die MC-Welt. Nachdem ich nun doch 
schon einiges gelesen habe und auch schon viel verstehe, bin ich nun 
jedoch an ein Problem gestossen.

Ich verwende MPLAB IDE v8.46 und den C18 Compiler. Schlussendlich möchte 
ich einen PIC18F4520 benützten.
Als erstes benutzte ich die MPASM Toolsuite, konnte bereits LED's 
ansteuern und den PIC damit programmieren. Da ich aber die 
Assembler-Sprache nicht geläufig habe, wollte ich das selbe mit der C18 
Toolsuite erreichen.
Hatte mir dazu folgendes Tutorial angeschaut:

Youtube-Video "How To Program A  PIC18F452  With MPLAB IDE"
How To Program A PIC18F452 With MPLAB IDE?

Habe dies so durchgeführt, bin dann aber beim "Buid All" auf die 
folgende Fehlermeldung gestossen:


************************************************************************
Debug build of project `C:\Users\Pascal 
Stadelmann\Documents\Technikerschule\Mikrocontrollertechnik\CaseStudy 
Zutrittssystem\Test2mitC18.mcp' started.
Language tool versions: MPASMWIN.exe v5.35, mplink.exe v4.38, mcc18.exe 
v3.37.01, mplib.exe v4.38
Preprocessor symbol `__DEBUG' is defined.
Target debug platform is `__MPLAB_DEBUGGER_ICD3=1'.
Debug platform options are: `__ICD2RAM=1', `__MPLAB_SWBPS_ON=1'.
Sun Jan 30 18:48:56 2011
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\Users\Pascal 
Stadelmann\Documents\Technikerschule\Mikrocontrollertechnik\CaseStudy 
Zutrittssystem\TestCode.o".
Clean: Done.
Executing: "C:\Program Files\Mikrocontroller\Microchip\MPLAB 
C18\v3.37.01\bin\mcc18.exe" -p=18F4520 "C:\Users\Pascal 
Stadelmann\Desktop\TestCode.c" -fo="TestCode.o" -D__DEBUG 
-D__MPLAB_DEBUGGER_ICD3=1 -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
C:\Users\Pascal Stadelmann\Desktop\TestCode.c:6:Warning [2066] type 
qualifier mismatch in assignment
Executing: "C:\Program Files\Mikrocontroller\Microchip\MPLAB 
C18\v3.37.01\bin\mplink.exe" /l"C:\Program 
Files\Mikrocontroller\Microchip\MPLAB C18\v3.37.01\lib" 
"..\..\..\..\..\..\Program Files\Mikrocontroller\Microchip\MPLAB 
C18\v3.37.01\bin\LKR\18f4520_g.lkr" "TestCode.o" "C:\Program 
Files\Mikrocontroller\Microchip\MPLAB C18\v3.37.01\lib\p18F4520.lib" 
"C:\Program Files\Mikrocontroller\Microchip\MPLAB 
C18\v3.37.01\lib\p18F4520_e.lib" /u_CRUNTIME /u_DEBUG 
/u_DEBUGCODESTART=0x7d80 /u_DEBUGCODELEN=0x280 /u_DEBUGDATASTART=0x5ef 
/u_DEBUGDATALEN=0x11 /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 
/z__MPLAB_DEBUGGER_ICD3=1 /z__ICD2RAM=1 /z__MPLAB_SWBPS_ON=1 
/o"Test2mitC18.cof" /M"Test2mitC18.map" /W
MPLINK 4.38, Linker
Copyright (c) 1998-2010 Microchip Technology Inc.
Error - Device not specified. Use /p option to specify a device.
Errors    : 1

Link step failed.
----------------------------------------------------------------------
Debug build of project `C:\Users\Pascal 
Stadelmann\Documents\Technikerschule\Mikrocontrollertechnik\CaseStudy 
Zutrittssystem\Test2mitC18.mcp' failed.
Language tool versions: MPASMWIN.exe v5.35, mplink.exe v4.38, mcc18.exe 
v3.37.01, mplib.exe v4.38
Preprocessor symbol `__DEBUG' is defined.
Target debug platform is `__MPLAB_DEBUGGER_ICD3=1'.
Debug platform options are: `__ICD2RAM=1', `__MPLAB_SWBPS_ON=1'.
Sun Jan 30 18:48:57 2011
----------------------------------------------------------------------
BUILD FAILED
***********************************************************************

ERROR - DEVICE NOT SPECIFIED...

was ist da falsch gelaufen?

...das folgende ist mein Source-Code:

************************************************************************ 
*
#include <p18f4520.h>
#include <stdio.h>

void main()
{
 printf("Hello World \n");
}
************************************************************************ 
*

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pascal Stadelmann schrieb:
> Error - Device not specified.

Irgendwo hast du was beim Einstellen des verwendeten PICs was vermurkst.

Verwendest du auch einen PIC18F452 ?


Pascal Stadelmann schrieb:
> Schlussendlich möchte
> ich einen PIC18F4520 benützten.

Ansonsten musst du natürlich das Linkerscript auch für den PIC184520 
raussuchen (wie im Video beschrieben). Im Project-Wizzard (auch siehe 
Video) natürlich auch den richtigen PIC verwenen. Video ab 2:08.

Autor: Pascal Stadelmann (Firma: none) (pascals)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine rasche Antwort.
Ich verwende nur einen PIC18F4520, habe dies im Projekt-Wizzard so 
ausgewählt und "selbstverständlich" auch die Linkerdateien dazu 
(PIC18F4520) ausgesucht.
...muss wohl weiter suchen.

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pascal Stadelmann schrieb:
> ...muss wohl weiter suchen.

Versuch mal die versch. Linkerscripte durch. Alle die dem Namen nach zum 
PIC passen.

Hast du denn den entsprechenden PIC auch im Projekt-Explorer eingebunden 
(wie im Video)

Pascal Stadelmann schrieb:
> #include <p18f4520.h>
> #include <stdio.h>
>
> void main()
> {
>  printf("Hello World \n");
> }

Mach mal was anderes als Dinge die man auf einen PIC eigentlich nicht 
nutzt (stdio.h, printf)

Ein PIC braucht immer eine endlos-Schleife.

Was du noch erzählen musst ist was du mit einem printf in einem PIC 
Programm hast. Mach was sinnvolles:

int a=0;
a=8;

Wenn das geht dann liegt's am stdio.h

Das glaube ich aber eher nicht ...

ansonsten versuch mal das Tutorial: http://pic-projekte.de/pic_c.html

Da einrichten wie beschrieben.

Autor: Pascal Stadelmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael vielen Dank für deine Antwort, dein Link ist toll. Grundsätzlich 
sehr einfach beschrieben, aber das ganze Thema auch wirklich gut 
zusammengefasst.

Zu meinem Problem...Ich habe den Fehler gefunden. Die Pfadlänge der 
Linker/Library-Dateien (Project Wizzard->C18 Toolsuite...) waren zu 
lange!

Das Problem ist auch daran zu erkennen, das jedes mal beim Erstellen 
eines neuen Projektes diese Dateien ausgewählt werden müssen, da ein 
rotes X vor der jeweiligen Datei zu finden ist.

Danke jedoch allen für die Hilfe!!!

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.