OpenEdv-开源电子网

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

nandflash复位数据丢失

[复制链接]

55

主题

474

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2374
金钱
2374
注册时间
2017-8-7
在线时间
207 小时
发表于 2018-3-22 14:16:20 | 显示全部楼层 |阅读模式
我用nanflasj存储图片,地址没有错误,问题出现在一个函数上面,是块擦除函数,不用这个函数,存储的数据在断电就不丢失,一旦用了块擦除后,在上电数据就全没了,求解
qq1950361006,互帮互助,共同进步。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

55

主题

474

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2374
金钱
2374
注册时间
2017-8-7
在线时间
207 小时
 楼主| 发表于 2018-3-22 14:25:27 | 显示全部楼层
u8 NAND_EraseBlock(u32 BlockNum)
{
        if(nand_dev.id==MT29F16G08ABABA)BlockNum<<=7;          //&#189;&#171;&#191;éμ&#216;&#214;·×a&#187;&#187;&#206;aò3μ&#216;&#214;·
    else if(nand_dev.id==MT29F4G08ABADA)BlockNum<<=6;
    *(vu8*)(NAND_ADDRESS|NAND_CMD)=NAND_ERASE0;
    //·¢&#203;í&#191;éμ&#216;&#214;·
    *(vu8*)(NAND_ADDRESS|NAND_ADDR)=(u8)BlockNum;
    *(vu8*)(NAND_ADDRESS|NAND_ADDR)=(u8)(BlockNum>>8);
    *(vu8*)(NAND_ADDRESS|NAND_ADDR)=(u8)(BlockNum>>16);
    *(vu8*)(NAND_ADDRESS|NAND_CMD)=NAND_ERASE1;
        if(NAND_WaitForReady()!=NSTA_READY)return NSTA_ERROR;//ê§°ü
    return 0;        //3é1|   
}

我感觉是擦除有问题,我在仔细看看吧,测试测试是怎么回事
qq1950361006,互帮互助,共同进步。
回复 支持 反对

使用道具 举报

55

主题

474

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2374
金钱
2374
注册时间
2017-8-7
在线时间
207 小时
 楼主| 发表于 2018-3-22 16:08:43 | 显示全部楼层
经过测试,我认为是这个函数有问题,擦除的块不是我想擦除的那些,地址跑飞,但是又不知道怎么改正过来,笑cry,这可难了
qq1950361006,互帮互助,共同进步。
回复 支持 反对

使用道具 举报

55

主题

474

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2374
金钱
2374
注册时间
2017-8-7
在线时间
207 小时
 楼主| 发表于 2018-3-22 16:47:28 | 显示全部楼层
最近测试,写了n多张图片,在很多block中,不进行块擦除,复位,在看图还在,,,然后通过安检控制,擦除某一个块,然后复位,看图,全部消失,所以是不是可以证明了擦除块就擦除全盘了,但是我确认无误用的是块擦除函数。。。
qq1950361006,互帮互助,共同进步。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 04:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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