Hi All :
我有个板子,上面有16个C6678的DSP以及一个POWERPC,中间通过SWITCH芯片相连。 DSP需要设成srio boot模式,
1. 如果通过 directIO 直接内存访问 方式来加载DSP端的代码,需要知道DSP 的memory map ? 那么,我要把DSP的代码加载到什么地址?
2. 有没有相关的srio boot 启动,然后通过 directIO 方式加载的例程?
Hi All :
我有个板子,上面有16个C6678的DSP以及一个POWERPC,中间通过SWITCH芯片相连。 DSP需要设成srio boot模式,
1. 如果通过 directIO 直接内存访问 方式来加载DSP端的代码,需要知道DSP 的memory map ? 那么,我要把DSP的代码加载到什么地址?
2. 有没有相关的srio boot 启动,然后通过 directIO 方式加载的例程?
ti工程师老师您好!
最近在调试6678多核dsp,在编译时提示如附件中图1所示错误,但是最终提示编译通过,不知是何原因?
在加载程序后又提示如图2所示红色警告不知是何原因?
你好,看到你也在用1848和6678的互联,想请教一下1848的配置问题
我使用ARM通过I2C配置1848可以成功,两片6678可以进行正常通信。但是,想用6678发送维护包给1848进行配置时,发现ARM写进去的寄存器的值都可以通过维护包读到,但是没法让6678使用维护包进行更改1848的各个寄存器的值。也就是说6678只能读1848而不能写,请问你遇到这种问题了吗,是怎么解决的?进行维护包写1848的时候,需要一些额外的操作比如说打开1848的写开关之类的吗,谢谢!
我这边板子上4个6678通过一个cps1848连接。
我i需要跑通srio,我在pdk里面loopbackDIOIsrexampleproject上做了简单的修改,修改pll成1.25,然后就是改4X 1X。
有一个奇怪的现象:配置成4X时,mantenance操作完毕后,ERR_STAT值等于0x20202,配置成1x时,值是0x20002,也就是4X时,每次都有output-error-enc和input-error-enc,1x时,只有output-error-enc,但是实际上这个manenance操作是完成了的。
交换机那边打开output,input使能,配置路由。
现在的情况是,mantenance可以通,DSP A去读DSP的reg没有问题,但是有时候读完DSP B的寄存器再去读switch的reg也会出错。DIO完全不通,
srio_getSockOpt读出来的值等于1,DSP这边的寄存器,ERR_STAT等于0x20202,
请问一下大家有没有遇到过类似的情况,有几个问题:
1,srio配置的时候,我屏蔽了SetTLMPortBaseRoutingInfo和SetTLMPortBaseRoutingPatternMatch,这两个配置是干什么的?有什么影响么?因为我打开情况也没有什么变化。i
2, srio_getSockOpt得到的值分别代表什么意思呢?在哪儿可以查到?
3, 大家对于我遇到的这个问题有没有一个大致的建议,我现在应该怎么去定位分析这个问题?
EVM6678板卡上能够让两个cores同时运行NDK UDP吗?
考虑的是:介于千兆以太网是全双工的,用一个core来接收数据,另一个core用来发送数据,从而提高以太网总线上的数据吞吐率。
因为发现用单核进行UDP同时收发的话,好像忙不过来,发送和接收的速率都下降好多。
大家好
目前我在测试C6678 DDR3时,有如下问题
第一,只有CORE0 。core0初始化DDR3 1333MHz,并测试,这时候DDR3测试没问题。
第二,CORE0初始化DDR3 ,同样1333MHz,然后将DDR3内存分成8个相同大小的块,CORE0测试第一块,CORE1测试第二块,一次类推。这个时候测试就会报错,错误率不是很高。
第三,将DDR3降到800MHz时,再进行测试,这时多核测试也没有问题
也就是说在DDR3配置为1333MHz时只有一个核测试DDR3没有问题,多个核测试DDR3就会有问题。
请问这是由于什么原因造成的?
谢谢,已经纳入首页资源置顶
工程目录右键属性,在你改include目录的条目下面,你找找,应该很快能找到。
这个错误的引起一般是仿真器硬件问题或者是驱动没有装好,你可以找一台电脑重新装一下最新的CCS,记得要把spectrum的仿真器支持选上,如果还不行,我认为硬件问题可能性较大。
最近在用 spectrum digital XDS560 V2 STM Emulator做tracePod, CCS版本是5.4,DSP型号:TCI6638. 在用CCS做test connection时,总是会出现如下错误:
[Start]
Execute the command:
%ccs_base%/common/uscif/dbgjtag.exe -f %boarddatafile% -rv -o -F inform,logfile=yes -S pathlength -S integrity
[Result]
-----[Print the board config pathname(s)]------------------------------------
C:\DOCUME~1\TDLTE-~1\LOCALS~1\APPLIC~1\.TI\
693494126\0\0\BrdDat\testBoard.dat
-----[Print the reset-command software log-file]-----------------------------
This utility has selected a 560/2xx-class product.
This utility will load the program 'sd560v2u.out'.
Loaded FPGA Image: C:\ti\ccsv5\ccs_base\common\uscif\xds560v2pro.xsvf
The library build date was 'Apr 2 2013'.
The library build time was '00:13:51'.
The library package version is '5.1.73.0'.
The library component version is '35.34.40.0'.
The controller does not use a programmable FPGA.
E_RPCENV_IO_ERROR(-6) No connection: DTC_IO_Receive::dtc_io
E_RPCENV_IO_ERROR(-6) No connection: DTC_IO_Receive::dtc_io
E_RPCENV_IO_ERROR(-6) No connection: DTC_IO_Send::dtc_io
-----[An error has occurred and this utility has aborted]--------------------
This error is generated by TI's USCIF driver or utilities.
The value is '-252' (0xffffff04).
The title is 'SC_ERR_ECOM_OPERATE'.
The explanation is:
An attempt to operate the USCIF interface via USCIF ECOM has failed.
[End]
不知道这个错误代码-252表示什么意思
我挂仿真器加载跑现象也是一样的。。。
现在有个疑问是SYS/BIOS在多核情况下到底是如何部署的?是一个SYS/BIOS系统运行在多个core上,还是每个core上都运行一个SYS/BIOS。其效果可不可以类比是window下的intel多核处理器?
用一个project可以,代码一样然后走分支也可以,这样的话代码段是可以共享的;但是用一个cmd比较麻烦,stack,far,bss在不同的核上要用不同的地址,否则这些数据就会冲突。
不能,目前NDK只能在单核上运行,多核无法支持。
CCS 5.5
C6657
最近在调DSP核间通信 IPC 中断,在网上找相关的贴子,只找到一个基于6678的样例,经修改移植到6657,为了帮助遇到同样问题的初学都故发此贴(大神静静飘过,别踩!)
移植中需要重点注意的是:
1、IPC的中断事件号在6678上为91,而在6657上为90
2、原样例6678使的大端的链接文件ti.csl.ae66e和ti.csl.intc.ae66e,而在6657则是用小端的链接文件ti.csl.ae66和ti.csl.intc.ae66
谢谢Allen Yin,我遇到了另一个问题需要请教一下
interruptCfg intInfo[MAX_SYSTEM_VECTOR] =
{
/* core event vector*/
{ 0, 90, CSL_INTC_VECTID_4, &IPC_ISR},
{ 1, 90, CSL_INTC_VECTID_4, &IPC_ISR},
};
原样例的 是从中断入口4 进行中断,我需要修改成除4 外的别的入口,如5
interruptCfg intInfo[MAX_SYSTEM_VECTOR] =
{
/* core event vector*/
{ 0, 90, CSL_INTC_VECTID_5, &IPC_ISR},
{ 1, 90, CSL_INTC_VECTID_5, &IPC_ISR},
};
但是修改后,CORE0 发一次IPC中断,CORE1 却会进入2次中断服务程序,我改成6、7、8、9……也是一样,只有4是只进入一次,这是为什么呢?
那对于提高基于NDK网络收发数据速率,您能给出一些建议吗?因为属于前期验证阶段,想测试一下以太网同时收发的吞吐速率能达到多少,以辅助方案设计。
希望能得到您进一步的指导!
各位工程师好
我在使用c6678的srio与fpga通信的时候出现了一些问题:
1.情况描述:
a.查询CSL_SRIO_RIO_SP_ERR_STAT_PORT_OK位通过,
b.MATCH_ACKID函数中调用KeyStone_SRIO_Maintenance()其中的KeyStone_SRIO_wait_LSU_completion()返回值正常。
c.使用LSU发送数据,KeyStone_SRIO_wait_LSU_completion()函数通过,返回值为5
d.接收端fpga不能收到数据
2.其他问题:
a.MATCH_ACKID操作中进行Maintenance传输,先写再读,请问其中的offset都是指接收端的ACKID_STAT寄存器的offset么?
我看c6678的SP0_ACKID_STAT寄存器的偏移地址是0xb148,为什么例程中都写的是0x148?对于fpga这个偏移地址是不是不一定相同?
b.Maintenance读写后用KeyStone_SRIO_wait_LSU_completion()查询都通过了,能不能说明srio的port,path,serdes,destID配置成功了?
(因为fpga端的程序是封死的所以不敢确定)
你们好,PA_UnitTest_K2EC66BiosPCapTestProject可以实现数据抓包和端口镜像功能,但测试时是处于loopback_internal模式的,我想让板子抓获PC端发送的数据包,于是把loopback模式修改为loopback_none模式,程序QMSS、CPPI、PASS都已成功初始化,但到初始化CPSW时,首先进入Init_SGMII_SERDES,运行到cpsw_mgmt.c文件的734行,程序跳入CSL_SerdesLaneEnable,然后就一直卡在csl_serdes.h的926行retval = (CSL_SERDES_STATUS)CSL_FEXTR(*(volatile uint32_t *)进入死循环了,请问应该怎么改才能初始化成功?并且后面的pkt_capture_test函数要怎么配置才能接收PC端数据包?