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

📄 mem_fs.c

📁 dm270 source code
💻 C
字号:
/*
    DM270 ARM Evaluation Software

    (c)Texas Instruments 2003
*/

#include <system/armsys270.h>
#include <util/mem_fs.h>


STATUS MEM_FILE_open( MEM_FILE *file, Uint32  addr, char *op ) {
	file->base_addr = addr;
	file->offset	= 0;
	
	if(op[0] == 'w' ) {
		file->write = TRUE;
		file->size		= 0;
	} else
		file->write = FALSE;
	return E_PASS;
}

STATUS MEM_FILE_close( MEM_FILE *file ) {
	
	return E_PASS;
}

Uint32 MEM_FILE_write( MEM_FILE *file, char *data, Uint32 size ) {
	memcpy( (char*)(file->base_addr + file->offset), data, size );
	file->offset +=  size;
	if( file->size < file->offset )
		file->size =  file->offset;
	return size;
}

Uint32 MEM_FILE_read ( MEM_FILE *file, char *data, Uint32 size ) {
	if( file->offset + size < file->size ) {
		memcpy( data, (char*)(file->base_addr + file->offset), size );
		file->offset +=  size;
	} else {
		size = file->size - file->offset;
		memcpy( data, (char*)(file->base_addr + file->offset), size );
		file->offset +=size;
	}
	return size;
}

STATUS MEM_FILE_seek ( MEM_FILE *file, Int32 offset, MEM_FILE_SEEK_POS pos ) {
	STATUS stat=E_PASS;

	switch( pos ) {	
		case MEM_FILE_SEEK_START :
			file->offset=offset;
			break;
		case MEM_FILE_SEEK_CUR :
			file->offset += offset;
			if((Int32)file->offset<0)
				file->offset=0;
			break;
		default :
			stat=E_INVALID_INPUT;
			break;
	}
	return stat;	
}

⌨️ 快捷键说明

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