FAT32

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
danei
EF Sponsor
Inlägg: 27402
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

FAT32

Inlägg av danei »

Om man ska skriva en fil till en FAT32 disk. Hur många ställen måste man skriva på då? Får till en fil men windows säger att det är något fel på den när man försöker öppna den.
Användarvisningsbild
axelsonic
EF Sponsor
Inlägg: 709
Blev medlem: 8 juni 2003, 20:56:03
Ort: Stockholm

Inlägg av axelsonic »

Med vad försöker du skriva den ?
Ett eget program ?
Egen hårdvara ?
danei
EF Sponsor
Inlägg: 27402
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Men en PIC 16F877. Kopplad till ett CF-kort.
Egen kod.
Egen hårdvara.

Men frågan var vad som krävs för att XP ska aseptera en fil på kortet. Målet var 5 filer i roten på ett formaterat kort. Så enkelt som möjligt efter som det inte finns minne för att läsa in en hel sektor i minnet.
Användarvisningsbild
axelsonic
EF Sponsor
Inlägg: 709
Blev medlem: 8 juni 2003, 20:56:03
Ort: Stockholm

Inlägg av axelsonic »

Är du säker på att du kör fat32 med xp och inte ntfs ?


Nåväl, eftersom jag saknar liv så har jag googlat lite =) .

http://home.no.net/tkos/info/fat.html

Tror att den kan göra dig lite gladare.
Om du kör NTFS, så rekomenderar jag dig att inte, _INTE_ göra ett eget "fulhack" och skriva till disk, ty du kommer då att få problem.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Tror du först och främst ska skapa en "direntry", som innehåller filnamn och annan filinformation, den ligger på första lediga plats där andra direntrys i den aktuella mappen ligger och om man ska vara noga ska du nog skriva till båda FAT-tabellerna (om din disk är formaterad med två stycken alltså) och peka vart filens cluster ligger, börjar på cluster 2 tror jag, eftersom direntryn ska peka till cluster nummer 1. Ska det bara vara en fil eller en mapp utan innehåll direkt så är det nog bara att skapa en direntry.

Edit: Om din DirEntry inte rymms i mappen(alla sectorer i clustret är redan fulla med filer), så blir du ju även tvungen att hitta ett ledigt cluster och skriva i FAT-tabellen och säga vart mappen fortsätter.

Edit2: Hmm.. Känns som en ganska rörig förklaring, tror denna sida förklarar bättre än vad jag gör: http://www.pjrc.com/tech/8051/ide/fat32.html
danei
EF Sponsor
Inlägg: 27402
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Det skulle kunna var FAT tabell #2 som spökar. Det fiunkar om man skapar filen på PC, tar bort den, och lägger dit den med PICen.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Jag vet inte hur petigt windows är egentligen, men har du varit noga med att sätta alla värden i direntryn rätt, så som storlek, attribut och annat som kanske kan vara viktigt?
danei
EF Sponsor
Inlägg: 27402
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

jo det ska stämma. I enhetshateraren kommer filen upp med rätt filnaman och datum och hela baletten. Men när man flrsöker öppna den så säger den att det är något fel på filen.

EDIT: Det är en vanlig TXT. Så det ska inte vara något skummt med innehållet.
danei
EF Sponsor
Inlägg: 27402
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Nu var det jag som snurrade till det. Måste man skriva till FAT tabellen? Efter som minnet i PICen är för litete kan FATtabellen inte läsasn in och ändras. Räcker det inte med att skriva till rootklusteret? några mappar och fragmenterade filer behöver inte stödjas.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Borde egentligen inte behövas, så länge filen är mindre än ett cluster.
danei
EF Sponsor
Inlägg: 27402
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

filen är större än ett cluster. Men fortsätter på följande cluster.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Kommer på nu att du nog blir så illa tvungen att skriva till FAT även om filen skulle vara mindre än ett cluster... Man måste alltid markera det sista clustret av filen i FAT med 0xFFFFFFFF, så tex Windows vet att filen är slut där.
danei
EF Sponsor
Inlägg: 27402
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Jo det stämmer nog. Det borde dessutom gå att genomföra trotts minnes bristen. När man bara har ett fåtal filer som inte är fragmenterade så borde man kunna generera FATtabellen smtidigt som den skrivs. Får se om det implementeras.
Skriv svar