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.

[Hyperlink]STK_例程问题

  • [C66xx_0] Initialize DSP main clock = 100.00MHz/1x10 = 1000MHz
    [C66xx_1] Initialize DSP main clock = 100.00MHz/1x10 = 1000MHz
    [C66xx_0] DDR3 leveling has failed, STATUS = 0xc0000074
    [C66xx_1] DDR3 leveling has failed, STATUS = 0xc0000074
    [C66xx_0] Memory pattern filling Test fails at 0x80000000, Write 0x 0, Readback 0x 40000000000000
    Memory pattern filling Test fails at 0x80000010, Write 0x 0, Readback 0x 40000000000000
    Memory pattern filling Test fails at 0x800000d0, Write 0x 0, Readback 0xff00000000000000
    Memory pattern filling Test fails at 0x800000d8, Write 0x 0, Readback 0xff00000000000000
    Memory pattern filling Test fails at 0x800000e0, Write 0x 0, Readback 0xff00000000000000
    Memory pattern filling Test fails at 0x800000e8, Write 0x 0, Readback 0xff00000000000000
    Memory pattern filling Test fails at 0x800000f0, Write 0x 0, Readback 0xff00000000000000
    Memory pattern filling Test fails at 0x800000f8, Write 0x 0, Readback 0xff00000000000000
    [C66xx_1] Memory pattern filling Test fails at 0x80000000, Write 0x 0, Readback 0x559f000000000000
    Memory pattern filling Test fails at 0x80000010, Write 0x 0, Readback 0x2020000000000000
    Memory pattern filling Test fails at 0x80000080, Write 0x 0, Readback 0x 40140200000000
    [C66xx_0] Memory pattern filling Test fails at 0x80000000, Write 0xffffffffffffffff, Readback 0x ffffffff
    Memory pattern filling Test fails at 0x80000008, Write 0xffffffffffffffff, Readback 0x ffffffff
    Memory pattern filling Test fails at 0x80000010, Write 0xffffffffffffffff, Readback 0x ffffffff
    Memory pattern filling Test fails at 0x80000018, Write 0xffffffffffffffff, Readback 0x ffffffff
    Memory pattern filling Test fails at 0x80000020, Write 0xffffffffffffffff, Readback 0x ffffffff
    Memory pattern filling Test fails at 0x80000028, Write 0xffffffffffffffff, Readback 0x ffffffff
    Memory pattern filling Test fails at 0x80000030, Write 0xffffffffffffffff, Readback 0x ffffffff
    Memory pattern filling Test fails at 0x80000038, Write 0xffffffffffffffff, Readback 0xdfffffffffffffff
    [C66xx_1] Memory pattern filling Test fails at 0x80000080, Write 0xffffffffffffffff, Readback 0x ffffffffffffff
    Memory pattern filling Test fails at 0x80000088, Write 0xffffffffffffffff, Readback 0x ffffffffffffff
    Memory pattern filling Test fails at 0x80000090, Write 0xffffffffffffffff, Readback 0x ffffffffffffff
    Memory pattern filling Test fails at 0x80000098, Write 0xffffffffffffffff, Readback 0x ffffffffffffff
    Memory pattern filling Test fails at 0x800000a0, Write 0xffffffffffffffff, Readback 0x ffffffffffffff
    Memory pattern filling Test fails at 0x800000a8, Write 0xffffffffffffffff, Readback 0x ffffffffffffff
    Memory pattern filling Test fails at 0x800000b0, Write 0xffffffffffffffff, Readback 0x ffffffffffffff
    Memory pattern filling Test fails at 0x800000b8, Write 0xffffffffffffffff, Readback 0xdfffffffffffffff
  • 用一块板子 同时用0核与1核跑STK的例程 没有任何修改 但是遇到了DDR初始化失败的问题
    请问这是什么情况?应该怎么解决?
  • 是自制板吗?leveling失败建议根据自制板的硬件情况重新计算确认一下DDR参数部分,参考Keystone I DDR3 Initialization:
    www.ti.com.cn/.../sprabl2e.pdf
  • 板子型号是 TMDXEVM6678L
  • 将STK例程中KeyStone_DDR_init 初始化DDR的函数注释,直接使用GEL文件初始化,再执行程序试一下。
  • 我想再问下怎么使用gel文件进行初始化?

  • 一般在创建.ccxml文件时,target configuration选项中会提示导入初始化脚本,在对应的选项中选择GEL文件就可以了。

  • 你好 我导出初始化脚本后 consle窗口报出这个错误

    Error while executing StartUp( 6, 2, 0, 1631 ): Could not write 0x00800000: target is not connected
    at *((int *) 0x00800000)=0x0001E000 [tisim_init_c6678_cx.gel:40]
    at load_idle_instr_at_ISTP() [tisim_init_c6678_cx.gel:19]
    at StartUp(6, 2, 0, 1631)

  • 请大概描述一下您的操作步骤以及使用的GEL文件。是自制板吗?之前没有通过GEL文件初始化过板子吗?

  • 注* 板子型号是 TMDXEVM6678L,之前没有使用过gel文件初始化。

    1.新建ccxml文件,选择XDS100V1-TMS32C6678

    2.在Advanced窗口中,添加初始化脚本。初始化脚本来自..\..\simulation_keystone1\env\ccs\import\tisim_init_c6678_cx.gel

    3.注释掉DDR初始化的程序后编译,进入DEBUG界面出现如图所示的红色错误,查看gel file窗口可以看到success状态

    4.运行Hyperlink例程后,执行HyperLink_integrity_Test()函数,

    Core1 LL2:HyperLink_Mem_Test(0x41800000, 0x0080000, 0x10000)执行顺利 HyperLink memory test passed at address 0x41800000

    SL2: HyperLink_Mem_Test(0x4C100000, 0x0100000, 0x10000)执行顺利 HyperLink memory test passed at address 0x4c100000

    DDR:HyperLink_Mem_Test(0x48000000, 0x1000000, 0x10000)报错如下

    Data pattern Test fails at 0x48000000, Write 0xaaaaaaaaaaaaaaaa, Readback 0x 0
    Data pattern Test fails at 0x48000000, Write 0x5555555555555555, Readback 0x 0
    Data pattern Test fails at 0x48000008, Write 0xaaaaaaaaaaaaaaaa, Readback 0x 1000100000000
    Data pattern Test fails at 0x48000008, Write 0x5555555555555555, Readback 0x 0
    Data pattern Test fails at 0x48000010, Write 0xaaaaaaaaaaaaaaaa, Readback 0x 0
    Data pattern Test fails at 0x48000010, Write 0x5555555555555555, Readback 0x ff00ff
    Data pattern Test fails at 0x48000018, Write 0xaaaaaaaaaaaaaaaa, Readback 0x 0
    Data pattern Test fails at 0x48000018, Write 0x5555555555555555, Readback 0x 1000100010001

    ...

    Data bit walking Test fails at 0x480000e0, Write 0x 1, Readback 0x 1000100010001
    Data bit walking Test fails at 0x480000e0, Write 0xfffffffffffffffe, Readback 0x 0
    Data bit walking Test fails at 0x480000e8, Write 0x 1, Readback 0x ff00ff00ff00ff
    Data bit walking Test fails at 0x480000e8, Write 0xfffffffffffffffe, Readback 0x ff00ff
    Data bit walking Test fails at 0x480000f0, Write 0x 1, Readback 0x 1000100010001
    Data bit walking Test fails at 0x480000f0, Write 0xfffffffffffffffe, Readback 0x 0
    Data bit walking Test fails at 0x480000f8, Write 0x 1, Readback 0x ff00ff00ff00ff

    ...

    Address bit walking Test fails at 0x48fffffc, Readback 0x 0 from the last data unit
    Address bit walking Test fails at 0x48fffff8, Readback 0x 0 from the last data unit
    Address bit walking Test fails at 0x48fffff4, Readback 0x 0 from the last data unit
    Address bit walking Test fails at 0x48ffffec, Readback 0x 0 from the last data unit
    Address bit walking Test fails at 0x48ffffdc, Readback 0x 0 from the last data unit
    Address bit walking Test fails at 0x48ffffbc, Readback 0x 0 from the last data unit
    Address bit walking Test fails at 0x48ffff7c, Readback 0x 0 from the last data unit
    Address bit walking Test fails at 0x48fffefc, Readback 0x 0 from the last data unit
    Address bit walking Test fails at 0x48fffdfc, Readback 0x 0 from the last data unit
    Address bit walking Test fails at 0x48fffbfc, Readback 0x 0 from the last data unit

    ...

    Memory pattern filling Test fails at 0x48000018, Write 0x 0, Readback 0x ff00ff00ff00ff
    Memory pattern filling Test fails at 0x48000038, Write 0x 0, Readback 0x ff00ff
    Memory pattern filling Test fails at 0x48000040, Write 0x 0, Readback 0x ff00ff00ff00ff
    Memory pattern filling Test fails at 0x48000090, Write 0x 0, Readback 0x ff00ff00ff00ff
    Memory pattern filling Test fails at 0x480000a0, Write 0x 0, Readback 0x ff00ff00ff00ff
    Memory pattern filling Test fails at 0x480000e0, Write 0x 0, Readback 0x ff00ff00ff00ff
    Memory pattern filling Test fails at 0x48000120, Write 0x 0, Readback 0x ff00ff00ff00ff
    Memory pattern filling Test fails at 0x48000168, Write 0x 0, Readback 0x ff00ff00ff00ff
    Memory pattern filling Test fails at 0x48000000, Write 0xffffffffffffffff, Readback 0x 0
    Memory pattern filling Test fails at 0x48000008, Write 0xffffffffffffffff, Readback 0x ff00ff00ff00ff
    Memory pattern filling Test fails at 0x48000010, Write 0xffffffffffffffff, Readback 0x ff00ff00ff00ff

    ...

    Memory address Test fails at 0x48000000, Write 0x4800000448000000, Readback 0x ff00ff00ff00ff
    Memory address Test fails at 0x48000008, Write 0x4800000c48000008, Readback 0x 0
    Memory address Test fails at 0x48000010, Write 0x4800001448000010, Readback 0x 0
    Memory address Test fails at 0x48000018, Write 0x4800001c48000018, Readback 0x 0
    Memory address Test fails at 0x48000020, Write 0x4800002448000020, Readback 0x 0
    Memory address Test fails at 0x48000028, Write 0x4800002c48000028, Readback 0x 0
    Memory address Test fails at 0x48000030, Write 0x4800003448000030, Readback 0x 0
    Memory address Test fails at 0x48000038, Write 0x4800003c48000038, Readback 0x 0

    对于HyperLink_integrity_Test,SL2和Core1 LL2都测试成功,只有DDR测试失败。

    这是什么问题?

  • 我找到问题了,是我使用了错误的gel文件。应使用..\..\emulation\boards\evmc6678l\gel\evmc6678l.gel这个文件就可初始化成功。但是我遇到了这样一个问题。

    当运行到HyperLink_DSP_core_test()->MemCopyTest;

    一直在重复执行这个函数 uiAddressd到LL2复制数据的函数

    Console:

    61 MB/s, copy 65536 bytes from 0x41800000 to 0x820000 consumes 1069069 cycles
    61 MB/s, copy 65536 bytes from 0x41800000 to 0x820000 consumes 1069070 cycles
    61 MB/s, copy 65536 bytes from 0x41800000 to 0x820000 consumes 1069062 cycles
    61 MB/s, copy 65536 bytes from 0x41800000 to 0x820000 consumes 1069062 cycles
    61 MB/s, copy 65536 bytes from 0x41800000 to 0x820000 consumes 1069068 cycles
    61 MB/s, copy 65536 bytes from 0x41800000 to 0x820000 consumes 1069070 cycles
    61 MB/s, copy 65536 bytes from 0x41800000 to 0x820000 consumes 1069058 cycles
    61 MB/s, copy 65536 bytes from 0x41800000 to 0x820000 consumes 1069070 cycles

  • 单步调试看一下,代码改过吗?

  • 代码没有修改过,单步调试也不行。

    这三行程序都是同一个函数,第一行的是从LL2复制数据到uiAddress

    而第二行这个是从uiAddress到LL2

    同样的函数,只是把参数src地址和dst地址掉了个头,就出现了这样的情况。奇怪...

  • 不清楚了,再重新导入编译试一下看看,代码没问题。

  • CCS6重新导入编译没进行尝试,但是同样的工程复制到CCS10就可以正常跑程序。

  • 我想问下,这个手动触发什么意思?我需要在板子上拨动拨码开关吗还是?

  • 应该是指手动写SW_INT寄存器,不需要操作拨码开关。

    /*manually trigger the hardware event, which will generate
    interrupt packet to remote side*/
    gpHyperLinkRegs->SW_INT= HW_EVENT_FOR_INT_TEST;

    建议对照hyperlink手册理解。

    https://www.ti.com.cn/cn/lit/ug/sprugw8c/sprugw8c.pdf

  • 我使用一块板子进行测试 设置为loopback模式 先运行1核 再运行0核 发现程序进不了中断

    程序运行到HyperLink_Interrupt_Test()- gpHyperLinkRegs->SW_INT= HW_EVENT_FOR_INT_TEST这个地方就没反应了

    我在中断服务程序第一行写了puts语句,如果跳进中断,是会知道的。现在的情况就是中断没有进去

    Debug信息:

    [C66xx_1] Initialize DSP main clock = 100.00MHz/1x10 = 1000MHz
    HyperLink internal loopback test at 10.000GHz...
    Enable Exception handling...
    standby for access by HyperLink...
    [C66xx_0] Initialize DSP main clock = 100.00MHz/1x10 = 1000MHz
    HyperLink internal loopback test at 10.000GHz...
    Enable Exception handling...
    HyperLink memory test passed at address 0x40000000
    Executed: if(hyperLink_cfg.loopback_mode == HyperLink_LOOPBACK)
    Executed: HyperLink_Interrupts_Init

    Executed: Uint32 uiStartTSC= TSCL

    memory protection exception caused by master with ID 0 at 0x1
    User Execute violation
    User Read violation
    Supervisor Write violation
    Supervisor Read violation
    Executed: gpHyperLinkRegs->SW_INT= HW_EVENT_FOR_INT_TEST

  • 先运行1核 再运行0核

    您是对两个核分别进行loopback吗?请单独测试一下core0 loopback是否有问题。

  • 我手上有两套K1_STK的程序 之前一直在拿第一套跑 出现了这些问题 今天我拿第二套程序跑了跑 没有问题 debug信息跟STK_user guide一样

    所以我判断是第一套程序可能是之前调试修改过后的程序。我想再问下 K1_STK的程序在官网上哪里可以下载到?虽然我有这个程序,但是我还是想知道具体的下载地址 谢谢