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

2837xD的双核通讯问题

您好,请教些问题,

使用双核IPC通讯时发现一个问题,当CPU2使用的内存超过2K时,使用memcpy无法取得共享内存的地址:

#define CPU02TOCPU01_PASSMSG    0x03F800

const Uint16 *puMsgRam = (void *) CPU02TOCPU01_PASSMSG;

memcpy((void *)puMsgRam, (void *)&regData, sizeof(regData));

如果定义了一个全局变量,例如:volatile Uint16 arInt[2048];

在跟踪调试时发现puMsgRam的地址就变成了0x00000000

如果全局变量的长度小一点如volatile Uint16 arInt[512],在跟踪时地址指针就是正常的。

请教如何解决这个问题?

谢谢。

snap xie:

有人能帮忙指教下吗?

您好,请教些问题,

使用双核IPC通讯时发现一个问题,当CPU2使用的内存超过2K时,使用memcpy无法取得共享内存的地址:

#define CPU02TOCPU01_PASSMSG    0x03F800

const Uint16 *puMsgRam = (void *) CPU02TOCPU01_PASSMSG;

memcpy((void *)puMsgRam, (void *)&regData, sizeof(regData));

如果定义了一个全局变量,例如:volatile Uint16 arInt[2048];

在跟踪调试时发现puMsgRam的地址就变成了0x00000000

如果全局变量的长度小一点如volatile Uint16 arInt[512],在跟踪时地址指针就是正常的。

请教如何解决这个问题?

谢谢。

snap xie:

回复 Seven Han:

谢谢,我现在就是这样处理的了。但我发现在CPU2里malloc只能使用一次,第二次调用就不知道跑哪去了。所以我现在是一次申请足够大的空间,再自己分配。

您好,请教些问题,

使用双核IPC通讯时发现一个问题,当CPU2使用的内存超过2K时,使用memcpy无法取得共享内存的地址:

#define CPU02TOCPU01_PASSMSG    0x03F800

const Uint16 *puMsgRam = (void *) CPU02TOCPU01_PASSMSG;

memcpy((void *)puMsgRam, (void *)&regData, sizeof(regData));

如果定义了一个全局变量,例如:volatile Uint16 arInt[2048];

在跟踪调试时发现puMsgRam的地址就变成了0x00000000

如果全局变量的长度小一点如volatile Uint16 arInt[512],在跟踪时地址指针就是正常的。

请教如何解决这个问题?

谢谢。

snap xie:

回复 Seven Han:

你们有帮客户做Sil3软件安全认证的业务吗?我们基于2837xD的芯片的产品开发的软件需要过Sil3,您们能提供帮助吗?

您好,请教些问题,

使用双核IPC通讯时发现一个问题,当CPU2使用的内存超过2K时,使用memcpy无法取得共享内存的地址:

#define CPU02TOCPU01_PASSMSG    0x03F800

const Uint16 *puMsgRam = (void *) CPU02TOCPU01_PASSMSG;

memcpy((void *)puMsgRam, (void *)&regData, sizeof(regData));

如果定义了一个全局变量,例如:volatile Uint16 arInt[2048];

在跟踪调试时发现puMsgRam的地址就变成了0x00000000

如果全局变量的长度小一点如volatile Uint16 arInt[512],在跟踪时地址指针就是正常的。

请教如何解决这个问题?

谢谢。

Coffee Ge73:

回复 snap xie:

您好,建议您发个新帖询问。

snap xie

你们有帮客户做Sil3软件安全认证的业务吗?我们基于2837xD的芯片的产品开发的软件需要过Sil3,您们能提供帮助吗?

您好,请教些问题,

使用双核IPC通讯时发现一个问题,当CPU2使用的内存超过2K时,使用memcpy无法取得共享内存的地址:

#define CPU02TOCPU01_PASSMSG    0x03F800

const Uint16 *puMsgRam = (void *) CPU02TOCPU01_PASSMSG;

memcpy((void *)puMsgRam, (void *)&regData, sizeof(regData));

如果定义了一个全局变量,例如:volatile Uint16 arInt[2048];

在跟踪调试时发现puMsgRam的地址就变成了0x00000000

如果全局变量的长度小一点如volatile Uint16 arInt[512],在跟踪时地址指针就是正常的。

请教如何解决这个问题?

谢谢。

mangui zhang:

回复 snap xie:

参考跑飞问题解决

http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/5006.aspx

赞(0)
未经允许不得转载:TI中文支持网 » 2837xD的双核通讯问题
分享到: 更多 (0)