EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教大神,小弟正在向NIOS上移植FATFS文件系统。移植完成后,调用f_open创建并打开一个文件,这个时候遇到“打开失败”。调试了一下,发现check_fs函数中的LD_WORD 8 g' L4 D) m& `
(&fs->win[BS_55AA])!=0xAA55判断失败,返回2。请教其中的原因。谢谢!部分代码如下:
% }9 W. M! [/ ~% a# R+ E9 T; J. ], lstatic
0 D. S, u6 @( \- U9 n# z) O& yBYTE check_fs ( /* 0:FATboor sector, 1:Valid boor sector but not FAT, 2:Not a boot sector, 3: Disk error*/ / L ~9 o: ^2 X! i! w3 _
FATFS* fs, /* File system object */ 1 i" G4 D" i. I' C
DWORD sect /* Sector# (lba) to check if it is an FAT boot record ornot */ 3 u' b2 F" @2 ?2 }
)
( ^$ c8 } ^/ A. L{
" N0 ^3 F( n& s: M: c, v) e WORD temp; . C2 k2 R0 t: Z+ G1 ^
4 G* w. C% n8 T! T6 W* W) B+ ` }' D: f
fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidatewindow */
6 r2 D2 e( A; H! y( B if (move_window(fs, sect) != FR_OK) /* Load bootrecord */ $ d) X5 d; U. L% Q' `( t4 F
return 3; : A" K2 P1 V4 ]
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check bootrecord signature (always placed at offset 510 even if the sector size is>512) */
7 W! n/ i" A0 s return 2; 3 x! _5 Z( M8 k, i5 n& R8 V* s
if ((LD_DWORD(&fs->win[BS_FilSysType])& 0xFFFFFF) == 0x544146) /* Check "FAT" string */ & P. i z. f( d7 y( o2 Y
return 0; 4 n) P0 w0 o& K
if ((LD_DWORD(&fs->win[BS_FilSysType32]) &0xFFFFFF) == 0x544146) /* Check "FAT" string */
. _' u3 b0 |! q return 0;
3 {0 V5 T7 t- F4 }+ |# o( C1 J+ `! v- X; h' P: M) d- Q7 F
return 1; }
5 h% {+ L% P$ f" N( k/ l |