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:CPU2至 CPU1 IPC MSG RAM 访问

Guru**** 2022480 points
Other Parts Discussed in Thread: C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/994087/tms320f28377d-cpu2-to-cpu1-ipc-msg-ram-access

器件型号:TMS320F28377D
主题中讨论的其他器件:C2000WARE

您好!

我需要在 CPU2和 CPU1之间交换值(CPU2写入数据、CPU1获取数据)

首先、我不想使用所有 IPC 函数、 我只想直接在消息 RAM (CPU2TOCPU1RAM)中写入

  • 在 CPU2侧、我直接在 CPU2TOCPU1RAM 上写入两个值。

CPU2 .cmd 文件: (不是完整文件,只是相关行):

Fullscreen
1
2
3
CPU2TOCPU1RAM : origin = 0x03F800, length = 0x000400
BufferTest : > CPU2TOCPU1RAM PAGE = 1
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

CPU 主文件(不是完整的主文件,只是相关行):

Fullscreen
1
2
3
4
5
#pragma DATA_SECTION(CPU2Values, "BufferTest");
Uint16 CPU2Values[2];
CPU2Values[0] = 0xAAAA;
CPU2Values[1] = 0x5555;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

工作正常、我可以在内存浏览器中的正确地址找到合适的值(0xAAAA、位于@0x03F800、0x55555、位于@0x03F801)

  • 在 CPU1侧,我对.cmd 文件执行了相同的操作:

Fullscreen
1
2
3
CPU2TOCPU1RAM : origin = 0x03F800, length = 0x000400
BufferTest : > CPU2TOCPU1RAM PAGE = 1
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 对于 main:

Fullscreen
1
2
3
4
5
6
7
8
#pragma DATA_SECTION(CPU2Values, "BufferTest");
Uint16 CPU2Values[2];
unsigned int CPU2Value1 = 0;
unsigned int CPU2Value2 = 0;
CPU2Value1 = CPU2Values[0];
CPU2Value2 = CPU2Values[1];
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

在存储器浏览器中 、我可以在正确的地址(@0x03F800处为0xAAAA、@0x03F801处为0x55555)找到良好的值、但所有四个变量等于零(CPU2Values[0]、CPU2Values[1]、CPU2Value1和 CPU2Value 2)。

您知道原因吗?

谢谢你。

此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您是否使用了 C2000ware 示例、并按照上述文章中的说明对其进行了修改? 我刚刚在我的设置上进行了测试。 我从 C2000ware Driverlib 示例导入了 IPC 示例、并修改了类似的内容。 在 CPU2存储器浏览器中修改值时、我能够在 CPU1存储器浏览器中看到值发生更改。