|
楼主 |
发表于 2012-8-19 18:28:45
|
显示全部楼层
是ads1.2的编译问题,我弄好了。
1.ads1.2环境编译fatfs存在bug,check_fs部分只是把语法变通一下才能有效果
我也花了好长时间才知道,你试一下吧,看看代码倒数几行和ff。c里面的格式不同,按下面的改过来- /*-----------------------------------------------------------------------*/
- /* Load a sector and check if it is an FAT Volume Boot Record */
- /*-----------------------------------------------------------------------*/
- static
- BYTE check_fs ( /* 0:FAT-VBR, 1:Valid BR but not FAT, 2:Not a BR, 3:Disk error */
- FATFS *fs, /* File system object */
- DWORD sect /* Sector# (lba) to check if it is an FAT boot record or not */
- )
- {
- DWORD temp;
- if (disk_read(fs->drv, fs->win, sect, 1) != RES_OK) /* Load boot record */
- return 3;
- if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check record signature (always placed at offset 510 even if the sector size is >512) */
- return 2;
- temp = (LD_DWORD(&fs->win[BS_FilSysType]) & 0xFFFFFF);
- if (temp == 0x544146) /* Check "FAT" string */
- return 0;
- temp = (LD_DWORD(&fs->win[BS_FilSysType32]) & 0xFFFFFF);
- if (temp == 0x544146)
- return 0;
- return 1;
- }
复制代码 |
|