Subversion Repositories NaviCtrl

Rev

Rev 450 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef _SDC_H
#define _SDC_H


//________________________________________________________________________________________________________________________________________
//
// Functions needed for accessing the sdcard.
//                             
//________________________________________________________________________________________________________________________________________

typedef enum
{
  SD_SUCCESS = 0,
  SD_ERROR_NOCARD,
  SD_ERROR_RESET,
  SD_ERROR_INITIALIZE,
  SD_ERROR_BAD_RESPONSE,
  SD_ERROR_BAD_VOLTAGE_RANGE,
  SD_ERROR_NO_SDCARD,
  SD_ERROR_TIMEOUT,
  SD_ERROR_CRC_DATA,
  SD_ERROR_WRITE_DATA,
  SD_ERROR_READ_DATA,
  SD_ERROR_SET_BLOCKLEN,
  SD_ERROR_UNKNOWN
} SD_Result_t;

SD_Result_t     SDC_Init(unsigned char print);
SD_Result_t SDC_GetSector (u32 ,u8 *);
SD_Result_t     SDC_PutSector (u32, const u8 *);
SD_Result_t     SDC_Deinit(void);

typedef enum
{
        VER_UNKNOWN,
        VER_1X,
        VER_20
} SDVersion_t;

typedef struct
{
  u8 Valid;
  SDVersion_t Version;  // HW-Version
  u32 Capacity;                 // Memory capacity  in bytes
  u8 CID[16];                   // CID register
  u8 CSD[16];                   // CSD register
} __attribute__((packed)) SDCardInfo_t;

extern volatile SDCardInfo_t SDCardInfo;
extern u8 SDCardWriteRetryCounterMax;

#endif // _SDC_H