📄 ata_init_mmcsd.c
字号:
/*
DM270 ARM Evaluation Software
(c)Texas Instruments 2003
*/
#include <fileio/ata_init.h>
#include <ata_media.h>
#include <system/clkc270.h>
#include <mmcsd_evm270.h>
#include <mmcsd_protocol.h>
#pragma DATA_SECTION( mmcsdDrive, "ata_buf" )
AtaState *mmcsdDrive;
#pragma DATA_SECTION( state, "ata_buf" )
static AtaState state;
#pragma DATA_SECTION( MMCSDState, "ata_buf" )
static AtaMEDIAState MMCSDState;
MMCSD_ConfigData mmcsdConfig = {
MMCSD_LITTLE_ENDIAN, // write Endian
MMCSD_LITTLE_ENDIAN, // read Endian
MMCSD_DAT3_DISABLE,
FALSE, // SpiModeEnable
FALSE, // csEnable
FALSE, // spiCrcEnable
MMCSD_DATA_BUS_1, // data bus width
0xFF, // response timeout
0 // data read timeout
};
static Uint32 relCardAddr = 2;
static MMCSD_cardStatusReg cardStatus;
int MMCSD_deviceInit() {
Uint32 fnClkRtDiv, mmcClkRtDiv;
STATUS stat;
stat = MMCSD_initCard( &relCardAddr, &cardStatus, &mmcsdConfig );
if(stat!=E_PASS)
return ( stat );
fnClkRtDiv =2;
mmcClkRtDiv=1;
MMCSD_setClock( TRUE, fnClkRtDiv-1, mmcClkRtDiv-1);
if( cardStatus.multiMediaCard == FALSE){
// SD card, set bus width to 4 lines
stat = SD_setBusWidth( relCardAddr, 2, MMCSD_OP_TIMEOUT );
if(stat!=E_PASS)
return ( stat );
}
return E_PASS;
}
STATUS MMCSD_ataInit() {
AtaError error = ATA_ERROR_NONE;
mmcsdDrive=NULL;
/*SUMMCSDIT - Adding init code for ATA-FS*/
MMCSDState.BufR = BufR;
MMCSDState.BufFat = BufFAT;
MMCSDState.FAT_CACHE_ENABLE = 1;
MMCSDState.BufDataR = BufDATAR;
MMCSDState.BufDataWR = BufDATAWR;
MMCSDState.RBufSize = 32;
MMCSDState.WRBufSize = 32;
MMCSDState.detect = MMCSD_deviceInit;
MMCSDState.init = MMCSD_deviceInit;
MMCSDState.readNSector = MMCSD_readNSector;
MMCSDState.writeNSector = MMCSD_writeNSector;
/*SUSMIT - Adding init code for ATA-FS*/
state.AtaInitAtaMediaState=MEDIA_initState;
state.pAtaMediaState=&MMCSDState;
state.AtaInitAtaMediaState(&state);
state._AtaWriteBuffer = _AtaWriteBuffer;
state.get_date = get_date;
state.get_time = get_time;
state.get_mod_date = get_mod_date;
state.get_mod_time = get_mod_time;
error = ATA_systemInit(&state);
if(error)
return E_DEVICE;
ATA_enableMFW(&state);
MEDIA_FAT_cacheInit(state.pAtaMediaState);
mmcsdDrive=&state;
return E_PASS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -