資源簡介
自己寫的SD卡的spi模式實現(xiàn)和FAT16文件系統(tǒng)的實現(xiàn),注釋挺詳細(xì)的。其中SD卡的讀寫操作函數(shù)是基于nios ii的,所以我特地說明了怎么移植我的FAT16到其他單片機(jī)上
代碼片段和文件信息
/*
?*?Fat16.c
?*
?*??Created?on:?2012-2-24
?*??????Author:?Ming
?*/
#include“Fat16.h“
FAT_BPB?Bpb;
FAT_OFFSET?Offset;
//--------------------------------------------內(nèi)部函數(shù)----------------------------------------------------------------//
//-----------------------------------------------------------//
//Function?Name :?ToUper
//description :?將小寫字母轉(zhuǎn)為大寫字母
//Input :?alt_u8?*str:字符串指針
//Output :?None
//Return :?None
//-----------------------------------------------------------//
void?ToUper(alt_u8?*str)
{
do{
if(*str?>=?‘a(chǎn)‘?&&?*str?<=?‘z‘)?*str?=?*str?-?‘a(chǎn)‘?+?‘A‘;
}while(*str++);
}
//-----------------------------------------------------------//
//Function?Name :?MemSet
//description :?對動態(tài)申請的堆區(qū)進(jìn)行置零
//Input :?alt_u8?*pMem?:?指向申請堆區(qū)的指針
// ??alt_u16?Size?:?申請堆區(qū)的大小
//Output :?None
//Return :?None
//-----------------------------------------------------------//
void?MemSet(alt_u8?*pMemalt_u16?Size)
{
for(;Size?>?0;Size--)?*pMem++?=?0;
}
//-----------------------------------------------------------//
//Function?Name :?MemCopy
//description :?按字節(jié)進(jìn)行一塊區(qū)域的拷貝
//Input :?alt_u8?*pSourse?:?要拷貝區(qū)域的指針
// ??alt_u16?Size?:?拷貝字節(jié)數(shù)
//Output :?at_u8?*pDest?:?拷貝后存放區(qū)域的指針
//Return :?None
//-----------------------------------------------------------//
void?MemCopy(alt_u8?*pDestalt_u8?*pSoursealt_u16?Size)
{
for(;Size?>?0;Size--)?*pDest++?=?*pSourse++;
}
//-----------------------------------------------------------//
//Function?Name :?InitDIR
//description :?給DIR初始化賦初值
//Input :?DIR?*pDir:DIR指針
//Output :?None
//Return :?None
//-----------------------------------------------------------//
void?InitDIR(DIR?*pDir)
{
alt_u8?i*p?=?(alt_u8*)pDir;
for(i?=?0;i?32;i++){
*p++?=?0x00;
}
}
//-----------------------------------------------------------//
//Function?Name :?FileNameConvert
//description :?將字符串文件名轉(zhuǎn)換成8.3格式文件名
//Input :?char?*pFileName?:?字符串文件名指針
//Output :?FILE_NAME?*pFile_Name?:?8.3格式文件名指針
//Return :?0:成功
// ??1:非法文件名
//-----------------------------------------------------------//
alt_u8?FileNameConvert(alt_u8?*pFileNameFILE_NAME?*pFile_Name)
{
alt_u8?count?=?0*p?=?pFileName;
ToUper(p); //文件名轉(zhuǎn)為大寫
do{
if(*p?==?(alt_u8)‘.‘){
if(count?<=?8){ ??????????? //文件名長度小于等于8
MemCopy(pFile_Name->NamepFileNamecount);
for(;count?8;count++)?pFile_Name->Name[count]?=?‘?‘;
MemCopy(pFile_Name->Typep?+?13);
return?TRUE;
}
else{ //文件名大于8
MemCopy(pFile_Name->Name(alt_u8*)pFileName6);
pFile_Name->Name[6]?=?‘~‘;
pFile_Name->Name[7]?=?‘1‘;
MemCopy(pFile_Name->Typep?+?13);
return?TRUE;
}
}
count++;
}while(*p++?!=?‘?‘);
return?FALSE;
}
//-----------------------------------------------------------//
//Function?Name :?IsEqual
//description :?判斷兩個數(shù)據(jù)串是否相等
//Input :?alt_u8?*pDataA?:?數(shù)據(jù)串A
// ??alt_u8?*pDataB?:?數(shù)據(jù)串B
// ??alt_u8?Size?:?數(shù)據(jù)串長度
//Output :?None
//Return :?0:相等
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???23691756??2012-04-02?21:02??SD_spi+FAT16\SD_spi+FAT16工程.rar
?????文件???????3111??2012-02-10?10:11??SD_spi+FAT16\代碼\FAT16\alt_types.h
?????文件??????26496??2012-04-02?21:50??SD_spi+FAT16\代碼\FAT16\Fat16.c
?????文件???????4679??2012-04-02?21:49??SD_spi+FAT16\代碼\FAT16\Fat16.h
?????文件???????1507??2012-04-02?19:34??SD_spi+FAT16\代碼\FAT16\SD\SD_spi.c
?????文件???????1249??2012-04-02?17:31??SD_spi+FAT16\代碼\FAT16\SD\SD_spi.h
?????文件???????1959??2012-04-02?21:54??SD_spi+FAT16\代碼\FAT16\SD_spi_main.c
?????文件????????334??2012-04-02?21:38??SD_spi+FAT16\代碼\FAT16\代碼使用說明.txt
?????文件???????9231??2012-04-02?17:31??SD_spi+FAT16\代碼\SD_spi_nios\SD_spi_Solution.c
?????文件???????1735??2012-04-02?17:31??SD_spi+FAT16\代碼\SD_spi_nios\SD_spi_Solution.h
?????文件????????713??2012-04-02?21:34??SD_spi+FAT16\代碼\代碼使用說明.txt
?????文件????????162??2012-04-02?21:32??SD_spi+FAT16\使用說明.txt
?????目錄??????????0??2012-04-02?21:26??SD_spi+FAT16\代碼\FAT16\SD
?????目錄??????????0??2012-04-02?21:35??SD_spi+FAT16\代碼\FAT16
?????目錄??????????0??2012-04-02?21:08??SD_spi+FAT16\代碼\SD_spi_nios
?????目錄??????????0??2012-04-02?22:01??SD_spi+FAT16\代碼
?????目錄??????????0??2012-04-02?21:28??SD_spi+FAT16
-----------?---------??----------?-----??----
?????????????23742932????????????????????17
評論
共有 條評論