This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6455烧写问题

我的6455 flash为S29AL032D,烧写开始都很正常,但是烧写到0Xb0080000,貌似就烧写不进去,数据一会全都变成A4E4A4E4A4E4…………过一会以前写的数据又全部都出现而且跟原来的一模一样。我每次只写一个字节。

  • 你好,建议先直接读写0Xb0080000地址,单步调试读写指令,看看这个地方是什么问题。

  • 你好,从0XB0080000开始读写写到0XB0100000就在那里死循环,出现一会正常数据一会全变成A4E4A4E4……,跟刚才一样

  • 你好,从0xB0000000写到0xB0080000就死循环,从0xB0080000写到0xB0100000就死循环,从0xB0100000写到0xB0180000就死循环,从0xB0180000写到0xB0280000就死循环,是不是这第19根地址线有问题??????

  • 你好,似乎不是第19跟地址线的问题,这个你可以单独测试一下这根地址线的数据。请检查一下EMIF的配置与你的板子硬件,是否有错误的地方。

  • 你好,我的板子上有两片DSP,分别为6455和5416,6455为Master,通过EMIF与5416交互数据,6455上地址线A0-A18接到5416上的A0-A18,6455上的EMIF口还挂了FLASH芯片,6455上的A0-A19接到了FLASH上的A2-A21,A0-A1接到了6455上的ABA0-ABA1,现在的5416不使用,一直处于复位状态(/RS一直低电平)。我有两块一模一样的板子,但是有一块5416被扣掉了,这块板子烧写是正常的,没有扣掉5416的这块板子烧写不正常(烧写方法是一样的),我想问的是是不是这个5416搞的鬼?

  • 根据你的描述,因为地址线A0-A18接到5416上的A0-A18,而这部分地址读写也是没问题的。请先用示波器测量一下A19地址线上的信号,在程序运行中是否正常?

  • 你好,刚才说的有点问题,详细链接情况见附图,没焊上5416时烧写没问题。焊上5416时烧写没问题,不知道哪里的问题

  • 我通过循环测试写地址

    while(1)
        {
            Flash_WriteByte((unsigned char *)0xb007FFFF,0x11);
            Flash_WriteByte((unsigned char *)0xb0080000,0x22);
            Flash_WriteByte((unsigned char *)0xb0080001,0x33);

        }

    写的是正常的。

    while(1)
        {
            Flash_WriteByte((unsigned char *)0xb0000000,0x11);
            Flash_WriteByte((unsigned char *)0xb0080000,0x11);

        }

    写的也是正常,地址线19是正常变化。

    我还特意写了一个非常小的闪灯程序,也就能到0xb0004000,两个都说写完了,但是一个板子跑起来正常,另一个不正常。

  • 你好,

    首先根据你的描述,两块相同的板子,同样的程序在一个板子正常,在另一个板子出问题,说明问题不在程序这里,而在硬件这里。

    其次看硬件问题,单步运行时候并没有问题读写都正常,而连续操作时候出问题。这个问题很奇怪。

    是否可以用逻辑分析仪或者示波器查看一下出问题时候EMIF信号线的波形情况呢?是否是信号不稳定引起的?

  • 都扣掉5416就好了,不知道啥问题,反正不是我的板子,哈哈