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

📄 sd_public.h

📁 SD卡与ARM7在SPI模式下进行数据读写原代码
💻 H
字号:
/************************************************************************************/
/*																					*/
/*	Copyright (C) 2004 Medeli Electric Industry	Co., LTD.							*/
/*																					*/
/*	System Name	:	IC-1000															*/
/*	File   Name	:	sd_public.h														*/
/*	Revision	:	1.00															*/
/*	Date		:	2006/4/10														*/
/*					Initial	version													*/
/*					Joe's work														*/
/************************************************************************************/
#ifndef	SD_PUBLIC_H
#define	SD_PUBLIC_H

#ifdef __cplusplus
extern "C" {
#endif
/********************************Includs***************************************/
/********************************Specials**************************************/
typedef void(* SD_EXPRC_PT)(void);
/*******************************Constants**************************************/
#define SD_CRC_ENABLED			(0)
/* 是否允许CRC(允许会使DMA读取产生错误) */
#define SD_ERROR				(1)
/* SD卡出错返回值 */
#define SD_OK					(0)
/* SD卡正确返回值 */
#define SD_EXPRC_NUM			(10)
/* 需要运行的外部程序错误 */
/*********************************Enums****************************************/
/********************************Marcros***************************************/
/*******************************Structures*************************************/
typedef struct
{
	VUBYTE data_sent;	/* 字节已发送标志 */
	VUBYTE timer;		/* 10ms 定时器 */
	VUWORD short_timer;
	
	UBYTE com_para[4];	/* 指令参数 */
	UBYTE resp[5];		/* 应答内容 */
	UBYTE ocr[5];		/* OCR内容 */
	UBYTE csd[16];		/* CSD内容 */
	
	UHWORD data_crc;	/* 数据块crc */

	UWORD trans_speed;	/* 传输速率 */
	UWORD block_len;	/* 块长度,字节单位 */
	UWORD block_num;	/* 块数量 */
	UWORD erase_unit;	/* 一次可擦除的块数量 */

	UWORD timeout_read;	/* 读块超时时间(单位: 8 SPI clock) */
	UWORD timeout_write;/* 写块超时时间(单位: 8 SPI clock) */
	UWORD timeout_erase;/* 擦块超时时间(单位: 8 SPI clock) */

}SD_VARS;

typedef struct
{
	UBYTE cur_prc;
	SD_EXPRC_PT normal[SD_EXPRC_NUM];
	SD_EXPRC_PT using_sio;
}SD_EXPRC_STRUCT;
/**************************Variable	Declaration********************************/
extern SD_VARS sd_vars;
/**************************Function	Declaration********************************/
extern void init_sd(void);
extern UBYTE sd_card_initial(void);
extern UBYTE sd_write_data(UWORD src_addr,UWORD dst_addr,UWORD length);
extern UBYTE sd_read_data(UWORD src_addr,UWORD dst_addr,UWORD length);
/***************************End of sd_public.h*********************************/
#ifdef __cplusplus
};		/* End of 'extern "C"' */
#endif
#endif	/* End of sd_public.h	*/

⌨️ 快捷键说明

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