Hello, First sorry for my english if you see some mistakes. I try to use this SD Card example, I work with the MCB2300 board LPC2378. I have the RL-ARM last version (MDK420.exe), but I can't build the project.
My problem is an error in the file SD_File.c at this line :
(line 516) while ((retv = finit ()) != 0) { /* Wait until the Card is ready*/
the error message is :
SD_File.c(516): error: #165: too few arguments in function call
So my problem is the finit() function, defined in rtl.h :
(line 380) extern int finit (const char *drive);
I have found some informations about this function: http://www.keil.com/support/man/docs/rlarm/rlarm_finit.htm Here I have learnt that when drive is "" like in this example, Default System drive as defined in the file File_Config.c
So I have look at my File_Config.c, and I found this Lines :
// <o>Default Drive <1=> Flash <2=> SPI Flash <3=> RAM <4=> Memory Card // This drive is used when a Drive letter is not provided (line 113) #define DEF_DRIVE 4
And now I don't understand where is the problem? If you have some idea, please help me!
That error message tells you exactly what is wrong!
"too few" means "insufficient" or "not enough"
So, look at the line where you make that function call:
while ((retv = finit ()) != 0) { /* Wait until the Card is ready*/
How many arguments (or "parameters") have you supplied to finit() ?
How many arguments does finit() require?
Clearly, if the number of arguments that you supply to finit() is less than the number of arguments required by finit() - then you will get an error message saying, "too few arguments in function call"
You fix the problem by supplying the correct number of arguments!
Ok thanks I have just Supply NULL in the finit() function. And I found how to resolve all my problems here:
http://www.keil.com/appnotes/files/apnt222.pdf