本帖最后由 vikione 于 2012-11-20 21:19 编辑
我要写一个以太网转USB的驱动,将以太网接收到的数据通过USB转发到上位机。我已经实现了查询方式从以太网接收数据然后通过USB转发,但是速度太慢。我希望通过中断方式从以太网读取数据,即以太网接收中断来一次,我即使用ETH_HandleRxPkt()函数读一次BUF获取数据(我不走上层协议),我目前使用STM32官网的范例:stm32_eth_lib和STM32F107_ETH_LwIP_V1.0.0都只实现了以查询方式来从以太网读取数据,即在while 1循环中不断的查询,然后读取网卡发过来的数据,但是这样明显速度太慢。其中STM32F107_ETH_LwIP_V1.0.0有中断函数的初始化:NVIC_InitStructure.NVIC_IRQChannel = ETH_IRQn;但是只有当我不注释main函数中的"LwIP_Init()"代码才能进入相应的中断函数,感觉STM32F107_ETH_LwIP_V1.0.0这个中断是有了协议栈的中断,但是我并不需要协议栈,我只需要网卡硬件接收到一帧数据,立即读出即可。
请问有没有采用中断方式读网卡的范例? |