Hi, can any one plz help me to solve fatfs read problem?
I am using Cortex-M3 luminary lm3s6965 controller. My application is such that I am writing 100-150k data(1024 bytes at a time; i.e. using for loop), in single .csv file, in 4GB micro SD card using fat16. and it is working perferctly.
Bt when I am trying to read data from sd card(1024 bytes at a time), then it will read data upto 65535 bytes and then it gets hang.
So can i read complete 100-150k data from sd card.
Could any body help? Thanks in advance...
Taking a wild *** guess on what happening it feels a little like the implementation of the absolute sector value is only 16 bit eg 0 - 65535
On the SD card is the data correct e.g. has the 16 bit value rolled over and restarted writing at start of the file.
I am aware on certain examples given by ST the SD card part didnt do multi sector read/writes well because they used a 16 bit value for the Absolute sector counter rather than a 32 bit.
Never worked with a luminary device so haven't seen the code
oops didnt read closely enough your reading.
I use fatfs and can read 300K plus no issues
Check your code that deals with working out the absolute sector to read from on the SD card to and make sure its not adding a 16 bit offset to a 32 bit value.
Would check/instrument the DISKIO.C abstraction code, make sure there weren't any issues there with memory regions, DMA transfer limits, etc. And evaluate if larger transfers passed down needed to be decomposed further, or where the issue is coming from.
My guess would be it's not FatFs, so focus on validating your SD card code, perhaps externally from FatFs.
ST used 32-bit BYTE OFFSET addressing, which has obvious limits when dealing with 4GB+ BLOCK addressed devices.
View all questions in Keil forum