紧急求助~~~~SD卡的fat32文件系统读BPB数据不正常~~

[复制链接]
 楼主| li543117 发表于 2008-9-15 13:50 | 显示全部楼层 |阅读模式
我做的SD卡的fat32文件系统,普通的正常读写没有任何问题,譬如利用欧冠测试数据写入到某个扇区,然后回读比较,结果均正常,读取硬件信息,结果正常,但是读取BPB数据就不正常:512BYTE的0扇区数据,前510全为0,理论上不正常,后面两位为0x55,0xaa,结果又正常。<br /><br />我现在怀疑可能是我读取BPB扇区的位置不对,如果有哪位知道是在哪个位置读取的请指教一下~~<br /><br />下面有读取BPB数据的程序,请大虾帮忙分析分析~~~<br /><br />void&nbsp;fnSD_InitDrive(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;MMC_read_sector(0,buffers.currentsector.u8data);//在0扇区处读取BPB数据<br />&nbsp;&nbsp;&nbsp;&nbsp;buffers.SectorCurrentlyLoaded=0xFFFFFFFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />uint8_t&nbsp;MMC_read_sector(uint32_t&nbsp;addr,uint8_t&nbsp;*Buffer)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8_t&nbsp;temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32_t&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI_TransferByte(0xff);<br />&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;Write_Command_MMC(MMC_READ_BLOCK,addr&lt&lt9);<br />&nbsp;&nbsp;&nbsp;&nbsp;if(temp&nbsp;!=&nbsp;0x00)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(READ_BLOCK_ERROR);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(SPI_TransferByte(0xff)&nbsp;!=&nbsp;0xfe);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt512;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*Buffer++&nbsp;=&nbsp;SPI_TransferByte(0xff);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI_TransferByte(0xff);<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI_TransferByte(0xff);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(1);<br />}<br />
yxwsz 发表于 2008-9-16 00:12 | 显示全部楼层

re

用spi模式读取SD的FAT文件系统,还是去移植sourceforge上的efsl(embedded&nbsp;file&nbsp;system&nbsp;library)吧;<br />早就做好的了,支持fat16,&nbsp;fat32
ahong007 发表于 2008-9-16 17:56 | 显示全部楼层

请教大虾,能在汇编中调用C实现FAT32文件系统吗

我现在编写的一个主函数已经实现功能,现在想把FAT32文件系统加上去
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

52

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部