您好,请教些问题,
使用双核IPC通讯时发现一个问题,当CPU2使用的内存超过2K时,使用memcpy无法取得共享内存的地址:
#define CPU02TOCPU01_PASSMSG 0x03F800
const Uint16 *puMsgRam = (void *) CPU02TOCPU01_PASSMSG;
memcpy((void *)puMsgRam, (void *)®Data, 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 *)®Data, 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 *)®Data, 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 *)®Data, 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 *)®Data, 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