2010-04-28 01:10 PM
FAT file system on NAND flash
2011-05-17 04:49 AM
> It suggests that OS doesn't recognize unmount of the drive.
> How did you unmount the media from OS?
> To do it on the device side,
> Set RMB (removable) bit on the INQUIRY response.
> To notify media unmount to OS, the MSC device fails SCSI command from OS, except for INQUIRY. Usually OS puts TEST UNIT READY repeatedly. Fail on this command.
> OS may put many other SCSI commands while in unmount. Of course, device fails on these commands, too, while in unmount.
> - READ FORMAT CAPACITY
> - READ CAPACITY(10)
> - READ(10)
> - MODE SENSE(6)
> - PREVENT ALLOW MEDIUM REMOVAL
> etc.
> After the device fails in above commands, OS may put REQUEST SENSE. Return ''NOT READY - MEDIUM NOT PRESENT'' response, successfully.
> The point is that you have to wait for SCSI command (usually TEST UNIT READY) to fail, so that OS should know unmount certainly.
> There is another way which uses soft detach/attach of the device. But I don't recommend it, because Windows often fails on re-mount.
> Tsuneo
I tried to remove SD card to from the CORTEX board and put in the PC through SD card reader. I wrote some files on SD, and CORRETLY unmount the SD card by ''Safely Remove Hardware'' in Windows. Then I put the SD card to the CORTEX board, mount it with FatFs file system. I was able to read the files. Then I wrote some files with FatFs, unmount CORRECTLY the SD card with FatFs (according to the FatFs documentation). Then I removed the SD card from CORTEX board, connect to the PC through SD card readers, but the files that I wrote with CORTEX wasn't there. Do you really think that the problem is in unmounting the device? Afi2011-05-17 04:49 AM
2011-05-17 04:49 AM
Good news, I have done it.
We are missing something (still don't know what), but in your project, if you call your NAND_FAT function after Power off() in MassStorageStart function instead of Demo_Init function , it will probably work. There is something that MassStorage inits that is necessary to Write in the NANDFLASH Regards.2011-05-17 04:49 AM
> Good news, I have done it.
> We are missing something (still don't know what), but in your project, if you call your NAND_FAT function after Power off() in MassStorageStart function instead of Demo_Init function , it will probably work.
> There is something that MassStorage inits that is necessary to Write in the NANDFLASH Hi Juan, YES, It works in this case, You are the one ;) Thanks. I am going to find out what from Mass_Storage_Start is required in order to be able to write to the NAND. Afi2011-05-17 04:49 AM
> Good news, I have done it.
> We are missing something (still don't know what), but in your project, if you call your NAND_FAT function after Power off() in MassStorageStart function instead of Demo_Init function , it will probably work.
> There is something that MassStorage inits that is necessary to Write in the NANDFLASH Hi Afinko and Juan, YES, it works, but only if you plug USB cable. I did the same, but without the usb cable, and d I am finding out what from Mass_Storage_Start is required in order to be able to write to the NAND, and I think the problem is on the format of the file system. I'm using windows, and it format on FAT 32, but when I format with FatFS using f_mkfs, the format is on FAT16.Have you found what it's necessary to write in the Nand Flash correctly?
Thanks David2011-05-17 04:49 AM
2011-05-17 04:49 AM
> I am finding out what from Mass_Storage_Start is required in order to be able to write to the NAND, and I think the problem is on the format of the file system.
> I'm using windows, and it format on FAT 32, but when I format with FatFS using f_mkfs, the format is on FAT16.
> Have you found what it's necessary to write in the Nand Flash correctly?
I spent several ours with this, unfortunately I didn't found what we are missing. It seems unstable even when the NAND_FAT function is called after Power off() in MassStorageStart function. I do not have more time for resolving this issue. I do not need the NAND anymore.But I am very angry, that none from ST, who wrote the MASS_STORAGE functions, wont help us with this issue. I am pretty sure, that we are missing some stupid triviality. Afi