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

📄 sd_entry.c

📁 SD卡与ARM7在SPI模式下进行数据读写原代码
💻 C
字号:
/************************************************************************************/
/*																					*/
/*	Copyright (C) 2004 Medeli Electric Industry Co., LTD.							*/
/*																					*/
/*	System Name	:	IC-1000															*/
/*	File   Name	:	sd_init.c														*/
/*	Revision	:	1.00															*/
/*	Date		:	2006/4/6														*/
/*					Initial version													*/
/*					Joe's work														*/
/************************************************************************************/
#include	"..\common\inc\44b.h"
#include	"..\common\inc\common.h"
#include	"..\sio\sio.h"

#include	"sd_public.h"
#include	"sd_base.h"
#include	"sd_cmd.h"
#include	"sd_hal.h"
#include	"sd_declaration.h"
/*******************************Constants************************************/
/**************************Variable Declaration******************************/
/********************************Locoal**************************************/
/*******************************External*************************************/
/**************************Function Declaration******************************/
/********************************Locoal**************************************/
/*******************************External*************************************/
/***************************Start of program*********************************/
#include	"sd_cmd_tab.c"
#include	"sd_crc.c"
#include	"sd_init.c"
#include	"sd_read_write.c"
#include	"sd_base.c"
/****************************************************************************/
/*	initial sd card interface												*/
/*	Function : init_sd														*/
/*		Parameters															*/
/*			Input	:	Nothing												*/
/*			Output	:	Nothing												*/
/****************************************************************************/
//extern void mp3_play_prc(void);
//extern void test_fs_mp3(void);
extern void fkey_prc(void);
extern void io_prc(void);
 
void init_sd(void)
{
	UBYTE i;
	
	for(i=0;i<SD_EXPRC_NUM;i++)
	{
		sd_exprc.normal[i]=(SD_EXPRC_PT)(&sd_empty_prc);
	}
	sd_exprc.normal[0]=(SD_EXPRC_PT)(&sd_empty_prc);
	
	sd_exprc.normal[1]=(SD_EXPRC_PT)(&io_prc);
	
	sd_exprc.normal[2]=(SD_EXPRC_PT)(&fkey_prc);
	
	sd_exprc.using_sio=(SD_EXPRC_PT)(&sd_empty_prc);
	
	return;
}
/****************************************************************************/
/*	initial sd card interface												*/
/*	Function : init_sd														*/
/*		Parameters															*/
/*			Input	:	Nothing												*/
/*			Output	:	Nothing												*/
/****************************************************************************/
UBYTE sd_write_data(UWORD dst_addr,UWORD src_addr,UWORD length)
{
	UBYTE ret=SD_ERROR;
	
	sd_vars.short_timer=0;
	
	SD_CS_ASSERT;
	
	if((!(dst_addr%SD_BLOCK_LENGTH))&&(1/* address is inside the card */))
	{
		sd_pack_com_para(sd_vars.com_para,dst_addr);
		
		if((sd_send_cmd(CMD25,sd_vars.com_para,0,sd_vars.resp)==SD_OK)&&(!sd_vars.resp[0]))
		{
			ret=sd_write_blocks(src_addr,dst_addr,length);
		}
	}
	SD_CS_DEASSERT;
	
	return ret;
}
/****************************************************************************/
/*	initial sd card interface												*/
/*	Function : init_sd														*/
/*		Parameters															*/
/*			Input	:	Nothing												*/
/*			Output	:	Nothing												*/
/****************************************************************************/
UBYTE sd_read_data(UWORD src_addr,UWORD dst_addr,UWORD length)
{
	UBYTE ret=SD_ERROR;
	
	if(!(src_addr%SD_BLOCK_LENGTH))
	{
		ret=sd_read_blocks(src_addr,dst_addr,length);
	}
	return ret;
}
/****************************************************************************/
/*	initial sd card interface												*/
/*	Function : init_sd														*/
/*		Parameters															*/
/*			Input	:	Nothing												*/
/*			Output	:	Nothing												*/
/****************************************************************************/
void sd_empty_prc(void)
{
	return;
}

⌨️ 快捷键说明

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