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.
Hi,
I'm trying to develop an usb mass storage memory key by combining two examples : one from NXP (keil_usbmem) and one from embedded artists (sdcard_poll).
Each examples taken separately works well. However if I try to combine them, the usb memory example do not work anymore.
In function MSC_MemoryRead I do the following :
mci_read_blocks(g_mcidev, BlockDevBuff, Offset, Offset); USB_WriteEP(MSC_EP_IN, &Memory[Offset], n);
So I perform a read on my MMC card (that is well acquired with mci_open and so on), but I discard the data from my MMC and I put the RAM image content instead (just like the original keil_usbmem code).
If I remove the mci_read_blocks function everything works again.
In order to discard an USB timeout problem,I tried also to put a (very) long blocking timer instead of mci_read_blocks. Even with this long timer the code works well.
So I think that something is incompatible in the MCI and USB codes. Maybe, a timer or a memory region, is mistakenly shared between those codes. I search for such ''bug'' in the code but I don't succeed.
Do you have any idea ?
Best regards
I finally found out the problems.
1) There was a mistake in my code (a buffer too small for a transfert).
2) The evaluation version of µVision do not support well the LPC3131, so I had to modify memories areas.
However there is still some problems :
1) the resulting USB key do not work on linux (ehci_hcd kernel module must be remove)
2) the transactions over the mci interface are slow (but maybe this is due to the SD card I use)