Page 1 of 1

problems using effs-thin

PostPosted: Thu Mar 05, 2009 6:18 am
by karpion
Hi all,
I'm experiencing some troubles using thin libraries in a Salvo application. I'm trying to work with some tasks but seems that a code line such as:

"file = f_open("CSK_TEMP.txt", "a+");"

stops the scheduler probably (I think) because it's required some time to access to SD data.
This happens switching between serial and i2c interface that however works properly (I'm able to verify this on HyperTerminal) if I comment this line.
I've tried to delay this task with some OS_Delay() but the problem still exsists. I've also tried to use binary semaphores to activate other tasks only after file-reading but I couldn't verify any improvement.
-------------------------
void Task_Access_SD (void)
{
unsigned long size2;
F_FILE *file;
char c;
OS_Delay(250);
for (;
{
OS_Delay(250);
OS_Delay(250);

OSNO_TIMEOUT);
file = f_open("CSK_TEMP.txt", "a+");

CSK_Msg1("Task_Access_SD: Opened file CSK_TEMP.TXT successfully.");
sprintf(strTmp, "Current ticks: %010lu.
", OSGetTicks());
CSK_Msg1(strTmp);

f_close(file);

OSSignalBinSem(BINSEM_SD_CARD);
}
}
--------------------------------------
Have you got any suggestion?
Thanks everybody

------------------
.k@r4ion.


Re: problems using effs-thin

PostPosted: Thu Mar 05, 2009 6:38 am
by aek
I don't understand the question / problem.

Did you expect a call to f_open() to _not_ take a long time?

Such calls can take a considerable amount of time, depending on the SD card, etc.

The only way to avoid that is to have the EFFS-THIN source code. That costs several thousand $.

So, when working with the EFFS-THIN libraries (that are part of the CubeSat Kit), this is something you have to live with ...

------------------