📄 hs_mmc.h
字号:
#ifndef __HS_MMC_H__
#define __HS_MMC_H__
#ifdef __cplusplus
extern "C" {
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////
void Test_HS_MMC(void);
void HS_MMC_Reset(void);
void HS_MMC_ReadTest(void);
void HS_MMC_WriteTest(void);
void HS_MMC_EraseBlock(void);
void HS_MMC_CardDetect(void);
void HS_MMC_Reset(void);
void HS_MMC_SETGPIO(void);
int HS_MMC_init(void);
void GetResponseData(U32 uCmd);
void ClockOnOff(int OnOff);
void ClockConfig(U32 Clksrc, U32 Divisior);
int WaitForCommandComplete(void);
int WaitForTransferComplete(void);
int WaitForBufferWriteReady(void);
void ClearBufferWriteReadyStatus(void);
void ClearBufferReadReadyStatus(void);
void ClearCommandCompleteStatus(void);
void ClearTransferCompleteStatus(void);
void ClearErrInterruptStatus(void);
void SetTransferModeReg(U32 MultiBlk,U32 DataDirection, U32 AutoCmd12En,U32 BlockCntEn,U32 DmaEn);
void SetArgumentReg(U16 uArg);
void SetBlockCountReg(U16 uBlkCnt);
void SetSystemAddressReg(U32 SysAddr);
void SetBlockSizeReg(U16 uDmaBufBoundary, U16 uBlkSize);
void SetMMCSpeedMode(U32 eSDSpeedMode);
void SetSDSpeedMode(U32 eSDSpeedMode);
void SetCommandReg(U16 uCmd,U32 uIsAcmd);
void SetClock(U32 ClkSrc, U16 Divisor);
void SetSdhcCardIntEnable(U8 ucTemp);
int SetDataTransferWidth(void);
int SetSDOCR(void);
int IsCardInProgrammingState(void);
int IssueCommand( U16 uCmd, U32 uArg, U32 uIsAcmd);
void InterruptEnable(U16 NormalIntEn, U16 ErrorIntEn);
int SetMMCOCR(void);
void HostCtrlSpeedMode(U8 SpeedMode);
void __irq HS_WRITE_INT(void);
void __irq HS_READ_INT(void);
void __irq HS_DMA_INT(void);
void __irq HS_CARD_DETECT_INT(void);
void HS_MMC_Irq(void);
void DisplayCardInformation(void);
void CalculationBPS_HSMMC(int Time);
void DataCompare_HSMMC(U32 a0, U32 a1, U32 bytes);
void DataRead_ForCompare(int StartAddr);
/////////////////////////////////////////////////////////////////////////////////////////////////
//#define SDHC_MONITOR (*(volatile unsigned *)0x4800004c)
//#define SDHC_SLOT_INT_STAT (*(volatile unsigned *)0x480000fc)
/////////////////////////////////////////////////////////////////////////////////////////////////
#define SD_HCLK 1
#define SD_EPLL 2
#define SD_EXTCLK 3
#define NORMAL 0
#define HIGH 1
//Normal Interrupt Signal Enable
#define READWAIT_SIG_INT_EN (1<<10)
#define CARD_SIG_INT_EN (1<<8)
#define CARD_REMOVAL_SIG_INT_EN (1<<7)
#define CARD_INSERT_SIG_INT_EN (1<<6)
#define BUFFER_READREADY_SIG_INT_EN (1<<5)
#define BUFFER_WRITEREADY_SIG_INT_EN (1<<4)
#define DMA_SIG_INT_EN (1<<3)
#define BLOCKGAP_EVENT_SIG_INT_EN (1<<2)
#define TRANSFERCOMPLETE_SIG_INT_EN (1<<1)
#define COMMANDCOMPLETE_SIG_INT_EN (1<<0)
//Normal Interrupt Status Enable
#define READWAIT_STS_INT_EN (1<<10)
#define CARD_STS_INT_EN (1<<8)
#define CARD_REMOVAL_STS_INT_EN (1<<7)
#define CARD_INSERT_STS_INT_EN (1<<6)
#define BUFFER_READREADY_STS_INT_EN (1<<5)
#define BUFFER_WRITEREADY_STS_INT_EN (1<<4)
#define DMA_STS_INT_EN (1<<3)
#define BLOCKGAP_EVENT_STS_INT_EN (1<<2)
#define TRANSFERCOMPLETE_STS_INT_EN (1<<1)
#define COMMANDCOMPLETE_STS_INT_EN (1<<0)
#ifdef __cplusplus
}
#endif
#endif /*__HS_MMC_H__*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -