C28 Address M3 Address
0003 F800 – 0003 FBFF CtoM MSG RAM (Parity) 2K 2007 F000 – 2007 F7FF
0003 FC00 – 0003 FFFF MtoC MSG RAM (Parity) 2K 2007 F800 – 2007 FFFF
1、如果M3读C28的值,M3先写MTOCIPCCOM,写MTOCIPCADDR=0003 F800,然后置MTOCIPC flag,C28发现MTOCIPC flag后,写值进MTOCIPCDATAR,最后M3读MTOCIPCDATAR,也就是读到了C28侧0003 F800 下的值。
2、如果是M3传数据给C28呢?在2007 F800 写入一个数据,如何让C28第一时间读到?具体操作怎做?
Young Hu:
您好!
在TRM 157页中有整个M3去读C28x的数据的过程。至于读还是写,就是在设置MTOCIPCCOM寄存器的时候实现的。在spruh22b 573页有相应的命令解释,如果要写16位的数据,那么写入MTOCIPCCOM命令字为0x0000005,如果要写32位的数据,那么写入MTOCIPCCOM命令字为0x0000006。
另外,在M3的驱动库中,有相应的读写函数可供您参考!
// Read 32-bit word from C28 32-bit write word variable. Use IPC Flag 18 to
// check when read data is ready.
IPCMtoCDataRead(&g_sIpcController1, pulMsgRam[1], &ulRWord32,
IPC_LENGTH_32_BITS, ENABLE_BLOCKING,
IPC_FLAG18);
M3会通过MTOCIPC标志位或者中断的方式去通知C28x。
C28 Address M3 Address
0003 F800 – 0003 FBFF CtoM MSG RAM (Parity) 2K 2007 F000 – 2007 F7FF
0003 FC00 – 0003 FFFF MtoC MSG RAM (Parity) 2K 2007 F800 – 2007 FFFF
1、如果M3读C28的值,M3先写MTOCIPCCOM,写MTOCIPCADDR=0003 F800,然后置MTOCIPC flag,C28发现MTOCIPC flag后,写值进MTOCIPCDATAR,最后M3读MTOCIPCDATAR,也就是读到了C28侧0003 F800 下的值。
2、如果是M3传数据给C28呢?在2007 F800 写入一个数据,如何让C28第一时间读到?具体操作怎做?
user718275:
回复 Forrest:
m3,c28之间不需要同步,也就是读写数据时不需要通知对方,把这两块RAM当共享RAM用,按各自可读写或只读。可以这样拿来用吗?当普通内存用