0xFF's overwriting files, using adl_fs...() commands

ADL, A&D memory, Flash objects, multi-tasking, file system, DOTA.

0xFF's overwriting files, using adl_fs...() commands

Postby DavidWC » Thu May 07, 2015 10:56 am

Data Logger:
- Wakes up
- Read burst of data UART ASYNC
- Writes to new file, file system
- Sends over GPRS
- Sleep

Issue:
- ~30KB Files are sometimes entirely overwritten in the file system, with 0xFF's
- Un-corrupt files are becoming overwritten
- Eventually, most files in the file system become overwritten with 0xFF's

Notes:
- I see no 0xFF problems on the files that are sent over GPRS, they become 0xFF some point after transmission
- Would like to append to a larger file and send this occasionally as opposed to frequently sending small files

Using the following sequence I have no problems with the files on the FTP server:

Code: Select all

//DEVICE WAKES UP AND INITIALISES UART
adl_fsSubscribe();
adl_fsEnterFS();
adl_fsMountDrive(0, ADL_FS_INTERNAL_NOR, NULL);
adl_fsChDrive(0);

//ASYNC READ UART WITH 256 BYTES UNTIL EVENT
if(first run){
   (static) filehandle = adl_fsOpen(global_filename,"w");}

if(size > 0){
   adl_fsWrite(ptr,1,size,filehandle);}

if(no more data coming through){
   adl_fsClose(filehandle);
   adl_tmrSubscribe ( FALSE, 10, 100MS, sendDataFTP )
}

//SEND THE FILE GPRS
sendDataFTP(){
   //Subscribe to GPRS
   filehandle = adl_fsOpen(global_filename,"r");
   adl_fsRead(buffer, 1, MAX_FILE_SIZE, filehandle);
   adl_fsClose(filehandle);
   //SEND FILE etc etc
}

adl_fsUnmontDrive(0);
adl_fsReleaseFS();
adl_tmrSubscribe ( FALSE, 100, 100MS, goToSleep )



When I upload the files through SiWi development environment the majority are entirely overwritten with 0xFF, but appear on my FTP server without 0xFF's.

The commands:
adl_fsUnmontDrive(0);
adl_fsReleaseFS();

seem to have no effect, the same issue remains even when I remove them entirely.

At one point I had the following code which should have failed, but it still sent the files over GPRS without issue:
Code: Select all
if(no more data coming through){
   adl_fsClose(filehandle);
   adl_tmrSubscribe ( FALSE, 10, 100MS, sendDataFTP )
   adl_fsUnmontDrive(0);
   adl_fsReleaseFS();    //Should then fail to open when opening the file for GPRS but doesn't fail
}


Finally, when I try to append to an existing file (opening in "a" mode), I have blocks of 0xFF appearing in amongst the data, in blocks of data that are exactly divisible by 4KB. But the file is not entirely overwritten.

Have I missed something out with regards to the sequence of adl_fs...() commands?
DavidWC
 
Posts: 4
Joined: Fri Sep 12, 2014 6:27 am
Has thanked: 0 time
Have thanks: 0 time

Re: 0xFF's overwriting files, using adl_fs...() commands

Postby DavidWC » Fri May 08, 2015 11:08 am

I have resolved the issue. Updating the firmware to the latest version has stopped all problems above.

I suspect the issue was either caused by:

- the adl_fs commands + old firmware
OR
- using the SiWi development environment to enter the FS manually + old firmware
DavidWC
 
Posts: 4
Joined: Fri Sep 12, 2014 6:27 am
Has thanked: 0 time
Have thanks: 0 time


Return to Operating system

Who is online

Users browsing this forum: No registered users and 3 guests