器件型号:TMDSEVM6670
工具/软件:TI-RTOS
大家好、团队、
在 C6670上实施 SRIO 期间、我遇到了以下问题:
我的代码基于 SRIO_LpbkDioIsr_evmc6678_C66BiosExampleProject
因此、有两个缓冲区: srcDataBuffer 和 dstDataBuffer。
我的通信工作正常、当 TX 缓冲区发生变化时、RX 数据也发生变化。 一切都好。
然后、我尝试在您提供的 RX 缓冲区上使用 memcpy、以将我收到的数据复制到另一个缓冲区、我计划对其进行进一步计算。
我使用 dstDataBuffer 执行的所有操作如下所示:
#define Size_DIO_packet 256
#define SRIO_DIO_LSU_ISR_NUM_Sockets 1
SRIO_SockHandle hSrioSock;
uint8* dstDataBuffer;
dstDataBuffer =(uint8_t*) OSAL_srioDataBufferMalloc (size_DIO_packet);
if (dstDataBuffer = NULL)
&
System_memf ("错误:目的缓冲区(0) sockpit (0);dstio_sock_sense0[s/set_s/set_s/set_s/setrfu_s/set_s/setrfu_s/setrfu_s[s/set_s/setrfu_s/set_s/sh
);fet (0)、s/set_s/set_s/set_s/setrfu_s/set_sense0](0
)、s/set_s/set_s/set_s/set_s/set_s/set_s/set_s/set_s/set_s/set
//我的数据缓冲区定义如下:
uint8_t* data = new uint8_t [256];
memset (&data[0]、0、size_DIO_packet);//零填充
如果我只复制1字节的 dstDataBuffer、则将接收的下一个数据包大小为255字节。 如果我复制256B、则所有数据包都会"冻结"、并且没有任何单字节发生变化。
我尝试以多种方式分配这些 src 和 dst 缓冲区、同时也使用 malloc 或新 uint8_t、但没有成功。
现在、我可以接收许多数据包、但我无法将它们用于任何内容。 如果我尝试、我的 SRIO Rx 缓冲器将被"冻结"、直到完全 DSP 复位。
如果您需要更多的配置数据 plz 写入。
期待您的回复、
提前感谢您、
Maciej