【rt-thread难点指南】以太网配置

【rt-thread难点指南】以太网配置

本文以以太网口LAN8720A、MCU型号为stm32f407为例,介绍以太网配置步骤。如果有问题或建议,欢迎留言或邮件automationcarlo@163.com沟通。

一、cubemx配置

1.通过rt-studio打开cubemxcubemx

2.打开connectivity,选择ETH

在这里插入图片描述

3.选择mode为RMII

在这里插入图片描述

4.选择自己板子对应的引脚

具体引脚自己参考自己板子的原理图,这里以我的板子原理图为例。注意PD3为以太网接口复位引脚,这里先不对其进行配置。
在这里插入图片描述
在这里插入图片描述

修改Ethernet MAC Address 可以修改mac地址,这里保持默认。
修改mac
保持默认
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.选择不要生成main()

在这里插入图片描述

6.生成代码

cubemx其余选项不用管,点击生成代码
在这里插入图片描述

二、rt-studio配置

1.点击确认,并编译

在这里插入图片描述
我们编译直接过了,你编译没过也不要紧,跟着步骤来就行/
在这里插入图片描述

2.配置board.h

在这里插入图片描述
按照英文提示去掉注释
在这里插入图片描述

/*-------------------------- ETH CONFIG BEGIN --------------------------*/

/** if you want to use eth you can use the following instructions.
 *
 * STEP 1, define macro related to the eth
 *                 such as    BSP_USING_ETH
 *
 * STEP 2, copy your eth init function from stm32xxxx_hal_msp.c generated by stm32cubemx to the end if board.c file
 *                 such as     void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
 *
 * STEP 3, modify your stm32xxxx_hal_config.h file to support eth peripherals. define macro related to the peripherals
 *                 such as     #define HAL_ETH_MODULE_ENABLED
 *
 * STEP 4, config your phy type
 *                 such as     #define PHY_USING_LAN8720A
 *                             #define PHY_USING_DM9161CEP
 *                             #define PHY_USING_DP83848C
 * STEP 5, implement your phy reset function in the end of board.c file
 *                 void phy_reset(void)
 *
 * STEP 6, config your lwip or other network stack
 *
 */

#define BSP_USING_ETH
#ifdef BSP_USING_ETH
#define PHY_USING_LAN8720A
/*#define PHY_USING_DM9161CEP*/
/*#define PHY_USING_DP83848C*/
#endif
/*-------------------------- ETH CONFIG END --------------------------*/

3.打开RT-Thread Settings

在这里插入图片描述

4.RT-Thread Settings配置

使能以太网物理层驱动
在这里插入图片描述

打开网络配置,如下图(内部参数保持默认)
在这里插入图片描述

5.保存退出,打开board.c

添加如下代码
这以太网上电的时候系统会自动调用这个函数,这里要补全,不然会报错,还记得我在前面说的我的以太网模块复位引脚是PD3吗

#include <pin.h>

#define RESET_IO GET_PIN(D, 3)
void phy_reset(void)
{
   rt_pin_mode(RESET_IO, PIN_MODE_OUTPUT);
   rt_pin_write(RESET_IO, PIN_HIGH);
   rt_thread_mdelay(50);
   rt_pin_write(RESET_IO, PIN_LOW);
   rt_thread_mdelay(50);
   rt_pin_write(RESET_IO, PIN_HIGH);
}

如果提示找不到pin.h文件,请注意是否打开pin设备驱动程序
在这里插入图片描述

6.修改部分文件

a.修改phy.h

我们打开phy.h,路径如下图
在这里插入图片描述
注释掉32行
在这里插入图片描述

b.修改main.c

我们打开main.c,路径如下
在这里插入图片描述
删除
在这里插入图片描述
删除整个函数
在这里插入图片描述
删除整个函数
在这里插入图片描述

d.修改stm32f4xx_hal_conf.h

取消掉串口的注释
在这里插入图片描述

7.编译常见错误

如果提示找不到pin.h文件,请关注include路径,这个文件是在这个位置。
在这里插入图片描述在这里插入图片描述

如果出现如下错误,请关注这里是否已打开注释。
在这里插入图片描述
在这里插入图片描述

8.运行结果

a.编译结果

在这里插入图片描述

b.运行结果

请确保你的以太网口,已经连通网络

ifconfig 获取当前设备ip
在这里插入图片描述
ping工具–常见网络测试工具
在这里插入图片描述

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
RT-Thread是一个开源、灵活且适用于嵌入式系统的实时操作系统,而RISC-V则是一种基于开源指令集架构的处理器设计。要在RISC-V平台上进行RT-Thread的移植,需要进行以下几个步骤: 1. 硬件平台选择:首先,需要选择适合的RISC-V硬件平台来运行RT-Thread。可以选择一些流行的RISC-V开发板,如SiFive HiFive系列或者Loongson等。根据硬件平台选择适当的编译工具链和开发环境。 2. 编译工具链准备:为了在RISC-V平台上编译RT-Thread,需要准备适当的编译工具链。可以使用开源的RISC-V GNU工具链或LLVM工具链来编译和调试程序。 3. 移植RT-Thread内核:将RT-Thread的内核源代码移植到RISC-V平台上。首先,需要根据目标平台的处理器架构,修改相关的的代码。然后,根据硬件平台的特性和需求,配置相关的外设驱动和系统组件。 4. 配置启动文件和链接脚本:在移植过程中,需要针对RISC-V平台编写适当的启动文件和链接脚本。启动文件负责初始化处理器、设置堆栈和启动操作系统,而链接脚本定义了程序的内存布局和链接规则。 5. 适配设备驱动:移植过程中,可能需要调整和适配一些硬件设备驱动,以便在RISC-V平台上正常工作。这包括串口通信、网络连接和外部设备驱动等。 6. 编译和调试:移植完成后,使用编译工具链将RT-Thread编译为可执行文件,然后将其烧录到RISC-V硬件平台上进行测试。使用调试工具进行调试和性能优化,确保RT-Thread在RISC-V上稳定运行。 总之,要在RISC-V平台上移植RT-Thread,需要根据硬件平台选择适当的工具链并进行适配和配置。通过适配内核、设备驱动和调试进行测试和优化,最终使RT-Thread能够在RISC-V平台上正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值