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.

C6670用IBL启动后不正常!

你好,我用6670EVM遇到个问题,开发的多核程序用仿真器运行都是正确的,通过I2C的IBL启动后,功能不正常。

通过调试后发现共享内存不能正常操作,就是core0写了一个地址,在core1不能读到正确的值。已经排除了Cache Coherence的问题,因为我已经write back和invalid了。就是不知道为什么?!

仿真器用的GEL文件与IBL初始化有什么不一样?

  • 首先还是要请确认一下cache一致性问题,你可以在写完后在本核读回来,另外一个核去读,两组数据比较,如果不一样说明是cache的问题。你操作的共享区间是SL2还是DDR3,如果是DDR3的话请确认DDR3有初始化,因为在gel中是有对DDR3初始化的。

  • 谢谢Andy,我用的是SL2(MSMC SRAM),不是DDR3。这片内存应该不需要初始化,可以直接使用吧!目前,我把L2 cache都配成SRAM了,SL2应该只是经过L1cache了吧,如果是cache一致性问题,难道用write back和invalid指令还不行吗?

    还有我看到,gel文件中有个 Set_Psc_All_On,是不是需要在IBL中控制SL2的上电?

  • 有哪位大侠知道是什么原因呀!

    我在core0的程序中写DDR3的地址,0x80000000,通过IBL启动后,用仿真器连接后(bootmode=I2c),该地址没有变!感觉用IBL启动后,共享内存和DDR3都不能正常读写,是什么原因呢?