以太网驱动的数据结构EMAC_DRIVER,包含以下成员:
- TxdescRing: 发送描述符环形缓冲区数组,每个元素是一个指向发送描述符的指针。
- RxdescRing: 接收描述符环形缓冲区数组,每个元素是一个指向接收描述符的指针。
- TxBuffer: 发送缓冲区,用于存储待发送的网络数据包。
- RxBuffer: 接收缓冲区,用于存储接收到的网络数据包。
- TxdescRingMap: 发送描述符环形缓冲区的映射信息,包括虚拟地址和物理地址。
- RxdescRingMap: 接收描述符环形缓冲区的映射信息,包括虚拟地址和物理地址。
- RxBufNum: 接收缓冲区编号,用于表示每个接收缓冲区的编号。
- TxCurrentDescriptorNum: 当前发送描述符的编号。
- TxNextDescriptorNum: 下一个可用的发送描述符的编号。
- RxCurrentDescriptorNum: 当前接收描述符的编号。
- RxNextDescriptorNum: 下一个可用的接收描述符的编号。
该结构体用于管理以太网驱动的发送和接收缓冲区、描述符环形缓冲区等相关信息。
SnpReceive,DriverStart,EmacSetupRxdesc三个地方使用,但是理解的不透彻,没有注释,这个逻辑看的比较费劲,EmacSetupRxdesc中DESIGNWARE_HW_DESCRIPTOR *RxDescriptor;是局部变量给他赋值的意义是什么并没用它再去设置什么?