Sida 1 av 1
MPLAB: "could not find file c018i.o". *Löst* på sätt och vis
Postat: 26 maj 2009, 17:25:59
av JimmyAndersson
Första raderna i koden:
Kod: Markera allt
Processor PIC18F1320
#include <p18f1320.inc>
Jag har lagt in 18f1320.lkr i Linker-script-fältet.
Problemet är att jag får detta när jag försöker bygga projektet i MPLAB:
"Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "D:\Program\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F1320 "uvbox.asm" /l"G:\PIC\ASM\PIC18L~1\UV-box\uvbox.lst" /e"uvbox.err" /o"uvbox.o" /c-
Executing: "D:\Program\Microchip\MPASM Suite\MPLink.exe" "D:\Program\Microchip\MCC18\lkr\18f1320.lkr" "G:\PIC\ASM\PIC18LF1320\UV-box\uvbox.o" /m"G:\PIC\ASM\PIC18L~1\UV-box\UV-box.map" /w /o"G:\PIC\ASM\PIC18L~1\UV-box\UV-box.cof"
MPLINK 4.11, Linker
Copyright (c) 2007 Microchip Technology Inc.
Error - could not find file 'c018i.o'.
Errors : 1
Link step failed.
BUILD FAILED: Tue May 26 17:10:21 2009"
Vad gör objektfilen c018i.o som den inte hittar?
Filen finns i D:\Program\Microchip\MCC18\lib
Jag har inte varit med om att man måste ange sökvägen till objektfilen tidigare, så jag måste ha missat något...
Antar att man kan ändra något i Projekt-menyn --> Build option --> Projekt och fliken "Directories", men är lite osäker på vad/var.
Re: MPLAB: "could not find file 'c018i.o'"
Postat: 26 maj 2009, 18:46:42
av sodjan
"o" är "objekt" filen som MPASM skapar och som MPLINK läser.
Den finns inte annat än just mellan MPASM och MPLINK.
Men det framgår ju tydligt av MPASM/MPLINK manualen...
Jag vet inte om det har snurrat till med katalogerna eller nått...
Re: MPLAB: "could not find file 'c018i.o'"
Postat: 26 maj 2009, 19:06:35
av bos
JimmyAndersson skrev:Vad gör objektfilen c018i.o som den inte hittar? Filen finns i D:\Program\Microchip\MCC18\lib
Project -> Set Language Tool Locations -> Microchip C18 Tool Suite -> Default search path & Directory -> Library Search Path,$(LIBDIR)
Fyll sen i "D:\Program\Microchip\MCC18\lib" i fältet nedan.
Re: MPLAB: "could not find file 'c018i.o'"
Postat: 26 maj 2009, 19:36:49
av sodjan
Rättning, just den *där* o-filen hör nog till "biblioteket" som bos säger.
Fortfarande dock något med kataloger/sökvägar. Om man väljer rätt
"tool-chain" i MPLAB så borde allt bli rätt, om man har installerat
med standardkataloger. Annars får man hacka in det manuellt
enligt bos exempel...

Re: MPLAB: "could not find file 'c018i.o'"
Postat: 26 maj 2009, 20:20:18
av JimmyAndersson
Jag har testat det nu, men jag får ändå samma fel.
Provade då att lägga till c018i.o i Object Files-fältet, men ändå samma fel.
Men så körde jag
dir c018*.* och såg:
Kod: Markera allt
Innehåll i katalogen D:\Program\Microchip\MCC18\lib
2008-05-28 14:43 1 633 c018.o
2009-05-26 20:11 0 c018i.o
2008-05-28 14:43 4 543 c018iz.o
2008-05-28 18:27 4 380 c018iz_e.o
2008-05-28 18:27 4 281 c018i_e.o
2008-05-28 18:27 1 490 c018_e.o
6 fil(er) 16 327 byte
c018i.o bör väl vara större än 0 bytes ..?
Notera ändringsdatumet för den filen.

Re: MPLAB: "could not find file 'c018i.o'"
Postat: 26 maj 2009, 20:31:09
av sodjan
> Provade då att lägga till c018i.o i Object Files-fältet
Vilket object files-fält ? I själva projektet ?
Länkaren ska/bör hitta denna fil, om den bara vet var den ska leta.
Det verkar som om du har skrivit skrivit/sönder över filen...

Det bör gå att hitta den i C18 kittet och kopiera in den på nytt.
Re: MPLAB: "could not find file 'c018i.o'"
Postat: 26 maj 2009, 20:36:50
av sodjan
Re: MPLAB: "could not find file 'c018i.o'"
Postat: 26 maj 2009, 21:27:42
av JimmyAndersson
"Vilket object files-fält ? I själva projektet ?"
Japp.
När jag söker på c018i.o eller CC18 så hittar jag väldigt mycket träffar om C, istället för assembler. Jag trodde att CC18 ingick
i MPLAB rent generellt (dvs att det inte var knutet till något specifikt programmeringspråk/kompilerare), men så är det tydligen inte?
"Det bör gå att hitta den i C18 kittet och kopiera in den på nytt."
Nu har jag kopierat in den igen. 4,33kB.

Men jag får ändå samma felmeddelande.
edit:
Testade detta:
"Set the Library Path box to “C:\mcc18\lib”."
och då gav en Build All detta:
Clean: Deleting intermediary and output files.
Clean: Deleted file "G:\PIC\ASM\PIC18LF1320\UV-box\uvbox.o".
Clean: Deleted file "G:\PIC\ASM\PIC18LF1320\UV-box\uvbox.lst".
Clean: Done.
Executing: "D:\Program\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F1320 "uvbox.asm" /l"uvbox.lst" /e"uvbox.err" /o"uvbox.o" /c-
Executing: "D:\Program\Microchip\MPASM Suite\MPLink.exe" /l"D:\Program\Microchip\MCC18\lib" "D:\Program\Microchip\MCC18\lkr\18f1320.lkr" "G:\PIC\ASM\PIC18LF1320\UV-box\uvbox.o" /o"UV-box.cof" /M"UV-box.map" /W
MPLINK 4.11, Linker
Copyright (c) 2007 Microchip Technology Inc.
Error - could not find definition of symbol 'main' in file 'D:\Program\Microchip\MCC18\lib/c018i.o'.
Errors : 1
Link step failed.
BUILD FAILED: Tue May 26 21:35:34 2009
En titt på första delen av min kod:
Kod: Markera allt
;****************************************************
Processor PIC18F1320
#include <p18f1320.inc>
;****************************************************
; Relä RB6 Utgång
; Encoder 0 RA4 Ingång
; Encoder 1 RB4 Ingång
; osv...
;****************************************************
CONFIG OSC = HSPLL
CONFIG PWRT = ON, BOR = OFF, WDT = OFF, MCLRE= ON
CONFIG STVR = OFF, LVP = OFF, DEBUG = OFF, CP0 = OFF
CONFIG CP1 = OFF, CPB =OFF, CPD = OFF, WRT0 = OFF
CONFIG WRT1 = OFF, WRTB = OFF, WRTC = OFF, WRTD = OFF
CONFIG EBTR0 = OFF, EBTR1 = OFF, EBTRB = OFF
errorlevel -302
;****************************************************
; Definiera encoder...
#define encoder_a PORTA, 4
#define encoder_b PORTB, 4
;****************************************************
encoder_vars udata_acs
knapp res 1
;****************************************************
Boot CODE h'0000'
goto start
;****************************************************
Int_vect CODE h'0008'
retfie
;****************************************************
Main CODE
Start
;Generell setup
; Oscillator
bcf OSCCON, IDLEN ;CPU core clocked in Run modes, not in Sleep
bcf OSCCON, SCS1 ;Primary oscillator
bcf OSCCON, SCS0 ;Primary oscillator
osv..
edit 2: Startade installationsprogrammet och valde Repair, men utan någon skillnad.
Re: MPLAB: "could not find file 'c018i.o'"
Postat: 26 maj 2009, 22:37:43
av sodjan
Vänta lite här, nu är det förvirrat...
Menar du att du **INTE** håller på med ett C program och kör C18 ?
I så fall har naturligtsvis startup-koden för C18 (som ligger i c018i.o)
inte ett smack med ditt projekt att göra! Hur är projektet konfigurerat
igentligen ? Är det ett C18 projekt som du kör ren ASM i ?
Re: MPLAB: "could not find file 'c018i.o'"
Postat: 26 maj 2009, 22:58:03
av JimmyAndersson
Det är ren assemblerkod i .. vad jag iallafall trott är ett assembler-projekt. Men frågan är då hur c018i.0 kommer in i bilden om den tillhör C...
För att ta det från början:
Jag har både MPLAB IDE och C18 installerat. Startade MPLAB IDE. I Project-menyn skrev jag in ett namn och gjorde en mapp samt klickade Ok.
Gick in i File-menyn -> New. Skrev kod och sparade filen med ändelsen .asm samt lade till filen i projektet (under Source-files).
Jag följde "Konfigurering"
här på Jescab.se.
Under menyn Projects -> "Select Language toolsuite" är Microchip MPASM Toolsuite valt.
Valde sedan "Build All" och då kom felen upp som jag klistrat in tidigare.
Är det inte ett ASM-projekt då?
(Jag har förresten provat "Project Wizard" också.)
edit: Att jag inte tidigare skrivit att det är ett assemblerprojekt med assemblerkod är för att jag trodde att c018i.o tillhörde just assembler-projekt. Såhär i efterhand inser jag att jag borde ha skrivit det ändå för att förtydliga.

Re: MPLAB: "could not find file 'c018i.o'"
Postat: 26 maj 2009, 23:07:43
av sodjan
OK. Något är fel. Du ska *inte* länka in startup koden för C i ditt projekt...

Någet med "tool-suite" eller liknande har blivit galet. Jag vet inte vad, har
inte C18 själv...
Re: MPLAB: "could not find file 'c018i.o'"
Postat: 27 maj 2009, 01:30:25
av JimmyAndersson
"Du ska *inte* länka in startup koden för C i ditt projekt..."
Det blir lite fel ja...
Jag avinstallerade C18 och MPLAB. Jag behöver egentligen inte C18 längre,
så jag installerade då bara om MPLAB och nu fungerar det som det ska.
