嵌入式开发者社区

标题: 请教一些关于C6678千兆网子模块的有关问题 [打印本页]

作者: IRONMAN    时间: 2016-8-15 11:59
标题: 请教一些关于C6678千兆网子模块的有关问题
      最近在学习C6678的千兆网部分,第一次接触千兆网,读了TI官方给的两份英文技术手册一份是KeyStone Architecture Gigabit Ethernet (GbE) Switch Subsystem另一份是KeyStone Architecture Network Coprocessor (NETCP)。算是有了一个大致的了解。同时还看了官方给的相关的例程,
现在有几个地方不是特别的清楚。
     第一个让我不清楚的是发送的流程,按照我对例程的理解,每次发送大致是这样的:每次发送n个数据包每个数据包含有m个字节,在发送时需要从队列管理器里(具体的实现函数为KeyStone_queuePop)循环的弹出一个hostDescriptor类型的指针,然后对里面的内容进行相关的初始化,然后用一个数组记录这个hostDescriptor指针的地址,完了再进行下一次的循环一个循环n次。接着再循环的向队列管理器压入刚才已经初始化好了的n个hostDescriptor
这样就完成了一次n*m字节数据的发送。请问我这要描述对吗?
     第二个不清楚的是hostDescriptor到底是干什么的?是给每个队列描述的吗?那又是描述的那些东西?还有就是发送的时候是通过这条语句ucpBuffer= (Uint8 *)hostDescriptor->buffer_ptr; 来得知我要发送的数据数组的首地址,不应该是我自己决定的吗?为什么是由hostDescriptor决定的? 然后就是发送完接收从accumulation list中得到一个hostDescriptor然后由ucpDst= (Uint8 *)hostDescriptor->buffer_ptr;这条语句得到数据被保存的首地址,这个首地址不应该也是由自己事先规定好的吗?不懂了

作者: 希望缄默    时间: 2016-8-15 19:54
NETCP 用到了多核导航 你说的这些都是多核导航的内容 你可以看看那篇文档
作者: IRONMAN    时间: 2016-8-15 20:53
希望缄默 发表于 2016-8-15 19:54
NETCP 用到了多核导航 你说的这些都是多核导航的内容 你可以看看那篇文档

好的...............




欢迎光临 嵌入式开发者社区 (https://51ele.net/) Powered by Discuz! X3.4