[En-Nut-Discussion] EIR: SD-Card on SPI
harald.kipp at egnite.de
Tue Jan 29 19:03:57 CET 2013
On 29.01.2013 11:29, Markus Dost wrote:
> thank you for your advices. At the moment, the SD-Card on my board is
> attached to the SSC like on the EIR. For I don't use the audio codec I
> would take the advantages of using SPI. But before I redesign my board I
> have to be shure that I can still use the Phat-filesystem.
In case you keep the MMC connected to SSC, you can strictly follow
Do not forget the hardware mod
>> If you want SPI, the optimal way is to register the SPI bus
> I noticed this document, but the section
> "At the time of this writing file system support for devices
> attached to the SPI bus controller framework is almost non-existent.
> There is one exception, the rather simple raw file system.
> You may know, that Nut/OS offers the FAT compatible PHAT file
> system, which uses MMC/SD-Cards in SPI mode. However, the related low
> level drivers implement their own SPI routines. It would be a
> benefit to re-write them for using the new SPI bus interface. Work is in
> progress to close this gap."
> confused me and additional I didn't noticed Oles SPI driver.
You are right, that needs an update.
> Just to be sure: with this driver I initialize the SD-Card with
> NutRegisterDevice(&devPhat0, 0, 0); // Phat filesystem
> NutRegisterDevice(&devSpiMmcGpio, 0, 0); // SPI driver for MMC
> _open("MMC0:/PHAT0", _O_RDWR | _O_BINARY); // mount the Card
> and the functionality for reading/writing files and directory operations
> remains the same?
That's one of the essentials of Nut/OS. You only need to adapt the
initialization to a new target. The rest is based on C standard calls.
It will even run on your PC. More likely on Linux or OS X than on
Windows PC. Unfortunately Windows doesn't support TCP stdio streams or
doesn't provide C standard routines for directory access.
But in general it is no big problem to write applications running on
AVR, ARM, Freescale etc. under Nut/OS, or on a PC under Windows, OS X or
Linux. For example, I developed the uHTTP library on MS Visual Studio
and ported it to Nut/OS later by replacing a few functions and adding
some Nut/OS specific initializations.
More information about the En-Nut-Discussion