(4)修改disk_read函數(shù)如下所示。
DRESULT disk_read( BYTE pdrv, BYTE *buff, LBA_t sector, UINT count )
{
int result;
switch( pdrv )
{
//SD卡
case SD_CARD :
result = SD_ReadDisk( buff, sector, count ) ;
//讀出錯(cuò)
while( result )
{
SD_Init() ; //重新初始化SD卡
result = SD_ReadDisk( buff, sector, count ) ;
}
break;
//外部FLASH讀寫
case EX_FLASH :
for( ; count>0; count-- )
{
W25QXX_Read( buff, sector*512, 512 ) ;
sector++;
buff+=512;
}
break;
case DEV_USB : break;
}
if( result )
return RES_ERROR ;
else
return RES_OK ;
}
(5)修改disk_write函數(shù)如下所示。
#if FF_FS_READONLY == 0
DRESULT disk_write( BYTE pdrv, const BYTE *buff, LBA_t sector, UINT count )
{
int result;
switch ( pdrv )
{
//SD卡
case SD_CARD :
result = SD_WriteDisk( ( u8* )buff, sector, count ) ;
//寫出錯(cuò)
while( result )
{
SD_Init() ; //重新初始化SD卡
result = SD_WriteDisk( ( u8* )buff, sector, count ) ;
}
break ;
//外部FLASH
case EX_FLASH :
for( ; count>0; count-- )
{
W25QXX_Write( ( u8* )buff, sector*512, 512 ) ;
sector ++ ;
buff += 512 ;
}
break ;
//其他
case DEV_USB :
break ;
}
if( result )
return RES_ERROR ;
else
return RES_OK ;
}
#endif
(6)修改disk_ioctl函數(shù)如下所示。
DRESULT disk_ioctl( BYTE pdrv, BYTE cmd, void *buff )
{
DRESULT res;
//SD卡
if( pdrv==SD_CARD )
{
switch( cmd )
{
case CTRL_SYNC :
res = RES_OK ;
break ;
case GET_SECTOR_SIZE :
*( DWORD* )buff = 512 ;
res = RES_OK;
break ;
case GET_BLOCK_SIZE :
*( WORD* )buff = SDCardInfo.CardBlockSize ;
res = RES_OK ;
break ;
case GET_SECTOR_COUNT :
*( DWORD* )buff = SDCardInfo.CardCapacity/512 ;
res = RES_OK ;
break;
default :
res = RES_PARERR ;
break ;
}
}
//外部FLASH
else if( pdrv==EX_FLASH )
{
switch( cmd )
{
case CTRL_SYNC :
res = RES_OK ;
break ;
case GET_SECTOR_SIZE :
*( WORD* )buff = 512 ;
res = RES_OK ;
break ;
case GET_BLOCK_SIZE :
*( WORD* )buff = 8 ;
res = RES_OK ;
break ;
case GET_SECTOR_COUNT :
*( DWORD* )buff = 2048*12 ;
res = RES_OK ;
break ;
default :
res = RES_PARERR ;
break ;
}
}
else
res = RES_ERROR ; //其他的不支持
return res;
}
(7)由于新版的文件系統(tǒng)去掉了獲取時(shí)間函數(shù),所以這一個(gè)函數(shù)需要我們自己添加。
//獲取時(shí)間
DWORD get_fattime()
{
return 0 ;
}
-
單片機(jī)
+關(guān)注
關(guān)注
6063文章
44925瀏覽量
647095 -
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3667瀏覽量
130910 -
FATFS
+關(guān)注
關(guān)注
0文章
44瀏覽量
18756
發(fā)布評(píng)論請(qǐng)先 登錄
基于STM32完成FATFS文件系統(tǒng)移植與運(yùn)用

FatFS文件系統(tǒng)在STM32F4上的移植和應(yīng)用

STM32CubeMx入門教程(10):Fatfs文件系統(tǒng)的應(yīng)用

FATFS文件系統(tǒng)移植
STM32的FATFS文件系統(tǒng)移植筆記
FatFs文件系統(tǒng)的原理是什么?如何對(duì)FATFS進(jìn)行移植?
MSP430、STM32、8051單片機(jī)fatfs 文件系統(tǒng)移植 W25Q128

Fatfs(文件系統(tǒng)的移植)

【文件系統(tǒng)】FatFs文件系統(tǒng)在嵌入式芯片LPC18XX上的移植

手把手教你在flash上移植fatfs文件系統(tǒng)(含實(shí)時(shí)操作系統(tǒng))

STM32入門學(xué)習(xí)筆記之文件系統(tǒng)FatFs的移植1

STM32入門學(xué)習(xí)筆記之文件系統(tǒng)FatFs的移植3

STM32入門學(xué)習(xí)筆記之文件系統(tǒng)FatFs的移植4
文件系統(tǒng)FatFs的移植

評(píng)論