请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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
CPU 主文件(不是完整的主文件,只是相关行):
Fullscreen
1
2
3
4
5
#pragma DATA_SECTION(CPU2Values, "BufferTest");
Uint16 CPU2Values[2];
CPU2Values[0] = 0xAAAA;
CPU2Values[1] = 0x5555;
工作正常、我可以在内存浏览器中的正确地址找到合适的值(0xAAAA、位于@0x03F800、0x55555、位于@0x03F801)
- 在 CPU1侧,我对.cmd 文件执行了相同的操作:
Fullscreen
1
2
3
CPU2TOCPU1RAM : origin = 0x03F800, length = 0x000400
BufferTest : > CPU2TOCPU1RAM PAGE = 1
- 对于 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];
在存储器浏览器中 、我可以在正确的地址(@0x03F800处为0xAAAA、@0x03F801处为0x55555)找到良好的值、但所有四个变量等于零(CPU2Values[0]、CPU2Values[1]、CPU2Value1和 CPU2Value 2)。
您知道原因吗?
谢谢你。
此致、