Other Parts Discussed in Thread: C2000WARE
您好!
我在考虑定义一个数组用来存放数据,我希望CPU1与CPU2都能够去读写这个数组,我的想法是否可行,我看了memcfg_ex1_arm_management的例程只有将ARMGS分配给CPU1或CPU2,能否它俩都分配通一个地址?
如果有的相关例程,请提供给我,谢谢!
您好!
我在考虑定义一个数组用来存放数据,我希望CPU1与CPU2都能够去读写这个数组,我的想法是否可行,我看了memcfg_ex1_arm_management的例程只有将ARMGS分配给CPU1或CPU2,能否它俩都分配通一个地址?
如果有的相关例程,请提供给我,谢谢!
您好,
感谢您的答复,这个例程我看过,在这个例程中,ARMGS0被配置为了让CPU2读写,我做过测试,CPU1只能读取;而ARMGS1只能被CPU1读写,CPU2只能读取它,我想配置的代码为:
//
// Give memory access to GS0 and GS14 RAM to CPU2
//
MemCfg_setGSRAMControllerSel((MEMCFG_SECT_GS0 | MEMCFG_SECT_GS14),
MEMCFG_GSRAMCONTROLLER_CPU2);
//
// Give memory access to GS1 and GS15 RAM to CPU1
//
MemCfg_setGSRAMControllerSel((MEMCFG_SECT_GS1 | MEMCFG_SECT_GS15),
MEMCFG_GSRAMCONTROLLER_CPU1);uint16_t cpu1RArray[256]; // Mapped to GS0 of shared RAM owned by CPU2 uint16_t cpu1RWArray[256]; // Mapped to GS1 of shared RAM owned by CPU1 #pragma DATA_SECTION(cpu1RArray,"SHARERAMGS0"); #pragma DATA_SECTION(cpu1RWArray,"SHARERAMGS1");
您好,
请确认程序中的两个变量在共享 RAM 中都被分配到相同的存储器地址。 下面的论坛将展示如何验证这一点
如果分配到相同的存储器位置并对两个 CPU 具有 R/W 访问权限、则两个 CPU 都可以写入相同的数据。
指导原则是、通常不建议也不建议使用 IPC 以便在 CPU 之间进行通信、拥有两个 CPU 可以在任何时候更改的相同数据可能会引发仲裁问题