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

📄 flash_lib.c

📁 freescale atk source code
💻 C
字号:
/******************************************************************************* flash_lib.c**** Copyright 2007 Freescale Semiconductor, Inc. All Rights Reserved.**** This file contains copyrighted material. Use of this file is** restricted by the provisions of a Freescale Software License** Agreement, which has either been electronically accepted by** you or has been expressly executed between the parties.**** Description: Explanation for the usage of this file.**** Revision History:** -----------------**                            Modification     Tracking**Author (core ID)                Date          Number    Description of Changes**-------------------------   ------------    ----------  --------------------------------------------**Terry Lv (r65388)           09/15/2006                  Initial Implementation**-------------------------   ------------    ----------  --------------------------------------------*****************************************************************************//*! * @file flash_lib.c * * @brief source code for the interfaces of flash lib * * @ingroup flash *//****************************************************************************** <Includes>*****************************************************************************/#include "type.h"#include "pu_irom_sd.h"#include "pu_irom_card.h"#include "protocol.h"#include "flash_lib.h"#include "debug.h"#define TY_DBGstatic u8 card_status = 0;/*! * Function  * * @req  command request returned to caller *  * @return 0 successful, less than 0 error */s16 atk_flash_lib_initial (void){	s16 ret;		ret = card_init(1, 0x50004000);    //return ret;	if ( RET_SUCCESS == ret) {		card_status = 1;		return RET_SUCCESS;	}	return FLASH_FAILED;		}/*! * Function  * * @req  command request returned to caller *  * @return 0 successful, less than 0 error */s16 atk_flash_lib_erase (u32 offset, u32 size, response_callback callback){	s16 ret;		if (!card_status) {		return FLASH_ERROR_INIT;	}		ret = sd_data_erase(offset, size);		if ( RET_SUCCESS == ret)		return RET_SUCCESS;	return FLASH_ERROR_ERASE;}/*! * Function  * * @req  command request returned to caller *  * @return 0 successful, less than 0 error */s16 atk_flash_lib_read (u32 offset, u8 *buffer, u32 count, dump_callback callback, u32 bufsize){	s16 ret;		if (!card_status) {		return FLASH_ERROR_INIT;	}    ret = sd_data_read((U32 *)buffer, count, offset, callback);  	if ( RET_SUCCESS == ret)		return RET_SUCCESS;	else		return FLASH_FAILED;}/*! * Function  * * @req  command request returned to caller *  * @return 0 successful, less than 0 error */s16 atk_flash_lib_program (u32 offset, const u8 *buffer, u32 *pcount, u16 *pcsum, u8 mode,u8 file_format,response_callback callback){	s16 ret;	if (!card_status) {		return FLASH_ERROR_INIT;	}    ret = sd_data_write((U32*)buffer, *pcount, offset, callback);  	if ( RET_SUCCESS != ret)		return FLASH_FAILED;		ret = sd_data_read((U32*)buffer, *pcount, offset, NULL);		if (RET_SUCCESS != ret)		return FLASH_FAILED;    	/* send the verify response to host */    if (callback)	    callback(FLASH_VERIFY, 0, *pcount);        *pcsum = calculate_checksum(buffer, *pcount);			return RET_SUCCESS;		}/*! * Function to get the flash model * @param	[out] fmodel- the flash model * @param	[out] len		-the len * @return 	void */void atk_flash_get_model(u8 *fmodel, u32 *len){	u8 model[] = "SD";	int i;	for(i = 0; i < sizeof(model); i++)		fmodel[i] = model[i];	*len = sizeof(model) - 1;}

⌨️ 快捷键说明

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