⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sd_extr.h

📁 基于S3C2440处理器的sd卡驱动程序
💻 H
字号:
#ifndef _SD_EXTR_H_
#define _SD_EXTR_H_
#include "drv_defs.h"
#include "sd_defs.h"

/* 给SD/MMC卡供电 power to sd/mmc card */
void SD_Powerup(void);

/* 初始化访问SD卡的硬件初始化 initialize the hardware that access sd card */
extern void SD_HardWareInit(void);

/* 设置SPI的时钟小于400kHZ set the clock of SPI less than 400kHZ */
extern void SD_Clk400k(void);

/* 设置SPI的clock到最大值 set the clock of SPI to maximum */
extern void SD_ClkToMax(void);


/* 初始化SD卡 initialize sd card */extern INT8U SD_Initialize(sd_struct *sds);								/* 从SD卡中读一个块 read a single block from sd card */extern INT8U SD_ReadBlock(sd_struct *sds, INT32U blockaddr, INT8U *recbuf);  

extern INT8U SD_ReadBlock_1(sd_struct *sds, int blockaddr, int blocknum, INT8U *buf);

extern INT8U SD_ReadMultipleBlock(INT32U blockaddr);

extern INT8U SD_WriteMultipleBlock(INT32U blockaddr);
 
/* 向SD卡中写入一个块 write a block to sd card */               extern INT8U SD_WriteBlock(sd_struct *sds, INT32U blockaddr, const INT8U *recbuf);  

/* 向sd卡中写入多个块 */
extern INT8U SD_WriteBlock_1(sd_struct *sds, int blockaddr, int blocknum, const INT8U *buf);

/* 卡识别 card indentify */extern INT8U Card_Indentify(void);/* 激活卡 active card */extern INT8U SD_ActiveCard(sd_struct *sds);/* 得到SD卡信息 get information of sd card */extern INT8U SD_GetCardInfo(sd_struct *sds);/* SD/MMC卡中断处理函数 SD/MMC card interrupt handler *///extern void sdmmc_interrupt(int irq, void *dev_id, struct pt_regs *regs);/* SD/MMC插入中断处理函数 SD/MMC card insert handler *///extern void card_detect_interrupt(int irq, void *dev_id, struct pt_regs *regs);


extern INT8U SD_SendCommand(INT8U cmd, INT32U param, INT8U resptype, INT8U *resp);
extern INT8U SD_JudgeResult(INT8U *CardStatus);
extern void word_to_byte(INT32U value, INT8U *pdst);

extern INT8U SD_ResetSD(void);
extern INT8U SD_BlockCommand(INT8U cmd, INT8U resptype, INT32U parameter);


/* 读SD卡的CSD寄存器 read CSD register of sd card */
extern INT8U SD_ReadCSD(INT16U RCA, INT8U csdlen, INT8U *recbuf);
extern INT8U SD_ReadAllCID(INT8U cidlen, INT8U *recbuf);

/* Read Card status  */
extern INT8U SD_ReadCard_Status(INT16U RCA, INT8U len, INT8U *buffer);


/* 读SD卡的CID寄存器  read CID register of sd card */   
extern INT8U SD_ReadCID(INT16U RCA, INT8U cidlen, INT8U *recbuf);
extern INT8U SD_GetRCA(INT8U card_type, INT16U *RCA);


extern INT8U SD_SelectCard(INT16U RCA);
extern INT8U SD_DeSelectCard(void);


extern INT8U SD_StopTransmission(void);
extern INT8U SD_GoInactive(INT16U RCA);
//INT8U SD_SetBlockLen(INT32U length);

extern INT8U SD_SetBlockLen(INT16U RCA, INT32U length);


extern INT8U SD_ReadSingleBlock(INT32U blockaddr);
extern INT8U SD_WriteSingleBlock(INT32U blockaddr);

/* 读操作条件寄存器OCR  read OCR register of sd card */
extern INT8U SD_ReadOCR(INT8U ocrlen, INT8U *recbuf);
extern INT8U MMC_ReadOCR(INT8U ocrlen, INT8U *recbuf);

extern INT8U SD_SetBusWidth(INT16U RCA, INT32U bwidth);
extern INT8U SD_ReadBlockData(INT32U len, INT8U *recbuf,INT32U timeout);
extern INT8U SD_WriteBlockData(INT8U bmulti, INT32U len, const INT8U *sendbuf, INT32U timeout);
            
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -