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

📄 sim_ram.c

📁 电子盘DEMO板程序
💻 C
字号:
/******************************************************************************/
/*                                                                            */
/*  Copyright (C), 1995-2006, msystems Ltd. All rights reserved.              */
/*                                                                            */
/*  Redistribution and use in source and binary forms, with or without        */
/*  modification, are permitted provided that the following conditions are    */
/*  met:                                                                      */
/*  1. Redistributions of source code must retain the above copyright notice, */
/*     this list of conditions and the following disclaimer.                  */
/*  2. Redistributions in binary form must reproduce the above copyright      */
/*     notice, this list of conditions and the following disclaimer in the    */
/*     documentation and/or other materials provided with the distribution.   */
/*  3. Neither the name of msystems nor the names of its contributors may be  */
/*     used to endorse or promote products derived from this software without */
/*     specific prior written permission.                                     */
/*                                                                            */
/*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS       */
/*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */
/*  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR             */
/*  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT      */
/*  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,     */
/*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED  */
/*  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR    */
/*  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF    */
/*  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING      */
/*  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS        */
/*  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.              */
/*                                                                            */
/******************************************************************************/

/*
 * $Log:   V:/PVCSDB/DiskOnChip/archives/DocDriver/TrueFFS BD/sim_al/sim_ram.c-arc  $
 * 
 *    Rev 1.2   Sep 13 2006 10:30:06   yaniv.iarovici
 * Fix compilation warnings
 * 
 *    Rev 1.1   Sep 11 2006 13:43:22   yaniv.iarovici
 * Legal header added
 * 
 *    Rev 1.0   Sep 03 2006 15:27:48   Yaniv.Iarovici
 * Initial revision.
 * 
 *    Rev 1.0   Sep 03 2006 15:21:50   Yaniv.Iarovici
 * Initial revision.
 * 
 *    Rev 1.4   Aug 09 2006 19:08:34   einat.avidan
 * adaptation for DOC Driver 1.0
 * aditional simulator types
 * 
 *    Rev 1.3   Jun 15 2006 10:45:18   Benoit.Seligmann
 * bug fixed in casceded create 16Gb
 * 
 *    Rev 1.2   May 21 2006 15:14:40   einat.avidan
 * simulator updates for EQA4 migration utilities
 * 
 *    Rev 1.1   Mar 27 2006 16:02:04   einat.avidan
 * add default file name to simulator files
 * 
 *    Rev 1.0   Mar 21 2006 17:30:18   einat.avidan
 * Initial revision.
 */
#include "sim_ram.h"
#include "sim_dev.h"

#ifdef DOCH_FILE_SIMULATION

FLWord   wRamSimulateDevice; /*device type to simulate*/

/*********************************************************/
/* Function name	: sim_setSizeByType					  */
/* Description	    : sets dwSimLength according to type  */
/* Return type		: DOCH_Error						  */
/* Argument         : FLDword dwSimType - simulator type  */
/*********************************************************/
DOCH_Error sim_setSizeByType (FLDword dwSimType)
{
	switch (dwSimType)
	{
		case SIM_1GBIT: dwSimLength[0]=SIM_1GBIT_SIZE;
			break;
#ifndef SIM_NO_CASCADED_SUPPORT	
		case SIM_1GBIT_CASCADED: dwSimLength[0]=SIM_1GBIT_SIZE;
				dwSimLength[1]=SIM_1GBIT_SIZE;
			break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
		case SIM_8GBIT: dwSimLength[0]=SIM_8GBIT_SIZE;
			break;
#ifndef SIM_NO_CASCADED_SUPPORT	
		case SIM_8GBIT_CASCADED: dwSimLength[0]=SIM_8GBIT_SIZE;
			dwSimLength[1]=SIM_8GBIT_SIZE;
			break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
		case SIM_16GBIT: dwSimLength[0]=SIM_16GBIT_SIZE;
			break;
#ifndef SIM_NO_CASCADED_SUPPORT	
		case SIM_16GBIT_CASCADED: dwSimLength[0]=SIM_16GBIT_SIZE;
			dwSimLength[1]=SIM_16GBIT_SIZE;
			break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
		case SIM_64MB: dwSimLength[0]=SIM_64MB_SIZE;
			break;
#ifndef SIM_NO_CASCADED_SUPPORT	
		case SIM_64MB_CASCADED: dwSimLength[0]=SIM_64MB_SIZE;
			dwSimLength[1]=SIM_64MB_SIZE;
			break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
		default:
			return DOCH_AdapterNotFound ;
	}
	return DOCH_OK;
}

/*********************************************************/
/* Function name	: sim_setFileNameByType				  */
/* Description	    : sets File Name according to type  */
/* Return type		: DOCH_Error						  */
/* Argument         : FLDword dwSimType - simulator type  */
/*********************************************************/
DOCH_Error sim_FileNameByType (FLDword dwSimType)
{
	switch (dwSimType)
	{
		
		case SIM_1GBIT: pSimFileName=SIM_1GBIT_FILE_NAME;
			break;
#ifndef SIM_NO_CASCADED_SUPPORT	
		case SIM_1GBIT_CASCADED: pSimFileName=SIM_1GBIT_CASCADED_FILE_NAME;
			break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
		
		case SIM_8GBIT: pSimFileName=SIM_8GBIT_FILE_NAME;;
			break;
#ifndef SIM_NO_CASCADED_SUPPORT	
		case SIM_8GBIT_CASCADED: pSimFileName=SIM_8GBIT_CASCADED_FILE_NAME;
			break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
		
		case SIM_16GBIT: pSimFileName=SIM_16GBIT_FILE_NAME;;
			break;
#ifndef SIM_NO_CASCADED_SUPPORT	
		case SIM_16GBIT_CASCADED: pSimFileName=SIM_16GBIT_CASCADED_FILE_NAME;
			break;
#endif /*SIM_NO_CASCADED_SUPPORT*/

		case SIM_64MB: pSimFileName=SIM_64MB_FILE_NAME;
			break;
#ifndef SIM_NO_CASCADED_SUPPORT	
		case SIM_64MB_CASCADED: pSimFileName=SIM_64MB_CASCADED_FILE_NAME;
			break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
		default:
			return DOCH_AdapterNotFound ;
	}
	return DOCH_OK;
}

/*********************************************************/
/* Function name	: simIdentify					      */
/* Description	    : sets dwSimLength according to type  */
/* Return type		: DOCH_Error						  */
/* Argument         : FLDword dwSimType - simulator type  */
/*********************************************************/
FLStatus simIdentify (void)
{

	if (wRamSimulateDevice != RAM_MTD_UNKNOWN)
	{/*check that the type is simulator type*/
		switch (wRamSimulateDevice)
		{
#ifdef DOCH_FILE_SIMULATION
			case SIM_1GBIT:
			case SIM_8GBIT: 
#ifndef SIM_NO_CASCADED_SUPPORT	
			case SIM_1GBIT_CASCADED:
			case SIM_8GBIT_CASCADED: 
#endif /*SIM_NO_CASCADED_SUPPORT*/
				return flOK;
#endif /*DOCH_FILE_SIMULATION*/
			default:
				return flAdapterNotFound ;

		}
	}
	/* identification of simulator file*/ 
	if( pSimFileName != NULL )
	{
		FLByte tempBuf[sizeof(SIMULTOR_IDENTIFY_STRING)];
		FLDword szReadLen;
		FILE * pRamFile;
		pRamFile = fopen((char*) pSimFileName, "rb" );
		if(pRamFile!=NULL)
		{
			/* the requested filename was found! */
			szReadLen = fread( (void*)tempBuf, 1, sizeof(SIMULTOR_IDENTIFY_STRING), pRamFile );
			if( szReadLen==sizeof(SIMULTOR_IDENTIFY_STRING))
			{
				if (/*ExMemCmp*/tffscmp( SIMULTOR_IDENTIFY_STRING, tempBuf, sizeof(SIMULTOR_IDENTIFY_STRING) ) == 0)
					return flOK ;
			}
			fclose(pRamFile);
		}
	}
		
	return flAdapterNotFound ;
}

#endif /*DOCH_FILE_SIMULATION*/

⌨️ 快捷键说明

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