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.
请教一下。
在下图中,数据和地址通过IPC发送到CM4内核。我自己的数据是存在以下数组send_buff [150]中。我可以直接用send_buff替换函数中的packetData吗?
我在函数的注释中看到,packetData对应于地址,而PACKET_LENGTH对应于数据。
这句话使我有些困惑。
我目前的进展是,需要由CPU1内核运行的项目已得到改进,并且CM4内核的项目也已准备就绪。接下来,只要更改Web服务中的http文件,就可以通过以太网将CM4接收到的数据发送到计算机IP地址为192.168.0.4的网页并实时显示?
特来请教
谢谢
ETHERNET的相关问题建议您去英文论坛发帖询问。关于
我在函数的注释中看到,packetData对应于地址,而PACKET_LENGTH对应于数据。
这句话使我有些困惑。
请问您的疑惑是什么?
注释中写的是对应地址,但实际的使用,packetData是一个数组,PACKET_LENGTH是数组的长度。
还有一点,电脑上,要准备什么,才能接收到ethernet发出的数据呢?
还有一点,电脑上,要准备什么,才能接收到ethernet发出的数据呢?
请看一下 https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/998994/tms320f28388d-c2000-microcontrollers-forum
抱歉,目前我们办公室环境下不太方便测试以太网
注释中写的是对应地址,但实际的使用,packetData是一个数组,PACKET_LENGTH是数组的长度。
//*****************************************************************************
//
//! Sends a command to the Remote core
//!
//! \param ipcType is the enum corresponding to the IPC instance used
//! \param flags is the IPC flag mask for the flags to be set
//! \param addrCorrEnable is the flag used to determine whether or not to
//! convert the addr parameter to remote core's address space
//! \param command is the 32-bit command value
//! \param addr is the 32-bit address to be sent as part of command
//! \param data is the 32-bit data to be sent as part of command
//!
//! Allows the caller to send a command to the remote core. A command consists
//! of a unique command value, a 32-bit address and a 32-bit data. The function
//! also sends the designated flags to the remote core.
//! There may be differences in the address spaces of Local and Remote core.
//! For example in case of F2838X device, the address spaces of C28x core and
//! CM core are different. In case the \e addr refers to an address in the IPC
//! MSG RAM, \e addrCorrEnable param may be used to correct the address mismatch
//!
//! The \e flags parameter can be any of the IPC flag values: \b IPC_FLAG0 -
//! \b IPC_FLAG31.
//! The \e addrCorrEnable parameter can take values IPC_ADDR_CORRECTION_ENABLE
//! (converts the address to remote core's address space) or
//! IPC_ADDR_CORRECTION_DISABLE(does not modify the addr parmeter)
//!
//! The application shall use the function IPC_getResponse to read the response
//! sent by the remote core.
//!
//! \note The application is expected to wait until the the response is
//! received before sending another command.
//!
//! \note \e addrCorrEnable parameter must be kept same on the sending and
//! receiving cores
//!
//! \return Returns \b true if the command is sent properly and \b false if
//! the designated flags were busy and hence command was not sent.
//
//*****************************************************************************
extern bool
IPC_sendCommand(IPC_Type_t ipcType, uint32_t flags, bool addrCorrEnable,
uint32_t command, uint32_t addr, uint32_t data);
CM内核无法访问GSRAM。有专用的MSG RAM用于在内核之间共享数据-CPU1TOCPU2MSGRAM,CPU2TOCPU1MSGRAM,CPU1TOCMRAM,CPU2TOCMRAM,CMTOCPU1RAM,CMTOCPU2RAM
您可以使用这些RAM将数据从一个内核发送到另一个内核。IPC_sendCommand函数配置IPC模块中的命令寄存器,并在远程核心上触发一个中断(如果在远程核心上启用了中断),表明该命令可用。该命令包括3个32位字。如果要发送大量数据,则可以将数据放入MSGRAM中,并使用IPC_sendCommand共享数据的起始地址。由于这些RAM的地址在CPU和CM中不同,因此该功能会自动更正地址参数。
C2000ware中有一个可用的示例对此进行了演示。希望这可以帮助。
<C2000ware> \ driverlib \ f2838x \ examples \ c28x_cm \ ipc \ ipc_ex1_basic_c28x1
很有帮助
感谢,但是也是有个问题,enet_lwip这个例程,我把他拷贝到工作空间中,进行修改。发现c盘的文件也跟着变化。当系统提示需要更新C2000ware的时候,更新结束,我修改后保存的enet_lwip例程,又被更新成最原始的状态。
有什么链接文件删除一下,就能解决这个问题吗?还是说,必须要新建一个工程,将enet_lwip这个例程放过去?
特来请教
感谢