NXP FRDM-MCXN947测评:ETH设备所用到的问题和解决方案

目录

说明

使能PHY驱动

使能网络相关组件

遇到的问题和解决方案

测试结果


说明

此次是参加RT-Thread组织的活动,进行FRDM-MCXN947开发板的评测。本文先发于RT-Thread论坛,稍加修改后发表在我的博客。在上一篇博文中,我介绍了如何配置FRDM-MCXN947开发板的开发环境
我的任务是测试ETH接口,也就是网络接口。开发板提供了RJ45的接口,我们先测试最基本的网络功能,然后在此基础上测试网络相关的应用程序。

我使用的开发环境是Env环境,直接使用命令行进行编译。
在Env中使用menuconfig命令进行配置工作。官方提供了网络的驱动程序,所以可以直接进行有关网络的配置:

使能PHY驱动

在RT-Thread Components -> Device Drivers中选择Using ethernet phy device drivers


使能网络相关组件

在RT-Thread Components -> Network中选择网络相关的组件


遇到的问题和解决方案

不过当直接将程序下载到开发板时遇到了一个问题,当使用ifconfig命令时,程序报告错误:ifconfig: network interface device list error.
然后使用list device命令也确实没有看到网络相关的设备。
经过仔细检查编译日志,发现drv_eth.c文件就压根没有编译。而注册网络设备的工作是在drv_eth.c文件中实现的。我检查了drv_eth.c所在目录的D:\rt-thread\bsp\nxp\mcx\mcxn\Libraries\drivers\SConscript。该文件的内容是这样的:

from building import *

cwd = GetCurrentDir()

src = []

if GetDepend('BSP_USING_PIN'):
    src += ['drv_pin.c']

if  GetDepend('BSP_USING_UART'):
    src += ['drv_uart.c']

if GetDepend('BSP_USING_RTC'):
    src += ['drv_rtc.c']

if  GetDepend('BSP_USING_SPI'):
    src += ['drv_spi.c']

if  GetDepend('BSP_USING_SDIO'):
    src += ['drv_sdio.c']

if  GetDepend('BSP_USING_I2C'):
    src += ['drv_i2c.c']

if  GetDepend('BSP_USING_ADC'):
    src += ['drv_adc.c']

if  GetDepend('BSP_USING_DAC'):
    src += ['drv_dac.c']

if  GetDepend('BSP_USING_HWTIMER'):
    src += ['drv_hwtimer.c']

if  GetDepend('BSP_USING_WDT'):
    src += ['drv_wdt.c']

if  GetDepend('BSP_USING_PWM'):
    src += ['drv_pwm.c']

path =  [cwd,cwd + '/config']

group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path)

Return('group')


从这个文件看,压根就没有添加drv_eth.c,所以即使我们在前面选择了ETH PHY的选项,也不会编译drv_eth.c文件。解决的办法是在文件中加上:

if  GetDepend('RT_USING_PHY'):
    src += ['drv_eth.c']

修改后的文件参见:rt-thread/bsp/nxp/mcx/mcxn/Libraries/drivers/SConscript at master · zealsoftstudio/rt-thread · GitHub

测试结果

再次编译程序并下载,这次程序就可以正常运行了。
我们通过ifconfig命令很容易看到当前的网络配置。ps命令也可以看出当前的各个网络相关线程都正常运行。

再使用PING命令可以正常工作了!

下面我们将继续测试网络的其他功能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值