📄 fat32.i
字号:
UINT8 Reserved1 : 7; UINT8 Reserved2[2]; union _START_STOP_FLAGS { struct { UINT8 Start : 1; UINT8 LoadEject : 1; UINT8 Reserved3 : 2; UINT8 PowerConditions: 4; } bits0; struct { UINT8 MediumState : 2; UINT8 Reserved3 : 2; UINT8 PowerConditions: 4; } bits1; } Flags; UINT8 Control; } START_STOP_RBC, *pSTART_STOP_RBC; typedef struct _SYNCHRONIZE_CACHE_RBC { UINT8 OperationCode; UINT8 Reserved[8]; UINT8 Control; } SYNCHRONIZE_CACHE_RBC, *pSYNCHRONIZE_CACHE_RBC; typedef struct _WRITE_RBC { UINT8 OperationCode; UINT8 VendorSpecific; union{ struct { UINT8 LBA_3; UINT8 LBA_2; UINT8 LBA_1; UINT8 LBA_0; } LBA_W8 ; UINT32 LBA_W32; } LBA; UINT8 Reserved2; UINT16 XferLength; UINT8 Control; } WRITE_RBC, *pWRITE_RBC; typedef struct _VERIFY_RBC { UINT8 OperationCode; UINT8 Reserved0; UINT8 LBA_3; UINT8 LBA_2; UINT8 LBA_1; UINT8 LBA_0; UINT8 Reserved1; UINT8 VerifyLength_1; UINT8 VerifyLength_0; UINT8 Control; } VERIFY_RBC, *pVERIFY_RBC; typedef struct _INQUIRY_SPC { UINT8 OperationCode; UINT8 EnableVPD:1 ; UINT8 CmdSupportData:1 ; UINT8 Reserved0:6 ; UINT8 PageCode; UINT8 Reserved1; UINT8 AllocationLen; UINT8 Control; } INQUIRY_SPC, *pINQUIRY_SPC; typedef struct _MODE_SELECT_SPC { UINT8 OperationCode; UINT8 SavePage : 1 ; UINT8 Reseved0 : 3 ; UINT8 PageFormat : 1 ; UINT8 Reserved1 : 3 ; UINT8 Reserved2[2]; UINT8 ParameterLen; UINT8 Control; } MODE_SELECT_SPC, *pMODE_SELECT_SPC; typedef struct _MBR_BLOCK { UINT8 Res[454]; unsigned long StartSector; unsigned long TotalSector; UINT8 Res1[50]; } MBR_BLOCK,*pMBR_BLOCK; typedef struct _BPB_BLOCK { UINT8 BS_jmpBoo[3]; UINT8 BS_OEMName[8]; UINT16 BPB_BytesPerSec; UINT8 BPB_SecPerClus; UINT16 BPB_RsvdSecCnt; UINT8 BPB_NumFATs; UINT16 BPB_RootEntCnt; UINT16 BPB_TotSec16; UINT8 BPB_Media; UINT16 BPB_FATSz16; UINT16 BPB_SecPerTrk; UINT16 BPB_NumHeads; unsigned long BPB_HiddSec; unsigned long BPB_TotSec32; UINT8 BS_DrvNum; UINT8 BS_Reserved1; UINT8 BS_BootSig; UINT8 BS_VolID[4]; UINT8 BS_VolLab[11]; UINT8 BS_FilSysType[8]; UINT8 ExecutableCode[448]; UINT8 Marker[2]; } BPB_BLOCK,*pBPB_BLOCK; typedef struct _BPB_BLOCK32 { UINT8 BS_jmpBoo[3]; UINT8 BS_OEMName[8]; UINT16 BPB_BytesPerSec; UINT8 BPB_SecPerClus; UINT16 BPB_RsvdSecCnt; UINT8 BPB_NumFATs; UINT16 BPB_RootEntCnt; UINT16 BPB_TotSec16; UINT8 BPB_Media; UINT16 BPB_FATSz16; UINT16 BPB_SecPerTrk; UINT16 BPB_NumHeads; unsigned long BPB_HiddSec; unsigned long BPB_TotSec32; UINT32 BPB_FATSz32; UINT16 BPB_ExtFlags; UINT16 BPB_FSVer; UINT32 BPB_RootClus; UINT16 BPB_FSInfo; UINT16 BPB_BkBootSec; UINT8 BPB_Reserved[12]; UINT8 BS_DrvNum; UINT8 BS_Reserved1; UINT8 BS_BootSig; UINT32 BS_VolID; UINT8 BS_VolLab[11]; UINT8 BS_FilSysType[8]; } BPB_BLOCK32,*pBPB_BLOCK32; typedef struct _SYS_INFO_BLOCK{ unsigned long StartSector; unsigned long TotalSector; UINT16 BPB_BytesPerSec; UINT8 BPB_SecPerClus; UINT8 BPB_NumFATs; UINT16 BPB_RootEntCnt; UINT16 BPB_TotSec16; UINT8 BPB_Media; UINT16 BPB_FATSz16; UINT32 BPB_FATSz32; UINT16 BPB_SecPerTrk; UINT16 BPB_NumHeads; unsigned long BPB_HiddSec; unsigned long BPB_TotSec32; UINT8 BS_DrvNum; UINT8 BS_BootSig; UINT8 BS_VolID[4]; UINT8 BS_VolLab[11]; UINT8 BS_FilSysType[8]; unsigned long FatStartSector; unsigned long RootStartSector; unsigned long FirstDataSector; unsigned long TotCluster; unsigned char bFatType; } SYS_INFO_BLOCK,*pSYS_INFO_BLOCK; typedef struct _FILE_INFO{ unsigned char bFileOpen; unsigned int StartCluster; unsigned long LengthInByte; unsigned int ClusterPointer; unsigned long SectorPointer; unsigned int OffsetofSector; unsigned char SectorofCluster; unsigned long pointer; } FILE_INFO, *pFILE_INFO; typedef struct _DIR_INFO{ unsigned char name[8]; unsigned char extension[3]; unsigned char attribute; unsigned char Reserved[10]; unsigned int lastUpdateDate; unsigned int lastUpdateTime; unsigned int startCluster; unsigned long length; } DIR_INFO, *pDIR_INFO; typedef struct _MODE_SENSE_SPC { UINT8 OperationCode; UINT8 Reseved0 : 3 ; UINT8 DisableBlockDescriptor : 1 ; UINT8 Reserved0 : 4 ; UINT8 PageCode:6 ; UINT8 PageControl : 2 ; UINT8 Reserved1; UINT8 ParameterLen; UINT8 Control; } MODE_SENSE_SPC, *pMODE_SENSE_SPC; typedef struct _MEDIA_REMOVAL_SPC { UINT8 OperationCode; UINT8 Reserved0[3]; UINT8 Prevent; } MEDIA_REMOVAL_SPC, *pMEDIA_REMOVAL_SPC; typedef struct _REQUEST_SENSE_SPC { UINT8 OperationCode; UINT8 Reserved[3]; UINT8 AllocationLen; UINT8 Control; } REQUEST_SENSE_SPC, *pREQUEST_SENSE_SPC; typedef struct _TEST_UNIT_SPC { UINT8 OperationCode; UINT8 Reserved[4]; UINT8 Control; } TEST_UNIT_SPC, *pTEST_UNIT_SPC; typedef struct _WRITE_BUFFER_SPC { UINT8 OperationCode; UINT8 Mod:4 ; UINT8 Reserved0:4 ; UINT8 BufferID; UINT8 BufferOff_2; UINT8 BufferOff_1; UINT8 BufferOff_0; UINT8 ParameterLen_2; UINT8 ParameterLen_1; UINT8 ParameterLen_0; UINT8 Control; } WRITE_BUFFER_SPC, *pWRITE_BUFFER_SPC; typedef union _CDB_RBC { GENERIC_CDB Cdb_Generic; GENERIC_RBC RbcCdb_Generic; FORMAT_RBC RbcCdb_Format; READ_RBC RbcCdb_Read; READ_CAPACITY_RBC RbcCdb_ReadCapacity; START_STOP_RBC RbcCdb_OnOffUnit; SYNCHRONIZE_CACHE_RBC RbcCdb_SyncCache; VERIFY_RBC RbcCdb_Verify; WRITE_RBC RbcCdb_Write; INQUIRY_SPC SpcCdb_Inquiry; MODE_SELECT_SPC SpcCdb_ModeSelect; MODE_SENSE_SPC SpcCdb_ModeSense; MEDIA_REMOVAL_SPC SpcCdb_Remove; REQUEST_SENSE_SPC SpcCdb_RequestSense; TEST_UNIT_SPC SpcCdb_TestUnit; WRITE_BUFFER_SPC SpcCdb_WriteBuffer; READ_10 CmdRead10; WRITE_10 CmdWrite10; MODE_SELECT_10 CmdModeSel10; MODE_SENSE_10 CmdModeSen10; READ_LONG_CMD SpcCdb_ReadLong; } CDB_RBC, *pCDB_RBC; #line 1 "TPBULK.H" /0 typedef struct _COMMAND_BLOCK_WRAPPER{ UINT32 dCBW_Signature; UINT32 dCBW_Tag; UINT32 dCBW_DataXferLen; UINT8 bCBW_Flag; UINT8 bCBW_LUN; UINT8 bCBW_CDBLen; CDB_RBC cdbRBC; } CBW, *pCBW; typedef struct _COMMAND_STATUS_WRAPPER{ UINT32 dCSW_Signature; UINT32 dCSW_Tag; UINT32 dCSW_DataResidue; UINT8 bCSW_Status; } CSW, *pCSW; typedef union _TPBULK_STRUC { CBW TPBulk_CommandBlock; CSW TPBulk_CommandStatus; }TPB_STRUC, *pTPB_STRUC; unsigned char EnumMassDev(void); unsigned char TPBulk_GetMaxLUN(void); unsigned char SPC_Inquiry(void); unsigned char SPC_READLONG(void); unsigned char SPC_RequestSense(void); unsigned char SPC_TestUnit(void); unsigned char SPC_LockMedia(void); unsigned char RBC_ReadCapacity(void); unsigned char RBC_ReadOneSec(unsigned long lba, unsigned char *pBuffer); unsigned char RBC_Write(unsigned long lba,unsigned char len,unsigned char *pBuffer); #line 6 "Fat32.c" /0 #line 1 "HAL.H" /0 #line 1 "AT89X52.H" /0 #line 2 "HAL.H" /0 sbit MCU_LED1=P1^0; sbit MCU_LED2=P1^1; sbit MCU_LED3=P1^2; sbit MCU_LED4=P1^3; sbit SWM1=P1^4; sbit SWM2=P1^5; sbit SWM3=P1^6; sbit SWM4=P1^7; sbit SL811_RST=P3^5; sbit SL811_CS=P3^4; unsigned char SL811Read(unsigned char a); void SL811Write(unsigned char a, unsigned char d); void SL811BufRead(unsigned char addr, unsigned char *s, unsigned char c); void SL811BufWrite(unsigned char addr, unsigned char *s, unsigned char c); unsigned short WordSwap(unsigned short input); void DelayMs(unsigned int nFactor); unsigned long SwapINT32(unsigned long dData); void ComSendByte(unsigned char c); unsigned int LSwapINT16(unsigned short dData1,unsigned short dData2); unsigned long LSwapINT32(unsigned long dData1,unsigned long dData2,unsigned long dData3,unsigned long dData4); unsigned long SwapINT32(unsigned long dData);#line 7 "Fat32.c" /0 extern SYS_INFO_BLOCK xdata DeviceInfo; extern UINT8 xdata DBUF[512]; extern UINT8 xdata FATBUF[512]; extern int FatSectorPointer; #line 19 "Fat32.c" /1 #line 177 "Fat32.c" /0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -