91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 62KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-19
  • 語言: 其他
  • 標簽: SD卡程序??

資源簡介

#include #include "FAT16.h" #include "sd.h" //------------------------------------------------------------------------ #define SEC_Size 512 #define MBR_Sector 0 //絕對地址 #define FAT_Sector 0 //邏輯地址 //------------------------------------------------------------------------- uint8_t BUFFER[SEC_Size]; uint8_t PB_RelativeSector; uint16_t BPB_BytesPerSec; uint8_t BPB_SecPerClus; uint16_t BPB_RsvdSecCnt; uint8_t BPB_NumFATs; uint16_t BPB_RootEntCnt; uint16_t BPB_TotSec16;

資源截圖

代碼片段和文件信息

//-------------------------------------------------------------------------
/*FAT16.C?-?LINO?TECH
??Designed?by?Carter
??2008-03-19
*/

#include?

#include “FAT16.h“
#include “sd.h“
//------------------------------------------------------------------------
#define SEC_Size 512
#define MBR_Sector 0 //絕對地址
#define FAT_Sector 0 //邏輯地址
//-------------------------------------------------------------------------
uint8_t BUFFER[SEC_Size];
uint8_t PB_RelativeSector;
uint16_t BPB_BytesPerSec;
uint8_t BPB_SecPerClus;
uint16_t BPB_RsvdSecCnt;
uint8_t BPB_NumFATs;
uint16_t BPB_RootEntCnt;
uint16_t BPB_TotSec16;
uint16_t BPB_FATSz16; //FAT占用的sectors
uint32_t BPB_HiddSec;
//-------------------------------------------------------------------------
uint8_t?ReadSector(uint32_t?sector?uint8_t*?buffer?)
{
????int8?stat;
????
????hwInterface?sdNow;??
????sdNow.sectorCount?=?1;
????stat?=?sd_readSector(&sdNowsectorbuffer512);
????
????if(stat==0)
????{
????????return?SD_SUCC;
????}
????else
????{
????????return?SD_FAIL;
????};
}
uint8_t?WriteSector(uint32_t?sector?uint8_t*?buffer)
{
????hwInterface?sdNow;??
????sdNow.sectorCount?=?1;
????sd_writeSector(&sdNowsectorbuffer);
????
????return?0;
}

uint8_t?ReadBlock(uint32_t?LBA){ //絕對地址讀一個扇區
if(ReadSector(LBABUFFER)!=0)return?SD_FAIL;
return?SD_SUCC;
}
//-------------------------------------------------------------------------
uint8_t?WriteBlock(uint32_t?LBA){ //絕對地址寫一個扇區
if(WriteSector(LBABUFFER)!=0)return?SD_FAIL;
return?SD_SUCC;
}
//-------------------------------------------------------------------------
uint8_t?ReadFatBlock(uint32_t?Add){ //邏輯地址讀一個扇區
// return?ReadBlock(Add+PB_RelativeSector);??//for?HardDisk
?? return?ReadBlock(Add+BPB_HiddSec);
}
//-------------------------------------------------------------------------
uint8_t?WriteFatBlock(uint32_t?Add){ //邏輯地址寫一個扇區
// return?WriteBlock(Add+PB_RelativeSector);??//for?HardDisk
????return?WriteBlock(Add+BPB_HiddSec);
}
//-------------------------------------------------------------------------
void?CopyBytes(uint8_t?*psuint8_t?*pduint16_t?size){ //內存拷貝
for(;size;size--)*pd++=*ps++;
}
//-------------------------------------------------------------------------
uint8_t?IsEqual(uint8_t?*pauint8_t?*pbuint8_t?size){ //內存比較
for(;size;size--)if(*pa++!=*pb++)return?0;
return?1;
}
//-------------------------------------------------------------------------
void?EmptyBytes(uint8_t?*pduint16_t?size){ //內存清空
for(;size;size--)*pd++?=0;
}
//-------------------------------------------------------------------------
uint8_t?ReadMBR(void){ //讀取MBR數據結構
uint8_t?ok;
FAT_MBR?*?MBR=(FAT_MBR*)BUFFER;
ok=ReadBlock(MBR_Sector);
if(ok==SD_FAIL)return?SD_FAIL;
if(MBR->MBR_Signature!=0xAA55)return?SD_FAIL; //讀有效標志

//獲取參數
PB_RelativeSector=MBR->MBR_pb[0].PB_RelativeSector;//讀邏輯地址與絕對地址的偏移
return?SD_SUCC;
}

評論

共有 條評論