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: 双核之间的一些问题

Part Number: TMS320F28377D


在技术手册里面,说明的双核通讯流程:

1.CPU1往IPCSENDCOM內部写下command,那这个command是用户自己定义的还是已经在软件内部定义好了,比如在技术手册中,说的0x1对应的命令是copy data from address,那如果由我们自己定义,该怎么去定义;

2.往IPCSENDADDR写下数据的起始地址,往IPCSENDDATA内写下数据长度;

3.CPU1置位标志位。在技术手册中,用的标志位是FLAG[3]和FLAG[16]。FLAG[3]是用于产生中断,那FLAG[16]是否可以更换,还是比如执行复制数据命令的话,只能用这个标志位?

4.CPU2接收到中断指令,检查IPCSTS,发现FLAG[16]置位再执行相关程序,那这个就是说FLAG[16]是不是只是一个相应的读取位置,就CPU1置位哪一个,CPU2读取哪一个就可以了,然后执行对应的功能?但是每一个FLAG对应的功能是什么?在技术手册中没找到;

5.CPU2从它的IPCRECVCOM读取CPU1发送的命令,从IPCRECVADDR读取首地址,从IPCRECVDATA读取数据长度,然后CPU2就复制这些数据到一块空白的共享区域,从0x210开始的地址。那0x210这个是不是可以更改的,还是说这个地址就是固定不动的?

6.CPU2在IPCLOCALREPLY中写下共享区域的地址0x210,然后清除标志位,表明工作已经完成;

7.CPU1查看到标志位3边置低,就读取IPCREMOTEREPLY中的信息,然后读取从0x210地址开始的数据。

麻烦帮我看一下我这样子的理解有没有误区;

在cpu01_to_cpu02_ipcdrivers_cpu01这个工程当中,我没有看到这些相应的寄存器的赋值,只是看到一些指针结构体的定义和使用,在IPC的中断中,我们需要执行哪些功能,是不是就是command命令的读取,还有数据首地址和数据长度的读取?然后在例程里面的IPCGET和IPCPUT函数,函数开头说明是用来将数据写入Putbuffer和将数据从Getbuffer取出,但是怎么使用,每一个函数都需要好几个参数,像IPCPut,虽然开头有说明,但是我还是没有搞明白,就是Putbuffer和Getbuffer都是用来做什么的,是相当于中间变量嘛,数据传输之间的中间变量?还是什么其他的意义