#include "type.h"
void FlashEarseChip(void)
{
}
STATUS FlashEarseSector(INT16U * flashadd)
{
}
STATUS FlashRead(INT16U * flashadd, INT16U * buffer, INT16U buffer_size)
{
}
STATUS FlashWrite(INT16U * flashadd, INT16U * buffer, INT16U buffer_size)
{
}
type.h
//类型定义
typedef int STATUS;
typedef unsigned int INT32U;
typedef unsigned short INT16U;
typedef unsigned char INT8U;
typedef signed int INT32S;
typedef signed short INT16S;
typedef signed char INT8S;
struct FileStructe
{
INT8S pName[10];
INT32U ID;
INT16U * pBegadd;
INT16U * pEndadd;
INT16U * pCuradd;
};
//定义返回值类型
#define OK 0
#define FAIL -1
#define ERROR_MODE -2 //输入的MODE错误
#define FAIL_OPEN -3 //要打开的文件不存在
FILE_operation.c
#include "type.h"
#include "config.h"
extern void FlashEarseChip(void);
extern STATUS FlashEarseSector(INT16U * flashadd);
extern STATUS FlashRead(INT16U * flashadd, INT16U * buffer, INT16U buffer_size);
extern STATUS FlashWrite(INT16U * flashadd, INT16U * buffer, INT16U buffer_size);
extern FS[10];
extern FILECOUNT;
FileStructe FILE_open(INT8S * filename, INT8S * mode);
INT16U FILE_read(INT8S * buffer, INT16U len, FileStructe filehandle);
INT16U FILE_write(INT8S * buffer, INT16U len, FileStructe filehandle);
STATUS FILE_close(FileStructe filehandle);
int main(void)
{
}
/*******************************************************************************
* Function Name : FILE_open
* Description : 以读写的方式打开指定的文件
* Input : filename 指定的文件名;mode 指定的打开方式
* Output : None
* Return : 要打开的文件的结构体
*******************************************************************************/
FileStructe FILE_open(INT8S * filename, INT8S * mode)
{
INT32U i = 0;
INT32U namelen = 10
if ("+w" != mode) //检查打开模式是否正确
{
return ERROR_MODE;
}
//应该读取某个配置文件来得到相关的参数
//查找要打开的文件是否存在
for (i = 0; i < ; i++)
{
if (filename == (*(FS + i))->pName)
{
return FS[i];
}
}
//如果不存在则创建
while (namelen)
{
*(FS[i].pName++) = *(filename++);
namelen--;
}
FS[i].ID = FS[i - 1].ID + 1; //ID为前一个文件加1
FS[i].pBegadd = FS[i - 1].pEndadd + 0X0001; //文件的地址设为上一个文件后一定间隔的地址
FS[i].pCuradd = FS[i].pBegadd; //在读写开始前当前地址默认问文件的开始地址
FS[i].pEndadd = FS[i].pBegadd; //如果文件的起始地址和结束地址相同表明是新建的,在最后FILE_close()中进行处理
return FAIL_OPEN;
}
/*******************************************************************************
* Function Name :
* Description :
* Input : None
* Output : None
* Return : None
*******************************************************************************/
INT16U FILE_read(INT8S * buffer, INT16U len, FileStructe filehandle)
{
}
/*******************************************************************************
* Function Name :
* Description :
* Input : None
* Output : None
* Return : None
*******************************************************************************/
INT16U FILE_write(INT8S * buffer, INT16U len, FileStructe filehandle)
{
}
/*******************************************************************************
* Function Name :
* Description :
* Input : None
* Output : None
* Return : None
*******************************************************************************/
STATUS FILE_close(FileStructe filehandle)
{
}