Forum: Mikrocontroller und Digitale Elektronik Linker Problem Pic,C18


von Elias W. (1987_ew)


Angehängte Dateien:

Lesenswert?

Hallo,
wollte mich mal mit MPLAB IDE mit C18 Compailer versuchen.
Leider gibt es beim kompilieren folgenden Fehler:
Error - Device not specified. Use /p option to specify a device
Habe das erste Beispielprogramm mit Hello world verwendet.
Für das Projekt wurde der Pic 18f25k22 ausgewählt.
Im Anhang befindet sich noch ein screenshot vom Programm.
Das richtige Linker Script hab ich auch für diesen Pic ausgewählt.
Daher verstehe ich nicht, was da falsch sein könnte?

Schon mal vielen Dank für eure Antworten!

von Zopf (Gast)


Lesenswert?

Lesen kannst du, oder?

von Elias W. (1987_ew)


Lesenswert?

wieso?

von Dennis S. (eltio)


Lesenswert?

Weil da steht, was du tun sollst (kleiner Tip: es ist blau).

: Bearbeitet durch User
von Elias W. (1987_ew)


Lesenswert?

soweit versteh ich das schon.
Komm nur nicht dahinter, wie ich das im folgenden Satz umsetzen soll.

"Use /p option to specify a device"

Bei Projektanlegung hab ich diesen Pic entsprechend ausgewählt.

: Bearbeitet durch User
von Carsten (Gast)


Lesenswert?

Elias Weiß schrieb:
> soweit versteh ich das schon.
> Komm nur nicht dahinter, wie ich das im folgenden Satz umsetzen soll.
>
> "Use /p option to specify a device"
>
> Bei Projektanlegung hab ich diesen Pic entsprechend ausgewählt.

Hi,

Das /p müsstest du beim Aufruf des Linkers in die Komandozeile 
schreiben.
Aber das läuft normalerweise Automatisiert...

Schmeiss mal das Linker Scribt ersatzlos aus dein Projekt raus. Die LKR 
Skripte sind heute nur noch dann nötig wenn du mit den 
Standardeinstellungen nicht zurecht kommst - Beispielsweise wegen 
überlanger Arrays, du den für den SW Stack reservierten RAM Bereich 
verkleinern oder vergrößern musst usw.
Also sicher nicht für ein Hello Welt ;-)

Wenn es dann noch nicht funktioniert überprüfe ob unter Project -> Build 
Options -> Project -> (Tab) Linker im Feld MPLINK Linker unter dem 
Button "Restore Default" etwas Sinnvolles in der Zeile steht:
Sofern du da nicht bewusst etwas geändert hast steht da normalerweise:
/m"$(BINDIR_)$(TARGETBASE).map" /w /o"$(BINDIR_)$(TARGETBASE).cof"
(Erhälst du mit Restore Default)

Gruß
Carsten

von Elias W. (1987_ew)


Lesenswert?

@Carsten:

Vielen Dank für dein Post.
Da scheint es wirklich ein Problem mit dem Linker-Script zu sein.
Nachdem ich dies entfernt habe, funktionierte es ohne Probleme.
Nochmals vielen Dank für diesen Tipp!

Gruß
Elias

von Max H. (hartl192)


Lesenswert?

Was macht das printf beim PIC eigentlich. Ich habe schon viel PIC 
programmiert, habe das printf aber nur am PC gesehen. Könnte mit bitte 
jemand sagen, was das printf auf dem PIC macht?

von Dennis S. (eltio)


Lesenswert?

Per Definition gibt printf Daten an den Standard-Ausgabe-Stream aus [1]. 
Das ist beim Mikrocontroller in der Regel eine Ausgabe per UART, die du 
zum Beispiel mit TeraTerm ansehen kannst.

Gruß Dennis


[1] http://www.cplusplus.com/reference/cstdio/printf/?kw=printf

von Elias W. (1987_ew)


Lesenswert?

Habe das printf schon über den CCS-Compailer an einem PIC erfolgreich 
eingesetzt.
Das printf macht dann über die UART-Schnittstelle die Ausgabe.
Speziell bei diesem Programm hab ich es nur bei der Simulation 
verwendet.
Sollte nur zur Übung dienen.
Hab bisher mit dem CCS Compailer gearbeitet.

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
Noch kein Account? Hier anmelden.