#include #include #include FILE* sdcardimg; 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) { 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) { 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.bin","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; printf("sdcard opened\n"); }