[MCU] 【先楫HPM6750EVK2】-5.OpenHarmony驱动以太网

Angel_YY   2023-2-4 16:17 楼主

开发板是支持两路以太网的,一路千兆,一路百兆。那么接下来就是学习如何使系统成功接入网络。
001.png 在源代码编译文件中可以看到,默认是已经编译了lwip的。
002.png 而且在串口输出信息中也可以看到两路以太网都已经启动,并设定好了IP地址等信息,但是与我所在网段不一致,所以需要修改这些信息。
003.png 在device/board/hpmicro/hpm6750evk2/liteos_m/lwip_adapter/hpm_lwip.c文件中,定义了一个结构体数组enetDev,数组长度为2,分别代表两个板载的以太网的配置信息。其中【0】的name为geth为千兆网卡,ip和网关已经设置了,但是与我的网段不匹配。
004.png 修改ip和网关,使其适合我的网络,保存。
005.png 在vendor/hpmicro/hpm6750evk2/application/lwip/iperf.c中有一个IperfServerTest函数,主要功能是打印ip,掩码,网关等信息。
006.png 保存后重新编译,下载到开发板,连接千兆网口到交换机,在PC机上ping一下开发板的ip,此时已经ping通了。
007.png 在开发板的串口终端中ping一下网关,也是可以ping通的。
008.png 串口终端中可以使用help命令获取开发板所支持的命令。
ifconfig可以查看当前网络情况。
通过task命令可以查看lite-os加载的任务情况,其中tcpip_thread任务就是lwip系统了。在操作系统环境下,LwIP会作为一个任务运行,任务的名字叫tcpip_thread,在初始化LwIP的时候,内核就会自动创建这个任务,并且在任务运行的时候阻塞在邮箱上,等待数据进行处理,这个邮箱数据的来源可能在底层网卡接收到的数据或者上层应用程序的数据,总之,tcpip_thread任务在获取到邮箱中的数据时候,就会退出阻塞态,去处理数据,在处理完毕数据后又进入阻塞态中等待数据的到来,如此反复。
至此开发板的网络连接初步调试完成。

回复评论 (1)

网络连接的调试,ping命令还是挺管用

点赞  2023-2-5 22:31
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复