We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Good Morning,
currently I am working on a mass-storage-solution based on LPC2468 with external flash. I modified the USBMEM-Examples function MSC_MemoryRead, MSC_MemoryWrite, MSC_MemoryVerify and MSC_MemorySize, MSC_Blockcount. The MSD is supposed to be used with a FAT16 filesystem (no MBR, just PBR).
After connecting the device to a PC, the PBR in sector 0 is read, but the following sectors aren't. Using WinHEX i could verify, that even modifying sector 1 (which is hidden, FAT1 begins at sector 32) isn't recognized by the MSD.
Here are the modifications to MSC_ReadMemory function.
[...] NANDFLASHPageRead((Offset &(~(0x1FF)))+FAT_offset_pages<<9 , &Buffer[0], 512); // read corresponding page if ((Offset + n) > MSC_MemorySize) { n = MSC_MemorySize - Offset; BulkStage = MSC_BS_DATA_IN_LAST_STALL; } USB_WriteEP(MSC_EP_IN, &Buffer[Offset%512], n); [...]
I can't figure out, whats wrong. The USBMEM-Example works just fine and I haven't changed anything regarding the MSC except for the functions I've mentioned.
Thank you for reading and hopefully trying to help me.
Regards Frank
Hello Tsuneo
finally I made it working. I forgot brackets in the makro FAT_offset_pages. This totally screwed up the addressing.
For now I can read the device using Disk Probe and WinHex, what doesn't work is opening a testfile via windows explorer. I guess, that windows needs correct working write-functions for opening a file.
Thanks a lot! Frank