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.

关于nandflash 0x70000000开始处的值跳动问题



DSP的emif上连了一块nandflash,用的是cs2,不管程序执行到哪一步从0x70000000处开始到0x7FFFFFFF处的值都在跳动,单步调试时每一步都在跳动,相同的程序在开发板上运行就没有问题,怀疑是nandflash的问题但是不知道怎么测试nandflash,麻烦了解情况的朋友告知下,万分感谢

  • 把nandflash吹掉,运行普通简单程序,看看emif接口上是否还有电平跳动

  • HG 说:

    把nandflash吹掉,运行普通简单程序,看看emif接口上是否还有电平跳动

    解决了,是emif的原因,谢谢

  • 请问具体是EMIF的软件配置原因还是硬件方面的问题?

  • Shine Zhang 说:

    请问具体是EMIF的软�配置原因还是硬件方面的问题?

    是软件方面的原因,emif和FPGA连着,FPGA写数据,我调试的时候没有注意这个问题,后来改了下FPGA程序就好了,现在有一个问题是当我把cmd文件里section都指向ddr3的时候,程序会卡在一个for循环的地方,之前指向l2sram的时候没有问题,cmd文件内容和for循环在下面,希望能告知这是什么原因

    cmd文件内容

    MEMORY
    {
    L1PSRAM (RWX) : org = 0x0E00000, len = 0x7FFF
    L1DSRAM (RWX) : org = 0x0F00000, len = 0x7FFF

    L2SRAM (RWX) : org = 0x0820000, len = 0xe0000
    MSMCSRAM (RWX) : org = 0xc000000, len = 0x200000
    DDR3 (RWX) : org = 0x80000000,len = 0x10000000
    }

    SECTIONS
    {
    .csl_vect > DDR3
    .cppi > DDR3
    .linkram > DDR3
    .mac_buffer > DDR3
    platform_lib > DDR3
    .text > DDR3
    GROUP (NEAR_DP)
    {
    .neardata
    .rodata
    .bss
    } load > DDR3
    .stack > DDR3
    .cinit > DDR3
    .cio > DDR3
    .const > DDR3
    .data > DDR3
    .switch > DDR3
    .sysmem > DDR3
    .far > DDR3
    .testMem > DDR3
    .fardata > DDR3
    }

    for循环

    Platform_STATUS platform_delay(uint32_t usecs)
    {
    int i=0;
    // int32_t delayCount = (int32_t) usecs *platform_mcb.frequency;
    // int32_t start_val = (int32_t) CSL_chipReadTSCL();
    //
    // while (((int32_t)CSL_chipReadTSCL() - start_val) < delayCount);
    for(i=0;i<usecs*2000;i++)
    {
    }

    return Platform_EOK;
    }

  • 问题已解决,其实不是程序卡在for循环处,而是因为程序正在执行,造成这种情况的原因是ddr3的速度要远小于L2RAM,程序虽然正在执行,却造成一种卡在for循环处的假象