文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>基于ARM含SD控制器的SD卡的SDIO模式..

基于ARM含SD控制器的SD卡的SDIO模式..

时间:2010-10-29  来源:alex_decimal

代码如下:

int SD_card_init(void)

{

RECMD2:

rSDICARG=0x0;                     

rSDICCON=(0x1<<10)|(0x1<<9)|(0x1<<8)|0x42; 

//lng_resp, wait_resp, start, CMD2

if(!Chk_CMDend(2, 1))                //查询反馈是否正确

goto RECMD2;

RECMD3:

rSDICARG=MMC<<16;                        

// CMD3(MMC:Set RCA, SD:Ask RCA-->SBZ)

rSDICCON=(0x1<<9)|(0x1<<8)|0x43;          

// sht_resp, wait_resp, start, CMD3

goto RECMD3;

RCA=( rSDIRSP0 & 0xffff0000 )>>16;

if( rSDIRSP0 & 0x1e00!=0x600 )           

goto RECMD3;

rSDIPRE=PCLK/(2*NORCLK)-1;                    

// 设置高速时钟Normal clock="25MHz"

}

void Set_4bit_bus(void)

{

}

void SetBus(void)

{

SET_BUS:

// Make ACMD

}

4.2SD卡的读与写

读写就是正反向的问题,这里只分析读

步骤:1)读单block CMD17 多block CMD18

程序如下:采用DMA模式

void Rd_Block(void)

{

RERDCMD:

//auto-reload off, word, 128blk*num

//no-stop, DMA2 channel on, no-sw trigger

RERCMD12:   

}

4.3上面用到的响应判断函数

主要完成对反馈状态的分析。

函数如下:

int Chk_CMDend(int cmd, int be_resp)         //指令反馈判断函数

{

}

int Chk_DATend(void)

{

}

int Chk_BUSYend(void)              //数据反馈判断函数

{

IDSTA=0xf4;         //clear error state

}

相关阅读 更多 +
排行榜 更多 +
我狙击打的贼准

我狙击打的贼准

飞行射击 下载
枪战突击

枪战突击

飞行射击 下载
其乐无穷

其乐无穷

飞行射击 下载