📄 fs_img_dev.c
字号:
/********************************************************************************
*********************************************************************************
COPYRIGHT (c) 2004 BY ROCK-CHIP FUZHOU
-- ALL RIGHTS RESERVED --
File Name: sd.c
Author: XUESHAN LIN
Created: 29th SEP 2004
Modified:
Revision: 1.00
$Log: fs_img_dev.c,v $
Revision 1.2 2008/06/19 04:43:25 Administrator
代码整理!
Revision 1.1.1.1 2008/05/07 04:15:08 Administrator
no message
Revision 1.7 2007/10/11 04:08:09 Huangshilin
System\os
Revision 1.6 2007/10/08 02:59:51 Lingzhaojun
添加版本自动注释脚本
********************************************************************************
********************************************************************************/
#include "../inc/fs_comm.h"
#define _IN_IMG_
#include "fs_img_dev.h"
#if(FS_EMU_ENT == PC_VC_EMU)
uint8 ImgFatCacheBuf[4][512];
uint8 ImgFdtCacheBuf[4][512];
uint8 ImgDataCacheBuf[4][512];
FS_CACHE_DATA IMG_FatCacheData[4] =
{
{0, &ImgFatCacheBuf[0][0], 0xFFFFFFFF},
{0, &ImgFatCacheBuf[1][0], 0xFFFFFFFF},
{0, &ImgFatCacheBuf[2][0], 0xFFFFFFFF},
{0, &ImgFatCacheBuf[3][0], 0xFFFFFFFF}
};
FS_CACHE_DATA IMG_FdtCacheData[4] =
{
{0, &ImgFdtCacheBuf[0][0], 0xFFFFFFFF},
{0, &ImgFdtCacheBuf[1][0], 0xFFFFFFFF},
{0, &ImgFdtCacheBuf[2][0], 0xFFFFFFFF},
{0, &ImgFdtCacheBuf[3][0], 0xFFFFFFFF}
};
FS_CACHE_DATA IMG_DataCacheData[4] =
{
{0, &ImgDataCacheBuf[0][0], 0xFFFFFFFF},
{0, &ImgDataCacheBuf[1][0], 0xFFFFFFFF},
{0, &ImgDataCacheBuf[2][0], 0xFFFFFFFF},
{0, &ImgDataCacheBuf[3][0], 0xFFFFFFFF}
};
FS_CACHE ImgFatCache = {IMG_FatCacheData, 0, 4};
FS_CACHE ImgFdtCache = {IMG_FdtCacheData, 0, 4};
FS_CACHE ImgDataCache = {IMG_DataCacheData, 0, 4};
static FILE *pImgFile;
static fpos_t ImgFileSize;
int FS_ImgGetStatus(void);
int FS_ImgInit(void);
int FS_ImgReadSec(uint32 LBA, uint32 SecCount, void *buf);
int FS_ImgWriteSec(uint32 LBA, uint32 SecCount, void *buf);
int FS_ImgIoCtl(uint32 cmd, uint32 arg, void *buf);
int FS_ImgMediumInit(void);
const FS_DEVICE_TYPE FS_ImgDevice =
{
"C:\\",
FS_ImgGetStatus,
FS_ImgReadSec,
FS_ImgWriteSec,
FS_ImgIoCtl,
FS_ImgMediumInit,
&ImgFatCache,
&ImgFdtCache,
&ImgDataCache
};
int FS_ImgGetStatus(void)
{
return(0);
}
int FS_ImgIoCtl(uint32 cmd, uint32 arg, void *buf)
{
uint32 *rbuf;
rbuf = (uint32 *)buf;
switch (cmd)
{
case IO_CTL_GET_CAPACITY:
// *rbuf = ((uint32)ImgFileSize)>>10;
break;
case IO_CTL_GET_MEDIUM_START_SEC:
*rbuf = 0;
break;
default:
break;
}
return(0);
}
int FS_ImgMediumInit(void)
{
pImgFile = fopen("DiskSD.img", "rb+");
if (pImgFile)
{
fseek(pImgFile, 0, SEEK_END);
fgetpos(pImgFile, &ImgFileSize);
fseek(pImgFile, 0, SEEK_SET);
}
else
{
return(-1);
}
return(0);
}
int FS_ImgReadSec(uint32 LBA, uint32 SecCount, void *buf)
{
fseek(pImgFile, (LBA << 9), SEEK_SET);
fread(buf, SecCount << 9, 1, pImgFile);
return 0;
}
/***************************************************************************
函数描述:写SD卡数据(16bit)
入口参数:行地址,列地址,数据缓冲区,长度,宽度
出口参数:ERROR错误, SUCCEED正确
调用函数:
***************************************************************************/
int FS_ImgWriteSec(uint32 LBA, uint32 SecCount, void *buf)
{
fseek(pImgFile, (LBA << 9), SEEK_SET);
fwrite(buf, SecCount << 9, 1, pImgFile);
return 0;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -