MFS nandflash corruption?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MFS nandflash corruption?

601 Views
arnogir
Senior Contributor II

Hello

I'm  working with a K701M with  external Flash (like tower K70) with MQX 4.1

I install a nandflash system like bellow.

In my system flash, I have many files.

But after test, it seems if I modify the size of one file, other file(s) will be corrupted.

Like if when I add data in a file, place in Nandflash overpass the current Memory block, then take the following block.

But the following block is already busy by other file, then data are overwritten.

I think the MFS managed all this but it is the feel I have.

Have I forget something in my code?:

----------------- Init phase --------------------- MQX_FILE_PTR nandFlashFilePtr; MQX_FILE_PTR FileHandle;

_io_nandflash_wl_install(&_bsp_nandflash_wl_init, "nandflash_wl:") nandFlashFilePtr = fopen("nandflash_wl:", NANDWL_OPEN_NORMAL); _io_mfs_install(nandFlashFilePtr , "a:", (_file_size)0);

FileHandle = fopen("a:", NULL);

ErrorCode = ferror (FileHandle ); if ((ErrorCode != MFS_NO_ERROR) && (ErrorCode != MFS_NOT_A_DOS_DISK)) {    printf("Error opening filesystem: %s\n", MFS_Error_text((uint32_t)ErrorCode));    return(MQX_ERROR); }

printf("\nNAND flash was installed.\n");

----------------- life phase to read or write data in a file--------------------- pointer FilePtr;

FilePtr = fopen("a:\\MyFile.bin", "r+"); fseek(FilePtr , MyAddress);

Write(FilePtr , DataPtr, DataLength); or Read(FilePtr , DataPtr, DataLength);

fclose(FilePtr);

Thank you

0 Kudos
1 Reply

251 Views
danielchen
NXP TechSupport
NXP TechSupport

Hi Arnaud:

I suggest you try the latest MQX version:   MQX 4.2.0,  together with the patch file, mqx_4.2.0.2. This version fixed some MFS bugs.

Please refer to the MQX 4.2.0 and MQX4.2.0.2 release notes for more details

Regards

Daniel

0 Kudos