器件型号:EVMK2H
工具/软件:TI-RTOS
您好!
我们在 EVMK2H 模块上测试 ARM_Linux 和 DSP_BIOS 之间的 IPC.MessageQ。测试环境和测试代码(根据 TI 提供的 IMAGE_PROCESING 演示进行修改)部分显示如下。 这是一个简单的测试:Dsp0重复发送消息、每个消息具有400字节的相同值有效载荷、而 ARM 重复接收这些消息。
测试环境:
()目标:EVMK2H Rev40
ARM:Linux+IPC.MessageQ
DSP:BIOS+IPC.MessageQ
()仿真器:板载仿真器 XDS2xx
()主机:Windows XP SP3
CCS5.5
mcsdk_3_00_03_15
IPC_3_00_04_29
DSP 代码集
------------------
#define DATA_LEN 400
typedef 结构
{
MessageQ_MsgHeader 报头;
int core_id;
特性 DATA[DATA_LEN];
} SMsgTest;
smsgTest* pMsgTest;
for (j=0;;j++)
{
pMsgTest = (SMsgTest*) MessageQ_alloc (0、sizeof (SMsgTest));//HeapId 在 cfg 文件中配置。
如果(!pMsgTest)
返回;
X++;
for (i=0;<DATA_LEN;i++))
pMsgTest->data[i]=x;
if (MessageQ_Put (vQueueId、(MessageQ_Msg) pMsgTest)< 0)
printf ("MessageQ_Put 出现故障错误\n");
Task_sleep (1);//Task_sleep (1):大约1毫秒。
}
ARM 代码片段
------------------
for (j=0;;j++)
{
if (MessageQ_get (vMsgQHandle、(MessageQ_Msg *)&pMsgTest、MessageQ_Forever)< 0)
返回0;
for (i=1 <DATA_LEN;i++)
if (pMsgTest->data[0]!=pMsgTest->data[i])
{
printf ("%d:data[%d]=%x\n"、j、i、pMsgTest->data[i]);
中断;
}
MessageQ_free ((MessageQ_Msg) pMsgTest);
}
问题:
除了 ARM 接收到的前几百条消息中的一些不正确之外、一切都运行良好、也就是说、这与 DSP 发送的值不同。 一条错误消息、其中每个值应为20、而不是包含一些0、显示如下:
20、20、20、20、20、20、20、20、20、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0
0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、20、20、0、20、20、0、20、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20、20、20、20、20、20、20、20、20、20、20、20
这是一个奇怪的问题,它已经吃了很多时间。 请帮我找出测试中的问题吗?
非常感谢您的参与。