OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6489|回复: 2

使用UCOS-II SD卡读取数据写不到动态分配的内存中

[复制链接]

42

主题

358

帖子

0

精华

高级会员

Rank: 4

积分
889
金钱
889
注册时间
2014-8-16
在线时间
193 小时
发表于 2015-4-30 14:40:48 | 显示全部楼层 |阅读模式
5金钱
在sd卡任务中,动态分配了512字节的区域
然后让扇区0的数据写入,输出全是0
但是直接定义512字节的数组就能写进去
这是怎么回事 
我每进入一个函数都输出buff的地址,地址都没有变,数据就是写不进去
可以保证操作SD的时候没有对buff的地址发送误操作

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-4-30 15:29:21 | 显示全部楼层
看一下你的内存申请成功了没有
开往春天的手扶拖拉机
回复

使用道具 举报

42

主题

358

帖子

0

精华

高级会员

Rank: 4

积分
889
金钱
889
注册时间
2014-8-16
在线时间
193 小时
 楼主| 发表于 2015-4-30 19:37:06 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
我现在找出了点眉目
我用了一个任务 代码是这样的
void SDIO_TASK(void *pdata)
{
    u8 *buf = my_malloc(512);
    u16 i;
    while(1)
    {
        SD_ReadDisk(buf,0,1);
        for(i=0;i<512;i++)
        {
            printf("%2x ",buf);
            if((i+1)%32==0)
                printf("\r\n");
        }
        delay_ms(500);
    }
}
这样 出来的数据全是0 内存分配没问题 好像问题是在ReadDisk上 系统正常跑。
如果
SD_ReadDisk(buf,8192,1);
SD_ReadDisk返回错误2 
然后SDIO_TASK这个任务不执行延时,UCOS也不任务调度。就死在了这个任务上。我现在都该不懂这是情况了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 14:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表