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.
工具与软件:
各位专家、您好!
想知道 C7x 是否支持分散/集中写/读存储器操作。
我们将 索引加载为 int16、这些索引可以指向输入图像中的任何位置。
是否有指令 可以帮助从存储器执行此类加载。
在 Processor SDK 中有适用于这种特定情况的示例吗?
提前感谢、
Akhil
Akhil、
让我看一下、然后返回。
此致
Shankari G.
Akhil、
我们来这里…
有关使用散聚功能的一些信息。
有关更多信息、请参阅:- 4.6. Enet—平台开发套件(PDK)- Jacinto 用户指南
在为 J721e 安装 Processor SDK RTOS 时、请 访问 https://www.ti.com/tool/PROCESSOR-SDK-J721E
您将在以下路径中找到用户指南。
---
\ti-processor-sdk-rtos-j721e-evm-08_06_01_03.tar\ti-processor-sdk-rtos-j721e-evm-08_06_01_03\pdk_jacinto_08_06_01_03\docs\userguide\jacinto\modules\enet.html
---
从 SDK 8.5开始、Enet LLD 仅为数据包传输提供对 UDMA 散聚功能的支持。 散聚目前不支持数据包接收。
针对散聚引入了 Enet LLD API 更改、这会破坏与以前的 SDK 的兼容性。 主要改变应用用来将以太网帧缓冲区和缓冲区长度传递给驱动程序的参数。
为了与之前的 API 进行比较、我们考虑使用单个连续缓冲器的情况(即散射段数为1)。
参数 | SDK 8.4或更低版本 | SDK 8.5+ |
---|---|---|
缓冲指针 | EnetDma_PktInfo::bufPtr |
EnetDma_PktInfo::sgList.list[0].bufPtr |
原始缓冲区长度 | EnetDma_PktInfo::orgBufLen |
EnetDma_PktInfo::sgList.list[0].segmentAllocLen |
已填充的缓冲区长度 | EnetDma_PktInfo::userBufLen |
EnetDma_PktInfo::sgList.list[0].segmentFilledLen |
应用程序可以传递最多四个段用于数据包传输 ENET_UDMA_CPSW_MAX_SG_LIST
、如所定义。 值得注意的是、Enet LLD 使用相同 EnetDma_PktInfo
类型的数据包接收、但仅强制执行单个段、因为当前未启用数据包接收的散聚。
散聚列表信息由应用程序通过 EnetUdma_PktInfo::sgList
数据包信息结构的参数提供给驱动程序。 应用程序必须设置段EnetUdma_PktInfo::sgList.numScatterSegments
EnetUdma_PktInfo::sgList.list[]
数()以及数组中每个段的缓冲指针和长度。
相关结构如下所示:
/*! 散聚列表条目*/ typedef 结构 EnetUdma_SGListEntry_s { /*! 指向散点片段的指针*/ uint8_t * bufPtr; /*! 散点片段中有效数据的长度*/ uint32_t segmentFilledLen; /*! 散点片段分配的缓冲区长度*/ uint32_t segmentAllocLen; } EnetUdma_SGListEntry; /*! 数据包散点列表信息*/ typedef 结构 EnetUdma_SGList_s { /*! 数据包中有效散射段的数量*/ uint32_t numScatterSegmentations; /*! 具有有关每个单独散点分段的信息的 scatterList 数组*/ EnetUdma_SGListEntry 列表[ENET_UDMA_CPSW_MAX_SG_LIST]; }EnetUdma_SGList; /*! 数据包数据结构*/ typedef 结构 En4024_contis Udma_Pkt { ... /*! 分散收集列表信息、用于传输要传输的数据包。 */ EnetUdma_SGList sgList; } Encontribuation; Udma_Pkt /*! 表示 DMA 数据包的不透明句柄*/ typedef struct Enabiroci_s Enabiri; Udma_Pkt Dma_Pkt
在 Enet LLD 与 lwIP 协议栈的集成中也启用了用于数据包传输的散聚。 请注意、 LWIP_NETIF_TX_SINGLE_PBUF
必须禁用 lwIP 才能将多个段传递到适配层和 Enet 驱动程序。
在 Enet LLD 环回测试和 lwIP 示例应用中、默认启用散聚功能。
此致
Shankari G.