[En-Nut-Discussion] how to use AT45DB serial Dataflash and filesysem

rutger eng1 at breematic.nl
Sat Sep 25 12:00:47 CEST 2010


  Hello,

For anybody who also just tries and does not read the api reference well :

I wrote

"There was a small problem that I have to solve later :
file reading and writing didn't work just after formatting.
I had to reboot after formatting and then skip formatting."

The solution was very simple :
Format before mounting

Using this serial flash for a webserver is also simple :
NutRegisterHttpRoot("UFLASH0:/");


kind regards,

Rutger



Op 13-9-2010 22:20, rutger schreef:
>    Hello Ole,
>
> Thanks for your very quick response.
> It works !!
> I use a AVR ATMEGA128 and tested it with the following testcode :
>
>
>       if (UFlashAttach(&devUFlash0,&flashAt45dib0,&spiBus0Avr)) {
>           puts("Attaching serial flash failed");
>       }
>       if (NutRegisterDevice(&devUFlash0, 0, 0)) {
>           puts("Mounting UFLASH0 failed");
>       } else {
>           puts("Mounting UFLASH0: OK!");
>       }
>
> /*
>       if (UFlashFormat(&devUFlash0,&flashAt45dib0,&spiBus0Avr))
>       {
>           puts("formating failed");
>       }
>       else
>       {
>           puts("formating ok !");
>       }
> */
>
>
>
>       FILE * pFile;
>       char mystring [100];
>
>
>       /*pFile = fopen("UFLASH0:my_file.txt", "w+");
>
>       if (pFile!=NULL)
>       {
>           puts ("writing file");
>           fputs ("hello nut world",pFile);
>           fclose (pFile);
>       }*/
>
>
>       pFile = fopen("UFLASH0:my_file.txt", "r");
>       if (pFile != NULL)
>       {
>           puts ("reading file");
>           fgets (mystring,100,pFile);
>           puts (mystring);
>           fclose (pFile);
>       }
>
>
> There was a small problem that I have to solve later :
> file reading and writing didn't work just after formatting.
> I had to reboot after formatting and then skip formatting.
>
>
> Thanks Ole,
>
> regards,
>
> Rutger
>
>
>
> Op 13-9-2010 11:07, Ole Reinhardt schreef:
>> Hello Rutger,
>>
>>> Can anybody provide a simple example on how to use the serial flash.
>>> In the new beta release 2.09 I have found the UFLASH filesystem but I'm
>>> not sure how to use it.
>> I just have a very simple example how to mount the filesystem. But when
>> mounted you can just use it like any other filesystem with some
>> limitations like the fact that directories are not realy implemented.
>> The mounting itself is indeed quite different from the mounting of e.g.
>> MMC devices.
>>
>>
>> The following function mounts the dataflash attached to SPI Bus 0,
>> Chipselect 0. If you want to connect the dataflash to another SPI bus or
>> chipselect change
>>
>> flashAt45dib0 ==>   flashAt45dibX for the chipselect
>> spiBus0At91   ==>   spiBusXAt91 for the SPI Bus accordingly
>>
>> int init_dataflash(void)
>> {
>>       if (UFlashAttach(&devUFlash0,&flashAt45dib0,&spiBus0At91)) {
>>           puts("Attaching serial flash failed");
>>       }
>>       if (NutRegisterDevice(&devUFlash0, 0, 0)) {
>>           puts("Mounting UFLASH0 failed");
>>       } else {
>>           puts("Mounting UFLASH0: OK!");
>>       }
>>
>>       return 0;
>> }
>>
>> In this sample I supposed you use the AT91 SPI Bus driver. Take any
>> other SPI Bus driver for your board as needed.
>>
>>
>>
>> To open a file just use the fopen call below:
>>
>> fd = fopen("UFLASH0:my_file.txt", "r+b");
>>
>>
>> A clean / empty filesystem consists of all pages in the flash cleared
>> (factory default). To "format" (clear) the flash you can use
>>
>> UFlashFormat(&devUFlash0,&flashAt45dib0,&spiBus0At91);
>>
>>
>> Hope this helps a little,
>>
>> regards,
>>
>> Ole Reinhardt
>>
>>
>>
>>
>> Geen virus gevonden in het binnenkomende-bericht.
>> Gecontroleerd door AVG - www.avg.com
>> Versie: 9.0.851 / Virusdatabase: 271.1.1/3132 - datum van uitgifte: 09/13/10 08:35:00
>>
> _______________________________________________
> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>
>
>
> Geen virus gevonden in het binnenkomende-bericht.
> Gecontroleerd door AVG - www.avg.com
> Versie: 9.0.851 / Virusdatabase: 271.1.1/3132 - datum van uitgifte: 09/13/10 08:35:00
>




More information about the En-Nut-Discussion mailing list