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.
大家好、
我想在 CPU1和 CPU2之间执行 IPC。
我可以在 TMS320F2837D 上执行它、但现在我想对 TMS320F28388D 执行相同的操作。
C2000_Ware 不提供任何定义 IPC 寄存器的头文件。
这简单的代码行:
while (IpcRegs.IPCFlG.bit.IPC3){}
由于 IP 寄存器不是由 TI 定义的、因此在 TMS320F28388D 上不再可用。
由于 TMS320F28388D 仍在开发中、CPU1和 CPU2之间的 IPC 目前是否尚未准备就绪?
我已安装最新版本的 C2000 (C2000Ware_2_00_00_03)。
此致、
Marcel。
Marcel
IPC 现已推出并可供使用。
您可以在/device_support/f2838x/headers/include/f2838x_ipc.h 下找到 IPC 位字段标头(有关名称、请参阅文件底部)
IpcRegs 在 F2838x 软件中重命名、因为 IPC 与 CPU2或 IPC 与 CM 之间有一个单独的 IpcRegs。
此外、您可以在此处看到示例: \driverlib\f2838x\examples\C28x_dual
此致
Chris
感谢您的快速回答。
仅为记录目的、为了在 CPU2上使用 IPC 寄存器、我必须对文件进行一些调整、因为头文件中的预处理器命令错误。
以下是 f2838x_ipc.h 中的内容
#ifdef CPU1 extern volatile struct CPU1TOCPU2_IPC_regs_CPU1VIEW Cpu1toCpu2IpcRegs; extern volatile struct CPU1TOCM_IPC_regs_CPU1VIEW Cpu1toCmpcRegs; #Elif CPU2 IPC2TO_IPC2Vout ;volatile CP2UPC2U2TO_UST_Utru2u_IPC2V Ut Ips_u2u2u_u_vu2u_vu_vuilot Cpu2u_vu_vu_vuilt IpcRegs;#ipu2u2u_ipu2u2u2u_unatile CP2u2u2u_ipu_ipu_
但是、为了使其正常工作、我必须将其更改为。
#ifdef CPU1 extern volatile struct CPU1TOCPU2_IPC_regs_CPU1VIEW Cpu1toCpu2IpcRegs; extern volatile struct CPU1TOCM_IPC_regs_CPU1VIEW Cpu1toCmIpcRegs; #Elif defined (CPU2) IPC2TO_IPC_REGs ;exvolatile C2U2UPC2VDUT_IPC2TO_UST_IPCU2 IPCUt Ips_DRVout;#eUS2TO_IPC2TO_IPCU2 IPOUT_IPCUt IPC2 volatile Cpu2 IPC2u_IPCu_US_IPOINEST_Ut
谢谢、此致、
Marcel。
很棒!
谢谢、我会将此问题报告给团队
此致
Chris