|
|
#include <stdio.h>
|
|
|
#include <sdcard.h>
|
|
|
#include <sdcard-spi.h>
|
|
|
|
|
|
FILE* sdcardimg=NULL;
|
|
|
|
|
|
|
|
|
void sdcardmake(sdcardDev* sdcard,UHANDLE phy,void (*rcvr_mmc) (UHANDLE,char *,unsigned int ),void (*xmit_mmc) (UHANDLE,const char *,unsigned int ),void (*setspeed) (UHANDLE phy,unsigned int speed),unsigned int (*getspeed) (UHANDLE phy))
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
int sdcardselect (blkdevice* _this)
|
|
|
{
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
|
|
|
void sdcarddeselect (blkdevice* _this)
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
int sdcardwait_ready (sdcardDev* sdcard)
|
|
|
{
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
void sdcardpower (blkdevice* _this)
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
char sdcarddetect (blkdevice* _this)
|
|
|
{
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
char sdcardwriteprotected (blkdevice* _this)
|
|
|
{
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int sdcardxmit_datablock (sdcardDev* sdcard,const char *buff,char token)
|
|
|
{
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
int sdcardrcvr_datablock (sdcardDev* sdcard,char *buff,unsigned int btr)
|
|
|
{
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
char sdcardsend_cmd (blkdevice* _this,char cmd,unsigned int arg)
|
|
|
{
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
DSTATUS sdcarddisk_status (blkdevice* _this)
|
|
|
{}
|
|
|
|
|
|
DSTATUS sdcarddisk_initialize (blkdevice* _this)
|
|
|
{}
|
|
|
|
|
|
DRESULT sdcarddisk_read (blkdevice* _this,char *buff,unsigned long sector,char count)
|
|
|
{
|
|
|
if(sdcardimg==NULL)return RES_ERROR;
|
|
|
int res = fseek(sdcardimg, sector*(unsigned long)512, SEEK_SET);
|
|
|
if(count*512== fread(buff,1,count*512,sdcardimg))
|
|
|
return RES_OK;
|
|
|
return RES_ERROR;
|
|
|
}
|
|
|
|
|
|
DRESULT sdcarddisk_write (blkdevice* _this,const char *buff,unsigned long sector,char count)
|
|
|
{
|
|
|
if(sdcardimg==NULL)return RES_ERROR;
|
|
|
fseek(sdcardimg, sector*(unsigned long)512, SEEK_SET);
|
|
|
fwrite(buff,1,count*512,sdcardimg);
|
|
|
return RES_OK;
|
|
|
}
|
|
|
|
|
|
DRESULT sdcarddisk_ioctl (blkdevice* _this,char ctrl,void *buff)
|
|
|
{}
|
|
|
|
|
|
|
|
|
void sdcardspimakeblkdev(blkdevice* dev,sdcardDev* sdcard, blkdevselect_t select,blkdevpower_t power,blkdevdetect_t detect,blkdevwriteprotected_t writeprotected)
|
|
|
{
|
|
|
sdcardimg=fopen("./sdcard","rb");
|
|
|
// sdcardimg=fopen("usbkey.bin","rb");
|
|
|
if(sdcardimg!=NULL)printf("ok sdcard openned\n");
|
|
|
else printf("Nok sdcard not openned\n");
|
|
|
dev->phy=NULL;
|
|
|
dev->select= (blkdevselect_t)select;
|
|
|
dev->power = (blkdevpower_t)power;
|
|
|
dev->detect = (blkdevdetect_t)detect;
|
|
|
dev->writeprotected = (blkdevwriteprotected_t)writeprotected;
|
|
|
dev->write = sdcarddisk_write;
|
|
|
dev->read = sdcarddisk_read;
|
|
|
dev->ioctl = sdcarddisk_ioctl;
|
|
|
dev->initialize = sdcarddisk_initialize;
|
|
|
dev->status = sdcarddisk_status;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|