سلام
اگر از flashfs استفاده میکنید (کتابخانه خود کیل) من اینطور جواب گرفتم. البته من از RTX استفاده کردم.
کد:
static char acBuffer[0x1000];
int APP_GetData(void * p, const U8 ** ppData, unsigned NumBytes, U32 Off)
{
FILE * phFile;
unsigned int NumBytesRead;
phFile = (FILE *)p;
if (NumBytes > sizeof(acBuffer)) {
NumBytes = sizeof(acBuffer);
}
NumBytesRead = fread(acBuffer,sizeof(char),NumBytes,phFile);
*ppData = (unsigned char *)acBuffer;
return NumBytesRead;
}
int APP_GetData2(void * p, const U8 ** ppData, unsigned NumBytes, U32 Off)
{
FILE * phFile;
unsigned int NumBytesRead;
U8 * pData;
pData = (U8 *)*ppData;
phFile = (FILE *)p;
NumBytesRead = fread(pData,sizeof(char),NumBytes,phFile);
return NumBytesRead;
}
__task void SDcard(void)
{
FILE *Fptr=NULL;
unsigned char rw[50];
while(1)
{
if(read==2)
{
Fptr = fopen ("BackGround.bmp","r");
GUI_BMP_DrawEx(APP_GetData,Fptr,0,0);
fclose(Fptr);
read=0;
}
else if(read==3)
{
Fptr = fopen ("SettingOn.png","r");
GUI_PNG_DrawEx(APP_GetData2,Fptr,0,0);
fclose(Fptr);
read=0;
}
GUI_X_Delay(1);
}
}