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.
下面两个是在TCI6638 EVM板上验证过的DSP与ARM通信的例子(DSP与ARM都是小端模式):
例子1使用Queue实现DSP与ARM之间的数据通信
jim Liao:
你好,运行例子1使用queue通信出现下面问题。
1.
dsp c66x的corex 在connect target时候,连接会报错,dsp core在连接时候配置了
你提供的gel文件,但是还是有error!初步看是Error while executing OnTargetConnect()。
具体不知道什么错误,详见附件截图
2.
根据你的说明,利用com口修改arm的大端和小端,但是,板子起来之后,
只看到TCI6638 EVM#,没有看到有BMC>出现,无法执行setboot命令。
是不是我的uboot版本需要升级,详见附件2截图
你是按照附件中的ARM Cortex-A15 Bare-Mental Big-Endian CCS Project Operation Guide.pdf文档来设置环境的吗?
1. CCS版本、USB转COM口的驱动
2.设置boot DIP pins 为off off off on (no boot)
3.装好驱动后,在device manager里面有两个 USB Serial Port(COM xx)
BCM UART始终对应COM xx 数值高的Port口, 数值较低的Port 口对应的是SOC UART
这部分具体可见:http://processors.wiki.ti.com/index.php/EVMK2H_Hardware_Setup#BMC_In-Field_Update
我想你出现TCI6638 EVM#,应该是选择了数值较低的Port 来设置,你改用数值高的Com Port口试试。在BCM中设置好bootmode, 然后fullrst之后,
你再试试是否还出现第一个问题。
hi,Jim Liao:
感谢你分享的两个examples,我已经在ccs上面都跑过了,现在,我想把arm上跑的
工程代码,移植到linux系统上去跑,需要注意哪些问题尤其是arm代码移植?
ti有没有现成的通信example,arm代码直接跑在linux上面而不是ccs下面的?
Jim Liao 说:你是按照附件中的ARM Cortex-A15 Bare-Mental Big-Endian CCS Project Operation Guide.pdf文档来设置环境的吗?
1. CCS版本、USB转COM口的驱动
2.设置boot DIP pins 为off off off on (no boot)
3.装好驱动后,在device manager里面有两个 USB Serial Port(COM xx)
BCM UART始终对应COM xx 数值高的Port口, 数值较低的Port 口对应的是SOC UART
这部分具体可见:http://processors.wiki.ti.com/index.php/EVMK2H_Hardware_Setup#BMC_In-Field_Update
我想你出现TCI6638 EVM#,应该是选择了数值较低的Port 来设置,你改用数值高的Com Port口试试。在BCM中设置好bootmode, 然后fullrst之后,
你再试试是否还出现第一个问题。
Jim:
你好,你提供的例子,我在ccs下面都跑通过了,包括dsp和arm的。
但是,现在,我想把arm程序移植到linux环境下面跑。然后dsp仍然在ccs下面跑。
我现在困惑的是:在进行arm与dsp进行联调的时候,k2的启动方式应该是从ccs启动,
还是arm启动,拨码开关是0001还是0010?
1.如果是ccs启动
我只能把arm与dsp程序都在ccs环境下进行跑。这不是我想要的。我想让arm程序跑在
linux下面。
2.如果是arm启动
我实际搭环境测试了一下,如果uboot起来之后,nfs挂载启动正常之后,我在ccs上面
加载dsp程序,并且运行之后, arm的串口信息就没有了,好像互相影响了,没办法同时
在linux 上面调试arm代码,一方面在ccs下面跑dsp代码?请教,谢谢!
Hi,Jim Liao
我现在在试着调试第一个例子,根据你所给说明,我遇到的问题是无法执行setboot这一步,不知道这个问题应该怎么解决?同时,还有我在CCS5.5上导入第一个例子的Cortex_A15_example_TICC工程,总是导入不成功,不知道有没有什么解决方法,谢谢!
你好,我们刚开始调试6638的EVM板,根据5102.Build and Run U-boot and Linux Kernel on TCI6638 EVM-V2.1.pdf 这份手册,
首先需要在BCM串口中设置setboot
但是我们的BCM串口只有打印没有输入;我使用的是你们EVM板上的串口D,请问这个串口可以输入吗?
另外拨码开关是 0 0 0 1
我用的MCSDK3.1.4.7的版本,加载例子2后,修改了PDK的路径,重新编译工程后有很多错误,
错误1:该函数传递变量太少,可是并没有找到该函数的声明 CSL_AIF2SerdesLaneEnable(CSL_AIF_CFG_REGS,i, serdes_cfg->laneRateScale[i]);
Description Resource Path Location Type
#167 too few arguments in function call K2_Serdes_init.c /ARM_DSP_Communication_DSP/common line 185 C/C++ Problem
错误2:没有定义某个变量
gTimerRegs[tmrCfg->timer_num]->WDTCR = CSL_TMR_WDTCR_WDEN_MASK
|(CSL_TMR_WDTCR_WDKEY_CMD1<<CSL_TMR_WDTCR_WDKEY_SHIFT);
Description Resource Path Location Type
#20 identifier "CSL_TMR_WDTCR_WDKEY_CMD1" is undefined K2_common.c /ARM_DSP_Communication_DSP/common line 694 C/C++ Problem
有这两种错误,关于中断通信有没有具体点的文档,arm和dsp之间如何完成通信的。
另外有没有基于共享内存空间的通信方式的例程,MCSDk开发包中,有一个image—processing的工程,太复杂了,能提供稍微简单点的入门级别的例程吗?
能否提供dsp是大端,arm是小端的数据通信吗?或者更具体说,我想知道arm corepac bridge的自动word swap如何配置和生效?这样的话,我的application里就不需要为大小端转换额外加代码了,执行效率也比软件swap快。谢谢!