Indeed, funny :) I really should have encountered this problem in any block (1KB = 2 * 512 sectors) reading... Pretty weird.
Cheers, Seb 2011/5/2 mattschinkel <[email protected]> > Thanks Seb, hopefully this will fix some issues. It's funny how I > never had an issue! > > I'll have to check the 'put proc as well. > > Matt. > > On May 2, 11:47 am, Sebastien Lelong <[email protected]> > wrote: > > Just a follow-up on this. > > > > This is an actual *issue* IMHO, and the reason why I've never been able > to > > read beyond some address! If I modify the function so CRC bytes are > actually > > read when reaching end of sector, it works ! > > > > function sd_data_byte'get() return byte is > > var byte x, data_byte > > > > if sd_byte_count == 0 then -- beginning of sector read > > > > while spi_master != 0xFE loop -- wait till data is ready to > read > > end loop > > end if > > > > data_byte = spi_master -- get data byte > > > > sd_byte_count = sd_byte_count + 1 -- increment byte_count > > if sd_byte_count == 512 then -- end of sector read > > sd_byte_count = 0 > > sd_sector_count = sd_sector_count + 1 -- increment sector number > > x = spi_master -- get junk crc data, crc is > > disabled > > x = spi_master -- get junk crc data, crc is > > disabled > > end if > > > > return data_byte > > end function > > > > Matt, can you confirm there's a trouble here ? > > > > Cheers, > > Seb > > > > 2011/5/2 Sebastien Lelong <[email protected]> > > > > > > > > > Hi Matt, > > > > > BTW, I found some potential issue, or at least waste of code in > sd_card.jal > > > lib: > > > > > Here's the guilty function: > > > > > --- > > > function sd_data_byte'get() return byte is > > > var byte x, data_byte > > > > > if sd_byte_count == 0 then -- beginning of sector read > > > while spi_master != 0xFE loop -- wait till data is ready to > read > > > end loop > > > end if > > > > > data_byte = spi_master -- get data byte > > > > > if sd_byte_count == 512 then -- end of sector read > > > sd_sector_count = sd_sector_count + 1 -- increment sector number > > > x = spi_master -- get junk crc data, crc is > > > disabled > > > x = spi_master -- get junk crc data, crc is > > > disabled > > > end if > > > > > sd_byte_count = sd_byte_count + 1 -- increment byte_count > > > if sd_byte_count == 512 then > > > sd_byte_count = 0 > > > end if > > > > > return data_byte > > > end function > > > --- > > > > > When sd_byte_count = 511: > > > - enter the function > > > - you read data from spi > > > - sd_byte_count is incremented, now is 512 > > > - since it's 512, it then sets to 0 (last "if") > > > > > As a consequence: > > > > > if sd_byte_count == 512 then -- end of sector read > > > sd_sector_count = sd_sector_count + 1 -- increment sector number > > > x = spi_master -- get junk crc data, crc is > > > disabled > > > x = spi_master -- get junk crc data, crc is > > > disabled > > > end if > > > > > nerver gets executed. > > > > > Am I right ? > > > > > Cheers, > > > Seb > > > > > 2011/5/2 Sebastien Lelong <[email protected]> > > > > >> Hi Matt, > > > > >> Thanks for your effort, but this is still the same, fat32 get stuck > within > > >> init procedure. I guess this is due to my fat32 partition, something > is > > >> wrong with it. Included is an partial hexdump of my partition, showing > > >> content but only when changing. Format is: > > > > >> address b1 b2 b3 b4 b5 b6 b7 b8 b9 b0 b1 b2 b3 b4 b5 b6 |ascii > ascii > > >> asci| > > > > >> (b0 is b10, then b1 is b11, etc...) > > > > >> If content didn't change, you'll get "*" > > > > >> If you have time (and only if), you might be able to what's going on > by > > >> looking at addresses and content in order to see if data is wrong or > not. > > >> Careful: there may be data residues from previous experiments (but you > > >> should be able to read important sectors in fat32) > > > > >> TIA > > >> Cheers, > > >> Seb > > > > >> 2011/5/2 mattschinkel <[email protected]> > > > > >>> Seb, I finally found time to fix the FAT32_SMALL cluster size issue. > > >>> Give it a try! > > > > >>> Matt. > > > > -- > > Sébastien Lelonghttp://www.sirloon.nethttp://sirbot.org > > -- You received this message because you are subscribed to the Google Groups "jallib" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/jallib?hl=en.
