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.

pcie例程运行错误



将K2的PCIE的例程加载到自己的板子上6630的板子上,加载core0或是core1的时候,运行的时候没有输出,同时将PCIE.OUT加载到core0和core1,也不行。如图:

1、请问这是内存配置不对吗?

2、我用的是自己的板子6630,通过ARM来激活让DSP核跑起来,从图中可以看出是通过flash 来boot,而例程要求是no boot,是不是因为这个原因导致的?如果是,怎么修改将例程配置为 nand flash 启动?

3、将同一个PCIE.out同时加载到core0和core1,程序是怎么自己识别内核的不同,然后修改设备号device0和device1,然后core0为RC,core1为EP?  是否要修改例程,分别修改为RC和EP,然后在编译分别加载到core0和core1?

  • 已经根据板子的时钟,将dsp core的时钟改为1200MHz,所以应该不是时钟问题
  • 要将开发板上的Boot Configuration Pins改成no boot模式。您是买的evm板吗?
  • 不是evm板,是自己做的板子,dsp是ARM的操作系统通过flash启动的!

    请问,可不可以修改例程,改为为NAND FLASH boot mode?

  • 问题解决了吗?你试一下从ccs->script->GlobalDefaultSetup一下,再load程序看能不能输出。
  • 您好!刚刚试了一下  Global default setup还是不行,应该是跟ARM配置发生了冲突…

  • Nancy Wang您好!问题没有解决哦。我按您说的方法试了还是不行。我试了一下几个步骤,但例程还是没有正常运行,您能帮我分析分析吗?如下:
    1、通过设置断点单步运行,程序卡在DDR_test这个函数的位置,我觉的应该是因为ARM上的操作系统就跑DDR3上,运行DDR_test的时候把操作系统的空间给摸去了。所以我就注释掉DDR_test不执行了。
    2、注释掉DDR_test之后再单步调试,程序运行到serdes_initial有卡死了,跳进去看是因为serdes的PLL一直没有锁定,如下图。所以一直卡在那里。为什么serdes的PLL没法锁定啊?什么原因导致的呢?怎么配置serdes的PLL呢?
    3、我注视点serdes的PLL锁定检测等待函数,跳过之后(即默认serdes的PLL是锁定的),又在PCIe link train 这个地方停了,意思就是PCIe链接训练没有完成,链接失败了(这是在LOOPBACK模式下,单个核的RC模式下),这是不是因为实际上serdes的PLL没有锁定?
    4、core0做RC,core1做EP,同样没有成功........
    能帮分析一下什么原因吗?