[DSP编程] FLASH的问题

[复制链接]
 楼主| wangch_sh 发表于 2014-10-20 12:25 | 显示全部楼层 |阅读模式
我的5509板子扩展了一片FLASH,用到了CPLD。
是仿照一块开发板仿制的。
原来的CPLD说明是这样的:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 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)
这几句。
 楼主| wangch_sh 发表于 2014-10-20 15:34 | 显示全部楼层
deminaddr = (int *)CESECT1;
        addbias = 0x0555;
        *(deminaddr+addbias) = 0x00aa;
这儿怎么又CESECT1了?CESECT1  0X200000
大秦正声 发表于 2014-10-20 19:05 | 显示全部楼层
wangch_sh 发表于 2014-10-20 15:34
deminaddr = (int *)CESECT1;
        addbias = 0x0555;
        *(deminaddr+addbias) = 0x00aa;

(int *)(0X200000+0x0555)=0x00aa;
 楼主| wangch_sh 发表于 2014-10-20 19:44 | 显示全部楼层
是不是flash被分配到0x200000空间了吗?
大秦正声 发表于 2014-10-22 11:25 | 显示全部楼层
wangch_sh 发表于 2014-10-20 19:44
是不是flash被分配到0x200000空间了吗?

估计和三八译码器类似的!
地址分配需要看芯片手册的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

318

主题

2817

帖子

5

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