ZHCAFM7 July 2025 TMS320F28388D , TMS320F28388S
由于CPU2和CPU1.CLA1之间不存在的共享RAM空间,传统的方法是通过IPC模块实现CPU2和CPU1.CLA1的数据交互。
首先,CPU2可以通过IPC模块(CPU1-CPU2 IPC)将数据传输到MSGRAMx/GSx RAM中,之后CPU1可以通过CPU1.DMA模块通过DMA搬运的方式将数据从MSGRAMx/GSx RAM中搬运到DMA-CLA1 MSGRAM中,最后CPU1.CLA1通过访问DMA-CLA1 MSGRAM将数据读出,并在CLA1中进行后续的处理。
图 2-1 数据流,通过IPC模块实现CPU2和CPU1.CLA1之间数据交互图 2-2为IPC模块实现CPU2和CPU1.CLA1间数据传输的具体过程:
图 2-2 IPC模块实现CPU2和CPU1.CLA1之间数据交互基于上述分析,由于CPU2和CPU1间的数据交互是通过IPC模块实现的,在数据交互过程中,CPU1需要完成上述过程的第三步到第五步,这一过程增加了CPU1的开销。因此在CPU1处理对时间敏感的任务或者CPU1的开销很大时,通过IPC模块实现CPU2和CPU1.CLA1间数据传输的方式存在一定的局限。
如图 2-3所示, CPU1完成第三步到第五步的时间,CPU的开销大约花费2.93us。
图 2-3 使用IPC方法的CPU1的开销