TI中文支持网
TI专业的中文技术问题搜集分享网站

[Hyperlink]STK_例程问题

Zahir Wang:

[C66xx_0] Initialize DSP main clock = 100.00MHz/1×10 = 1000MHz
[C66xx_1] Initialize DSP main clock = 100.00MHz/1×10 = 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 0x0, Readback 0x40000000000000
Memory pattern filling Test fails at 0x80000010, Write 0x0, Readback 0x40000000000000
Memory pattern filling Test fails at 0x800000d0, Write 0x0, Readback 0xff00000000000000
Memory pattern filling Test fails at 0x800000d8, Write 0x0, Readback 0xff00000000000000
Memory pattern filling Test fails at 0x800000e0, Write 0x0, Readback 0xff00000000000000
Memory pattern filling Test fails at 0x800000e8, Write 0x0, Readback 0xff00000000000000
Memory pattern filling Test fails at 0x800000f0, Write 0x0, Readback 0xff00000000000000
Memory pattern filling Test fails at 0x800000f8, Write 0x0, Readback 0xff00000000000000
[C66xx_1] Memory pattern filling Test fails at 0x80000000, Write 0x0, Readback 0x559f000000000000
Memory pattern filling Test fails at 0x80000010, Write 0x0, Readback 0x2020000000000000
Memory pattern filling Test fails at 0x80000080, Write 0x0, Readback 0x40140200000000
[C66xx_0] Memory pattern filling Test fails at 0x80000000, Write 0xffffffffffffffff, Readback 0xffffffff
Memory pattern filling Test fails at 0x80000008, Write 0xffffffffffffffff, Readback 0xffffffff
Memory pattern filling Test fails at 0x80000010, Write 0xffffffffffffffff, Readback 0xffffffff
Memory pattern filling Test fails at 0x80000018, Write 0xffffffffffffffff, Readback 0xffffffff
Memory pattern filling Test fails at 0x80000020, Write 0xffffffffffffffff, Readback 0xffffffff
Memory pattern filling Test fails at 0x80000028, Write 0xffffffffffffffff, Readback 0xffffffff
Memory pattern filling Test fails at 0x80000030, Write 0xffffffffffffffff, Readback 0xffffffff
Memory pattern filling Test fails at 0x80000038, Write 0xffffffffffffffff, Readback 0xdfffffffffffffff
[C66xx_1] Memory pattern filling Test fails at 0x80000080, Write 0xffffffffffffffff, Readback 0xffffffffffffff
Memory pattern filling Test fails at 0x80000088, Write 0xffffffffffffffff, Readback 0xffffffffffffff
Memory pattern filling Test fails at 0x80000090, Write 0xffffffffffffffff, Readback 0xffffffffffffff
Memory pattern filling Test fails at 0x80000098, Write 0xffffffffffffffff, Readback 0xffffffffffffff
Memory pattern filling Test fails at 0x800000a0, Write 0xffffffffffffffff, Readback 0xffffffffffffff
Memory pattern filling Test fails at 0x800000a8, Write 0xffffffffffffffff, Readback 0xffffffffffffff
Memory pattern filling Test fails at 0x800000b0, Write 0xffffffffffffffff, Readback 0xffffffffffffff
Memory pattern filling Test fails at 0x800000b8, Write 0xffffffffffffffff, Readback 0xdfffffffffffffff

,

Zahir Wang:

用一块板子 同时用0核与1核跑STK的例程没有任何修改 但是遇到了DDR初始化失败的问题
请问这是什么情况?应该怎么解决?

,

Nancy Wang:

是自制板吗?leveling失败建议根据自制板的硬件情况重新计算确认一下DDR参数部分,参考Keystone I DDR3 Initialization:
www.ti.com.cn/…/sprabl2e.pdf

,

Zahir Wang:

板子型号是 TMDXEVM6678L

,

Nancy Wang:

将STK例程中KeyStone_DDR_init 初始化DDR的函数注释,直接使用GEL文件初始化,再执行程序试一下。

,

Zahir Wang:

我想再问下怎么使用gel文件进行初始化?

,

Nancy Wang:

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

,

Zahir Wang:

你好 我导出初始化脚本后 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)

,

Nancy Wang:

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

,

Zahir Wang:

注* 板子型号是 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 ff00ff00ff00ffMemory pattern filling Test fails at 0x48000038, Write 0x 0, Readback 0x ff00ffMemory pattern filling Test fails at 0x48000040, Write 0x 0, Readback 0x ff00ff00ff00ffMemory pattern filling Test fails at 0x48000090, Write 0x 0, Readback 0x ff00ff00ff00ffMemory pattern filling Test fails at 0x480000a0, Write 0x 0, Readback 0x ff00ff00ff00ffMemory pattern filling Test fails at 0x480000e0, Write 0x 0, Readback 0x ff00ff00ff00ffMemory pattern filling Test fails at 0x48000120, Write 0x 0, Readback 0x ff00ff00ff00ffMemory pattern filling Test fails at 0x48000168, Write 0x 0, Readback 0x ff00ff00ff00ffMemory pattern filling Test fails at 0x48000000, Write 0xffffffffffffffff, Readback 0x 0Memory pattern filling Test fails at 0x48000008, Write 0xffffffffffffffff, Readback 0x ff00ff00ff00ffMemory pattern filling Test fails at 0x48000010, Write 0xffffffffffffffff, Readback 0x ff00ff00ff00ff

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

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

这是什么问题?

,

Zahir Wang:

我找到问题了,是我使用了错误的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

,

Nancy Wang:

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

,

Zahir Wang:

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

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

而第二行这个是从uiAddress到LL2

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

,

Nancy Wang:

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

,

Zahir Wang:

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

,

Zahir Wang:

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

,

Nancy Wang:

应该是指手动写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

,

Zahir Wang:

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

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

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

Debug信息:

[C66xx_1] Initialize DSP main clock = 100.00MHz/1×10 = 1000MHzHyperLink internal loopback test at 10.000GHz…Enable Exception handling…standby for access by HyperLink…[C66xx_0] Initialize DSP main clock = 100.00MHz/1×10 = 1000MHzHyperLink internal loopback test at 10.000GHz…Enable Exception handling…HyperLink memory test passed at address 0x40000000Executed: 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 violationExecuted: gpHyperLinkRegs->SW_INT= HW_EVENT_FOR_INT_TEST

,

Nancy Wang:

Zahir Wang 说:先运行1核 再运行0核

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

,

Zahir Wang:

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

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

,

Nancy Wang:

https://e2echina.ti.com/support/processors/f/processors-forum/47664/faq-keystone1#pi239031350=2

赞(0)
未经允许不得转载:TI中文支持网 » [Hyperlink]STK_例程问题
分享到: 更多 (0)