打印
[DSP编程]

FLASH的问题

[复制链接]
982|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangch_sh|  楼主 | 2014-10-20 12:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
wangch_sh|  楼主 | 2014-10-20 12:41 | 只看该作者
现在CPLD说明:

使用特权

评论回复
板凳
wangch_sh|  楼主 | 2014-10-20 12:44 | 只看该作者
原来板子上高位地址线是FA13-FA18
现在板子上高位地址线是FA14-FA19
原理图上原来用的是FA13-FA18
现在的用的是FA14-FA19,两者是等价的。
Uint16 Flash_Erase_all()  //AM29LV800芯片擦除
{
    Flash_CS();

        deminaddr = (int *)CESECT1;
        addbias = 0x0555;
        *(deminaddr+addbias) = 0x00aa;
        addbias = 0x02aa;
        *(deminaddr+addbias) = 0x0055;
        addbias = 0x0555;
        *(deminaddr+addbias) = 0x0080;
        addbias = 0x0555;
        *(deminaddr+addbias) = 0x00aa;
        addbias = 0x02aa;
        *(deminaddr+addbias) = 0x0055;
        addbias = 0x0555;
        *(deminaddr+addbias) = 0x0010;
        delay(100);
        fstatus = *(deminaddr+addbias);
        fstatus &= 0x0040;
        fstatus2 = *(deminaddr+addbias);
        if((fstatus&fstatus2)!=0)
        {
                Flash_disCS();
                return 0;
        }
        else
        {
                while(fstatus!=0x00ff)
            {
                        ddelay(500);
                        //ddelay(500);
                        //ddelay(500);
                        fstatus = *(deminaddr+addbias);
                        fstatus &= 0x00ff;
            }
                Flash_disCS();
                return 1;
        }
}

使用特权

评论回复
地板
wangch_sh|  楼主 | 2014-10-20 12:47 | 只看该作者
还有一点,原来FA13是在寄存器的最低位,
现在FA14是在寄存器的第二位。
比如,addbias = 0x0555;
        *(deminaddr+addbias) = 0x00aa;
这两句,我该如何改呢?谢谢!
还有
fstatus = *(deminaddr+addbias);
        fstatus &= 0x0040;
        fstatus2 = *(deminaddr+addbias);
        if((fstatus&fstatus2)!=0)
这几句。

使用特权

评论回复
5
wangch_sh|  楼主 | 2014-10-20 15:34 | 只看该作者
deminaddr = (int *)CESECT1;
        addbias = 0x0555;
        *(deminaddr+addbias) = 0x00aa;
这儿怎么又CESECT1了?CESECT1  0X200000

使用特权

评论回复
6
大秦正声| | 2014-10-20 19:05 | 只看该作者
wangch_sh 发表于 2014-10-20 15:34
deminaddr = (int *)CESECT1;
        addbias = 0x0555;
        *(deminaddr+addbias) = 0x00aa;

(int *)(0X200000+0x0555)=0x00aa;

使用特权

评论回复
7
wangch_sh|  楼主 | 2014-10-20 19:44 | 只看该作者
是不是flash被分配到0x200000空间了吗?

使用特权

评论回复
8
大秦正声| | 2014-10-22 11:25 | 只看该作者
wangch_sh 发表于 2014-10-20 19:44
是不是flash被分配到0x200000空间了吗?

估计和三八译码器类似的!
地址分配需要看芯片手册的!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

318

主题

2817

帖子

5

粉丝