##// END OF EJS Templates
added nemiver support for STM32
added nemiver support for STM32

File last commit:

r71:608b7f0e27c2 dev_alexis
r81:c888ed387b6b dev_alexis
Show More
fakesdcard.c
116 lines | 2.3 KiB | text/x-c | CLexer
#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("/dev/sdc","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;
}