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.

TMS320F28377D: Inter-core communication through shareRAM

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Problem: The user defines a number of variables a、b、c in the C file of CPU1, and puts the variables into SHARERAMGS0 through the #progma instruction. After the compiler is compiled, the address of variable a is 0x0003F800, the address of b is 0x0003F801, and the address of c is 0x0003F802. The variable a、b、c is also defined in the C file of CPU2, and the variable is put into SHARERAMGS0 through the #progma instruction. After the compiler is compiled, the address of the variable a is 0x0003F802, the address of b is 0x0003F800, and the address of c is 0x0003F801.

Variables with the same name in CPU1 and CPU2 have different addresses allocated by the #progma instruction and cannot be used directly.I introduced to users the method used in C2000ware, which is to uniformly assign variables to an array defined in shareRAM, but users need to pass more variables between cores, which is not conducive to maintenance.

In summary, I want to confirm two things: Does #progma specify the storage address of the variable? This can solve the above problems; if not, can there be other solutions?Thanks!