主题 : 对于mini2440的裸机程序中的sd卡驱动 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 43836
精华: 0
发帖: 20
金钱: 100 两
威望: 20 点
综合积分: 40 分
注册时间: 2011-04-20
最后登录: 2012-01-13
楼主  发表于: 2011-05-03 21:04

 对于mini2440的裸机程序中的sd卡驱动

对于mini2440的sd卡裸机驱动,我的疑惑主要有两点:
1这个驱动和ARM7的sd卡驱动不太一样,sd卡驱动在读写数据的时候,起码要指定(地址+要写入的数据),当然这个地址可以用块号表示,也就是(块号+*buffer),但是在这个2440里面的这个block我就不是很明白了,它是指定要写入的块的数量,但是并没有指定要写入哪个块啊????
2还有一点不明白的就是
while(wt_cnt < 128 * block)
        {
            status = rSDIFSTA;           //读取FIFO状态寄存器
            if((status & 0x2000) == 0x2000) //FIFO available Detect for Tx,应该是侦测到数据就置1
            {
                rSDIDAT = *Tx_buffer++;  //这个寄存器是用来存放发送和接收数据的中间站,所以缓冲区可以设置为形参
                wt_cnt++;                //
                //Uart_Printf("Block No.=%d, wt_cnt=%d\n",block,wt_cnt);
            }
        }
        break;
为什么要while(wt_cnt < 128 * block)
这个语句什么意思,不明白???
级别: 新手上路
UID: 32814
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2010-11-21
最后登录: 2013-11-18
1楼  发表于: 2011-06-13 02:28
每次写入一个字 1block=512bytes 所以128*block
嵌入式,求解脱
级别: 新手上路
UID: 80377
精华: 0
发帖: 34
金钱: 175 两
威望: 35 点
综合积分: 68 分
注册时间: 2012-10-23
最后登录: 2015-05-23
2楼  发表于: 2013-03-18 13:13
我把4G的SD卡插入,提示初始化失败,no accesion。