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.

6678加载GEL时出错



        在自己做的开发板上,除了时钟部分是由AD9516产生的100MHz的LVPECL标准的时钟,其余硬件设计基本和EVM6678一样

 下载程序时,在Target Configuration文件中给核配置了evmc6678l.gel文件。Debug过程中出现中断,显示了如下的提示信息:
C66xx_0: GEL Output: Setup_Memory_Map...
C66xx_0: GEL Output: Setup_Memory_Map... Done.
C66xx_0: GEL Output:
Connecting Target...
C66xx_0: GEL Output: DSP core #0
C66xx_0: GEL Output: C6678L GEL file Ver is 2.002
C66xx_0: GEL Output: Global Default Setup...
C66xx_0: GEL Output: Setup Cache...
C66xx_0: GEL Output: L1P = 32K
C66xx_0: GEL Output: L1D = 32K
C66xx_0: GEL Output: L2 = ALL SRAM
C66xx_0: GEL Output: Setup Cache... Done.
C66xx_0: GEL Output: Main PLL (PLL1) Setup ...
C66xx_0: GEL Output: PLL in Bypass ...
C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
C66xx_0: GEL Output: SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
C66xx_0: GEL Output: SYSCLK8 = 15.625 MHz.
C66xx_0: GEL Output: PLL1 Setup... Done.
C66xx_0: GEL Output: DSP core #64 cannot set PSC.
C66xx_0: GEL Output: PA PLL (PLL3) Setup ...
C66xx_0: GEL Output: DSP core #64 cannot set PA PLL
C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ...
C66xx_0: GEL Output: DSP core #64 cannot set DDR3 PLL
C66xx_0: GEL Output: DDR begin (1333 auto)
C66xx_0: GEL Output: XMC Setup ... Done
C66xx_0: GEL Output:
DDR3 initialization is complete.
C66xx_0: GEL Output: DDR done
C66xx_0: GEL Output: DDR3 memory test... Started
C66xx_0: GEL Output: DDR3 memory test... Failed
C66xx_0: GEL Output: Main PLL (PLL1) Setup ...
C66xx_0: GEL Output: DSP core #64 cannot set PLL1.
C66xx_0: GEL Output: Error in Setting up main PLL, please power cycle the board and re-run Global Default Setup...

     请问这可能是什么原因造成的?

  • 可以查一下PLL2和PLL3的inputclk是不是没有给进去

  • 我硬件上供了一个100MHZ的CORECLK,你指的PLL2和PLL3是什么,怎么看?

  • PLL1在PLL2和PLL3之前配置的,PLL1似乎就没配置成功,现在只能工作在默认的BYPASS模式下

  • PLL2即DDR3 PLL,输入应为66.65MHz,输出666.5MHz。这个配置不对,DDR3的test会失败。

    PLL3即PA PLL,是给network coprocesser提供时钟的,输入可以与MAIN PLL相同,即CORECLK:100MHz(或者独立提供一个PASSCLK时钟作为输入)。但输出应为1050MHz。这个暂时不用管。

  • 你的Main PLL也就是PLL1使用的是编译bypass模式肯定是不对的。那PLL模块的输出,也就是PLL controller的输入只有100MHz,而不是1000MHz。

    从你的打印结果看,首先出错的地方貌似是PSC模块使能。出错地方是GEL文件中的函数“Set_Psc_All_On”,原因是DNUM不为0。

    给一个正确的GEL执行结果作为参考:

    C66xx_0: GEL Output:
    Connecting Target...
    C66xx_0: GEL Output: DSP core #0
    C66xx_0: GEL Output: C6678L GEL file Ver is 1.0
    C66xx_0: GEL Output: Global Default Setup...
    C66xx_0: GEL Output: Setup Cache...
    C66xx_0: GEL Output: L1P = 32K
    C66xx_0: GEL Output: L1D = 32K
    C66xx_0: GEL Output: L2 = ALL SRAM
    C66xx_0: GEL Output: Setup Cache... Done.
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ...
    C66xx_0: GEL Output: PLL in Bypass ...
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output: SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output: SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: Power on all PSC modules and DSP domains...
    C66xx_0: GEL Output: Security Accelerator disabled!
    C66xx_0: GEL Output: Power on all PSC modules and DSP domains... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ...
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ...
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done
    C66xx_0: GEL Output:
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Passed
    C66xx_0: GEL Output: PLL and DDR Initialization completed(0) ...
    C66xx_0: GEL Output: configSGMIISerdes Setup... Begin
    C66xx_0: GEL Output:
    SGMII SERDES has been configured.
    C66xx_0: GEL Output: Enabling EDC ...
    C66xx_0: GEL Output: L1P error detection logic is enabled.
    C66xx_0: GEL Output: L2 error detection/correction logic is enabled.
    C66xx_0: GEL Output: MSMC error detection/correction logic is enabled.
    C66xx_0: GEL Output: Enabling EDC ...Done
    C66xx_0: GEL Output: Configuring CPSW ...
    C66xx_0: GEL Output: Configuring CPSW ...Done
    C66xx_0: GEL Output: Global Default Setup... Done.

  • PLL2和PLL3是有时钟输入的,应该没什么问题。如果是GEL中函数“Set_Psc_All_On”出问题,应该怎么改?我现在工作在100M BYPASS模式下,在CCS中不配置PLL,是可以跑简单的程序的,但一旦有PLL相关的配置,就立刻挂掉

  • PLL工作在BYPASS模式肯定不行。看看PLL控制寄存器中的值是否设置的正确。按理说gel文件中的配置不会有什么问题。但你要确保使用的gel文件和你的C6678芯片版本对的上。

  • 出错的根本原因不是函数Set_Psc_All_On,而是当你配置了Main PLL后,DNUM读出的处理器核编号都不对了,是64而不是0了。

    先解决PLL1工作在bypass模式的问题吧。这个解决了可能后面的都对了。

  • 我用的是EVM6678的GEL文件,应该没什么问题。DNUM值应该是硬件决定的吧,什么情况下会出错?现在关键只能工作在BYPASS,一旦配置PLL,在最后一步PLL使能的时候,就自动挂掉,不知道什么原因

  • 首先注意到,你在配置PLL前,DNUM的值是正确的。DNUM是corepac及寄存器。它出错很可能与Main PLL配置错误有关。

    所谓的"一旦配置PLL,在最后一步PLL使能的时候,就自动挂掉“具体是什么情况?

    只能再帮你猜一猜可能出错的情况:你的芯片型号,支持的CPU时钟是多少?GEL文件中默认的都是1000MHz的处理器。当输入为100MHz时,如果需要得到的PLL输出不是1000MHz,则需要修改其PLLM和PLLD的值来达到。

    如果还搞不清楚,可以先将Main PLL的输出降一半(你期望的是输出1000MHz,现在让它只输出500MHz)试试。具体方法是修改GEl文件中的PLLM为或者PLLD来实现。然后看看CPU是不是能正常初始化了。

    另外就是仔细检查PLL时钟管脚连接。

  •     我的DSP型号是写的TMS320C6678CYP YB20-2CZD4Y9,我试过调整GEL中的PLLM和PLLD,PLL输出配置成600M也是不行

       当在Target Configuration文件中给核配置任何.gel文件, 自动挂掉就是一直停在debug界面,输出信息C66xx_0: GEL Output: Error in Setting up main PLL, please power cycle the board and re-run Global Default Setup...,界面卡在OnTargetConnect( )

        当在Target Configuration文件中不给核配置任何.gel文件,Debug可以正常完成,但在运行时,程序中的核时钟配置程序也不能正常完成。程序前面一段可正常运行,在时钟配置即将完成时出现错误,提示信息如下:
    C66xx_0: Power Failure on Target CPU
    C66xx_0: Failed to remove the debug state from the target before disconnecting. There may still be breakpoint op-codes embedded in program memory. It is recommended that you reset the emulator before you connect and reload your program before you continue debugging

  • 您好,

    你们上述说的关于PLL及DDR3等的初始化测试,可以参考如下最新工程中的代码,如KeyStone_main_PLL_init及KeyStone_DDR_init,其中PLL的配置代码不需要修改,只需要根据你们板子设计给出输入时钟及PLLM/PLLD的值即可;DDR3初始化程序需要根据硬件设计及DDR选型输入到DDR3 spreadsheet中生成相应的参数再修改初始化代码中相应参数。

    Keystone1 memory test examples: http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/p/2622/82294.aspx#82294

    DDR3 spreadsheet:http://www.ti.com/litv/zip/sprabl2a, http://www.ti.com/lit/an/sprabl2a/sprabl2a.pdf

  • 谢谢你的回复,现在问题是加载GEL进入debug界面前就出错,具体信息如下:

    C66xx_0: GEL Output: Setup Cache... Done.
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ...
    C66xx_0: GEL Output: PLL in Bypass ...
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output: SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output: SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: DSP core #64 cannot set PSC.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ...
    C66xx_0: GEL Output: DSP core #64 cannot set PA PLL
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ...
    C66xx_0: GEL Output: DSP core #64 cannot set DDR3 PLL
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done
    C66xx_0: GEL Output:
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Failed
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ...
    C66xx_0: GEL Output: DSP core #64 cannot set PLL1.
    C66xx_0: GEL Output: Error in Setting up main PLL, please power cycle the board and re-run Global Default Setup...

    貌似KeyStone程序中PLL及DDR3初始化程序出错的可能性不大。

  • 请问查出是什么原因导致的吗,貌似是硬件问题,如何解决的呢?