工具与软件:
您好!
面临的问题或需要帮助
我目前正在致力于将 Mongoose TCP/IP 堆栈与我们的不使用 LWIP 的项目集成。 我正在移植 TX 和 RX 中断处理程序、以便与 Mongoose 兼容。 但我遇到了一些困惑、尤其是在关于 RX 描述符数据访问方面。
我注意到代码中的以下内容:
void EMACRxIntISR (void){
hdkif_t * hdkif;
hdkif =&hdkif_data[0U];emacRxNotification (hdkif);
EMACReceive(hdkif);
EMACCoreIntAck (hdkif->EMAC_BASE、(UINT32) EMAC_INT_CORE0_RX);
}
第1个查询:
在emacRxNotification(hdkif)
函数中、我们需要处理用户手册中提到的链接列表、还是可以hdkif
直接使用变量(如hdkif->rxchptr.active_head->bufptr
和)访问完整的缓冲区数据hdkif->rxchptr.active_head->bufoff_len
?
第2个查询:
当试图理解 LWIP 时emacRxNotification
,我观察到它调用lwIPRxIntHandler(0)
. 在此函数中、EMACReceive(hdkif)
除了复制到q = curr_bd
缓冲区之外、它执行与函数执行的操作类似的操作。
我是否应该实施完整的链接列表处理并按照 LWIP 中的方法更新描述符、或者是否足够使用EMACReceive(hdkif)
?
或者、我想将完整的接收缓冲区及其长度传递给 Mongoose 堆栈。 您能否提供一个示例、说明如何接收缓冲区、将其存储在1518字节的本地缓冲区中、或者只是打印接收到的缓冲区、然后在 UART 终端上打印它? 如果这么做、我就可以轻松地理解接收功能、从而将数据传递到 Mongoose 堆栈
此致、
Sandeep C