Sida 1 av 1
Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 29 januari 2012, 19:26:55
av Zajber
Har börjat forska lite i Pic32-världen. Har ett Pic32 starterkit och en ICD3.
Dock är jag ganska novis när det kommer till den för mig nya C32-kompilatorn.
Scenario: Försöker läsa SD-kort över SPI med C32-exempelkod.
Problem:
Kod: Markera allt
undefined reference to `MDD_SDSPI_MediaDetect'
detta sker på alla funktioner tillhörande FSIO.h t.ex FSInit.
Kod:
Kod: Markera allt
#include "FSIO.h"
char sendBuffer[] = "This is test string 1";
char send2[] = "2";
char receiveBuffer[50];
................
while (!MDD_MediaDetect());
Jag har -mlong-calls med som parameter till kompilatorn, annars får jag "Relocation truncated" också på alla funktioner.
Alla filer ligger i samma mapp och detta är det enda kompilatorn klagar på..
?!?
Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 29 januari 2012, 19:59:29
av TomasL
Ditt felmeddelande talar om exakt vad det är, funktionen "MDD_SDSPI_MediaDetect" finns inte, eller är inte inkluderad, dvs du saknar någon h-fil
Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 29 januari 2012, 20:33:07
av Zajber
Givetvis är det så.
Jag har helt enkelt stirrat mig blind på vilka .h filer som ska med projektet och sketit i de övriga .c filerna.
Lite snabbt sökte jag igenom FSIO.h efter dessa funktioner och alla verkade finnas med.
Dock så var det bara deklarationerna för funktionerna inte funktionera själva. Tänk vad en liten promenad och saft gör gott för tankeverksamheten.
Lösningen är således att inkludera FSIO.c också.
Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 29 januari 2012, 21:22:30
av TomasL
Ja, du lägger den i projektträdet, samma gäller alla andra C-filer som skall vara med.
Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 29 januari 2012, 21:50:59
av Zajber
Det funkar nu efter en stunds ändrande i diverse sökvägar i h-filer m.m.
Nu återstår bara att bekräfta att filerna jag försöker skapa faktiskt finns på kortet.
Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 29 januari 2012, 22:15:12
av sodjan
> Lösningen är således att inkludera FSIO.c också.
Rent principiellt så borde det vara antingen FSIO.o (eller en lib
som innehåller denna objektfil) som ska "inkluderas". Om det nu inte
är så att .c filen *måste* kompileras tillsammans med projektet.
Själva idén med standard rutiner är att man inte behöver källkoden.
Generellt inkluderar man .h filen och "pekar ut" var .lib (eller .o) filen
finns (så att länkaren kan hitta hittar den).
Men det kanske inte är möjligt i C32 miljön att göra allt helt rätt.

Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 29 januari 2012, 22:17:58
av TomasL
Detta är inga lib utan ren källkod, gissningsvis Microchips FAT
Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 29 januari 2012, 22:44:58
av sodjan
Right, men...
> Detta är inga lib utan ren källkod...
Är och är... *Alla* lib'ar har varit källkod en gång när de var små.
Jag förstår inte vad det är du menar. Jag *vet* att en c fil innehåller källkod.
Om det är en standardfunktion som man inte ska/behöver ändra i, så finns
det normalt ingen anledning att inkludera den som *källkod*. Det var bara
det som förvånade mig lite och som jag kommenterade.
Sen kan det ju vara så att man *måste* separatkompilera denna fil
tillsammans med varje projekt man bygger, och då är det ju så. Det kan
vara att den behöver kompileras med projektspecifika switchar eller liknande
vilket gör en pre-kompilerad o eller lib omöjlig.
Sen så kan ju en lib levereras med källkod också, i sann OSS anda. Men om man
är nöjd med funktionalliteten som den är, så är det normalt lib'en man använder.
Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 29 januari 2012, 23:02:24
av TomasL
Nja, detta är ju uChips exempel på filsystem, vilket inte levereras kompilerat utan en ren applikation.
Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 29 januari 2012, 23:22:21
av sodjan
OK. Då missförstog jag allt från början. Jag trodde att FSIO.c innehåller
funktioner för att hantera (bl.a) SD-kort som skall *anropas från* en applikation.
Men om FSIO är applikationen i sig självt så blir det ju annorlunda, så klart.
Aja, glöm bort det...

Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 30 januari 2012, 07:35:10
av TomasL
Njao, FSIO är iofs ett lib för filsystemet, men det levereras i en demo-app.
Re: Kompileringsproblem Microchip C32, Läsa filsystem.
Postat: 30 januari 2012, 07:36:32
av TomasL
FYI, håller jag på med att strula runt med det också, dock med CF/PATA/PMP istället.