🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
* [7.6:获取数据包](第7章:无操作系统移植LwIP/7.6:获取数据包.md) * [7.6.1:查询方式](第7章:无操作系统移植LwIP/7.6:获取数据包/7.6.1:查询方式.md) * [7.6.2:ping命令详解](第7章:无操作系统移植LwIP/7.6:获取数据包/7.6.2:ping命令详解.md) * [7.6.3:中断方式](第7章:无操作系统移植LwIP/7.6:获取数据包/7.6.3:中断方式.md) 通过上面的步骤,我们能使用开发板获取网络的数据包了,但是获取数据包的方式有两种,一种是查询方式,另一种是中断方式。查询方式通过主函数的while循环进行周期性处理,去获取网卡中是否接收到数据包,然后递交给上层协议去处理,而中单方式则不一样,在网卡接收到一个数据包的时候,就触发中断,通知CPU去处理,这样子效率就会高很多,特别是在操作系统环境下,我们都采用中断方式去获取数据包。当然,查询方式与中断方式的网卡底层初始化是不一样的,主要是通过网卡接收方式的配置进行初始化,在初始化的时候,如果网卡接收模式被配置为ETH\_RXINTERRUPT\_MODE,则表示使用中断方式获取数据包,而如果网卡接收模式被配置为ETH\_RXPOLLING\_MODE则表明用查询方式获取数据包。 提示:网卡底层初始化函数是Bsp\_Eth\_Init(),在bsp\_eth.c文件中,用户可以自行修改。