Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi
Ethernet_以太网
LWIP
关于将art-pi的eth设备移植到H7系列开发板上使用小结
5.00
发布于 2021-06-03 13:31:39 浏览:2110
订阅该版
开发板: ART-PI或者其他STM32H7系列开发板 开发环境: rtthread studio 参考文档: ETH 设备 - RT-Thread 文档中心 https://www.rt-thread.org/document/site/rtthread-studio/drivers/eth/rtthread-studio-eth/ 网络协议栈驱动移植 https://docs.rt-thread.org/#/rt-thread-version/rt-thread-standard/application-note/components/network/an0010-lwip-driver-porting 手头除了Art-Pi还有一块Nucleo-H743的开发板,近期由于项目需要使用到ETH以太网设备,而ART-PI当时购买的时候没配置工业扩展版,那就只能用Nucleo-H743来顶一顶啦。本想着是同系列的主控,移植起来应该挺方便,没想到还是踩了坑。这里把踩过的坑分享出来,也方便其他小伙伴在做移植的时候可以参考。 目前已经成功移植到Nucleo-H743开发板上,以及另外两块H750VB和H743VB的板子上都能实现ETH设备正常工作。 **关于时钟树的配置** 如果手头的板子上使用的晶振和ART-PI一样是25MHz的晶振,那恭喜你,直接复制art-pi的时钟树配置就可以了。位于board.c文件内的函数void system_clock_config(int target_freq_mhz) 如果是和Nucleo-H743开发板一样,使用的是8MHz的外部时钟,那就应该如下配置:  对于使用其他频率的晶振的,那就打开cubemx进行配置,完成之后生成代码,再拷贝到drv_clk.c文件内的void system_clock_config(int target_freq_mhz) **关于配置MPU** 主要是配置AXI SRAM的保护以及以太网Buffer的保护   关于ETH的BUFFER的配置很重要,如果没有配置好,或者配置的不对,有可能造成的现象就是网络部稳定,或者无法DHCP成功。这里卡了我几天时间,一开始总是搞不明白为什么上电后很难从路由器DHCP分配到IP地址联网,后面通过用wireshark抓包才发现是发送的数据包有erro,最后查到问题点就是在于MPU没有配置好。 上面这组配置我尝试后挺稳定的,目前还没发现有问题,基本上上电后马上就能连接到网络。 **关于链接脚本link.lds** 建议参考art-pi的,或者直接抓过来用。我一开始没有配置红框中的内容,结果就是根本就连不上网。  **关于board.h文件的配置** 这里没什么特别的,按照说明进行配置就好,目前我自己用的网络PHY芯片是LAN8742A,通过查询大佬们的贴子,寄存器配置是兼容LAN8720A的,因此这里直接选择LAN8720A即可。  **关于board.c文件的配置** 这里主要是对于ETH接口的底层硬件初始化,可以使用cubemx来生成代码,然后拷贝过来。这里需要注意两点,IO口的速度要配置成HIGHT或者VERYHIGH。另外一点就是要开启中断。  记得还要到stm32xxxx_hal_config.h文件打开宏定义HAL_ETH_MODULE_ENABLED  **关于组件的配置** 完成上述编辑之后,就可以进入rtthread settings配置功能选项了,需要在组件里面打开功能如下图所示:  基本上保持默认设置就可以了,编译通过没有报错,下载到板子上应该就可以了。  使用ifconfig查看一下是否已经连上路由器  使用ping查看一下是否通  **关于可能出现的错误排查** 关于编译出错,如下图所示:  解决方法,是用art-pi项目工程下的drv_eth.c和drv_eth.h文件替换即可。 关于初始化出错  这个就是前面提到的链接脚本没有eth buffer的问题。只要按下图方式配置即可 
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
adaphoto
这家伙很懒,什么也没写!
文章
25
回答
44
被采纳
5
关注TA
发私信
相关文章
1
RT-THREAD在STM32H747平台上移植lwip
2
{lwip}使能RT_LWIP_DHCP时可以获取到ip
3
stm32f103 LWIP 2.0.2 TCP收发问题
4
lwip2.1不重启修改IP
5
关于网络协议栈的测试
6
可否将LWIP升级到2.1.2 和 2.0.3?
7
socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
8
tcpclient 插拔网线问题?
9
两个tcpclient同时通讯可以吗?
10
SO_BINDTODEVICE 未定义该如何解决
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
cubemx
UART
ESP8266
WIZnet_W5500
BSP
ota在线升级
PWM
flash
packages_软件包
freemodbus
潘多拉开发板_Pandora
ADC
GD32
定时器
编译报错
flashDB
keil_MDK
socket
中断
rt_mq_消息队列_msg_queue
Debug
ulog
SFUD
msh
C++_cpp
at_device
本月问答贡献
出出啊
1524
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
818
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部