FatFs - unmount

Michal Grunt michal.grunt na vynet.cz
Pondělí Září 23 17:58:44 CEST 2013


Už mi to asi funguje (zkoušeno 10x). Byl nějaký problém v f_open(.... F_WRITE | FA_OPEN_ALWAYS). Funkci jsem rozděli na dvě části. Na začátku programu pustím f_open FA_OPEN_ALWAYS (do souboru potřebuji data přidávat) a hned f_close a uprostřed kde potřebuji zapisovat f_open F_WRITE a zatím to vypadá OK.

MG

-----Original Message-----
From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Ondrej
Sent: Friday, September 20, 2013 8:05 PM
To: HW-news
Subject: Re: FatFs - unmount

Já jsem ve své aplikaci volal jen

f_write - zapíše zbytek dat
f_truncate - dělám velký soubor najednou a tímhle ho zmenším na správnou velikost (možná je v tomhle u vás chyba) f_close

pak se zařízení uspalo (ale karta měla stále napájení) a po vyndání karty a strčení do PC nebyl nikdy problém. Nebo možná máte problém v rutinách pro čtení/zápis - ale to asi ne, pokud jsou data v souboru OK.

Ondřej

Dne 20.9.2013 16:35, Michal Grunt napsal(a):
> Jak správně odpojit SD kartu aby se na ni před odpojením správně zapsala data? Mám to takto:
>
> f_mount(0,&fs)
> f_open...
> f_write...
> f_sync...
> f_close...
> f_mount(0,0)
> power_off
>
>
> power_off je:
> ------------------
> void power_off(void) {
>
>    GPIO_InitTypeDef GPIO_InitStructure;
>
>    if (!(Stat & STA_NOINIT)) {
>      SDSELECT();
>      SPI_wait_ready();
>      SPI_release(SD_PORT_CS, SD_PIN_CS);
>    }
>
>
>    SPI_I2S_DeInit(SPI1);
>    SPI_Cmd(SPI1, DISABLE);
>    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, DISABLE);
>
>    // All SPI-Pins to input with weak internal pull-downs
>    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7
>        | GPIO_Pin_6;
>    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
>    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
>    GPIO_Init(GPIOA, &GPIO_InitStructure);
>
>    Stat |= STA_NOINIT; // Set STA_NOINIT }
> ------------------
>
> Ale stejně to nefunguje na 100%. Při vyndání karty a přečtení v počítači je snad na každý třetí pokus  na kartě vidět soubor s nulovou délkou a je nejspíš poškozen protože nejde smazat. Kartu musím projet přes chkdsk a pak je opět použitelná. Nesetkal se s tím někdo?
>
> Děkuji, MG
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz 
> http://list.hw.cz/mailman/listinfo/hw-list
>

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list