📄 sdi.h
字号:
#ifndef __SD_H__
#define __SD_H__
#ifdef __cplusplus
extern "C" {
#endif
// Function prototypes
void Test_SDI(void);
void set_system_clock(void);
int SD_card_init(void);
void Rd_cid_csd(char reg);
int Check_status(char type);
void TR_Buf_new(void);
void Card_sel_desel(char sel_desel);
void CMD0(void);
int CMD55(void);
void Rd_CSD(void);
void Rd_CID(void);
void Rd_Block(void);
void Rd_Stream(void);
void Wt_Block(void);
void Wt_Stream(void);
void Set_Prt(void);
void Clr_Prt(void);
void Flush_Rx_buf(void);
void SetBus(void);
void Set_1bit_bus(void);
void Set_4bit_bus(void);
void View_Rx_buf(void);
void View_Tx_buf(void);
//////////////////////////////////////////////////////////////////////////////////
void SDIO_TypeSetting(U32 ClkType, U32 ByteType);
void SDIO_BlockSizeSetting(U32 Size);
void SDIO_Command(U32 CmdArg, U32 Command, U32 WaitResp, U32 LongResp, U32 WithData);
int Check_CMDend(int cmd, int be_resp);
void SDIO_PrescalerSetting(U32 BaudRate);
void CARD_SEL_DESEL(U8 sel_desel);
void SET_BUSWIDTH(void);
void SDIO_WriteTest(void);
void SDIO_ReadTest(void);
void SDIO_EraseBlock(void);
void SD_MMC_SETGPIO(void);
int Check_SD_OCR(void);
void CalculationBPS_NORMALSD_MMC(int Time);
int Check_DATend(void);
int Check_BUSYend(void);
int Check_MMC_OCR(void);
void __irq Rd_Int(void);
void __irq Wt_Int(void);
void SET_BUSWIDTH_MoviNand(void);
void Set_4bit_bus_MoviNand(void);
#define Idle_State 0
#define Ready_State 1
#define Identification_State 2
#define StandBy_State 3
#define Transmit_State 4
#define Data_State 5
#define Receive_State 6
#define Progress_State 7
#define Dis_State 8
#define PowerUp_State 9
#define SDIO_SD_TYPE 0
#define SDIO_MMC_TYPE 1
#define SDIO_TYPE_A 0
#define SDIO_TYPE_B 1
#define SDIO_NO_RESP 0
#define SDIO_WAIT_RESP 1
#define SDIO_SHORT_RESP 0
#define SDIO_LONG_RESP 1
#define SDIO_WITHOUT_DATA 0
#define SDIO_WITH_DATA 1
//rSDICON
#define CLOCK_TYPE (1<<5)
#define BYTE_ORDER (1<<4)
#define ENCLK (1<<0)
//rSDICSTA
#define RESP_INDEX (0xFF<<0)
#define DATA_TIMEOUT (1<<5)
#define CMD_ON (1<<8)
#define RESP_END (1<<9)
#define CMD_TOUT (1<<10)
#define CMD_END (1<<11)
#define RESP_CRC_FAIL (1<<12)
//rSDIDSTA
#define CRC_STAT_FAIL (0x1<<7)
#define RECEIVE_CRC_FAIL (1<<6)
#define DATA_TOUT (1<<5)
#define DATA_FINISH (1<<4)
#define BUSY_FINISH (1<<3)
//SDIDCON
#define BLOCK_NUM (0xFFF<<0)
#define DATA_TRANSMIT_MODE (3<<12)
#define ONLYBUSY_CHECK (1<<12)
#define DATA_RECEIVE_MODE (1<<13)
#define DATA_TRANSMIT_START (1<<14)
#define DMA_EN (1<<15)
#define WIDE_BUS_EN (1<<16)
#define WIDE_BUS_DIS (0<<16)
#define STREAM_TRANSFER (0<<17)
#define BLOCK_TRANSFER (1<<17)
#define BUSY_AFTER_CMD (1<<18)
#define RCV_AFTER_CMD (1<<19)
#define TRANS_AFTER_RESP (1<<20)
#define INT_PERIOD_TYPE (1<<21)
#define BYTE_TRANSFER (0<<22)
#define HALFWORD_TRANSFER (1<<22)
#define WORD_TRANSFER (1<<23)
#define BURST4_EN (1<<24)
//SDIFSTA
#define TX_FIFO_HALF_FULL (1<<11)
#define TX_FIFO_AVAILABLE_DETECT (1<<13)
#define RX_FIFO_AVAILABLE_DETECT (1<<12)
#ifdef __cplusplus
}
#endif
#endif /*__SD_H___*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -