【LwIP学习营】【第一周】开发板适配

发布于 2018-05-16 21:55:43
硬件平台:
魔笛F4 V1.1 STM32F407ZE
开发环境:
MDK4.72,evn0.7.0,rtt3.0.4
BSP:
STM32F40x

目标:LWIP成功跑起来并且可以PING通

步骤一:RTT启动信息输出,根据原理图PCB板使用25Mhz晶振,串口输出为USART3([Tx]PB10 [Rx]PB11)
1.先使用evn重新生成项目文件
图片1.png

2.编译文件确保源码编译没问题
图片2.png

3.根据README.md中的描述,需要修改BSP中的drivers/stm32f4xx_conf里HSE_VALUE为25000000
图片3.png

4.修改rtt的串口端口,工程中搜索”rt_console_set_device”,在drivers/board.c源码的121行找到,宏定义了”CONSOLE_DEVICE”
图片4.png

源码中查找”CONSOLE_DEVICE”定于,跳转到drivers/board.h,根据源码可知修改STM32_CONSOLE_USART=3即可使用USART3输出
图片5.png

5.进入drivers/usart.c设置usart3使用的引脚,根据宏补全设置
图片6.png

6.编译下载,运行后终端有输出,但是finsh没运行
图片7.png

7通过DEBUG发现程序死在RTH的初始化,屏蔽ETH的初始化,打开drivers/stm32f4xx.eth.c,注释4159行的代码,再编译运行
图片8.png

步骤二:ETH配置,根据魔笛F4 V1.1的原理图,PHY使用LAN8720与BSP包一致,使用RMII接口,PHY使用单片机MCO输出时钟信号,PC0控制PHY的复位信号
1.恢复drivers/stm32f4xx.eth.c的4159行代码
图片9.png

2.打开drivers/stm32f4xx.eth.c 找到35行,这里驱动需要根据原理图配置
图片10.png

3.添加MCO的代码,在rivers/stm32f4xx.eth.c的rt_hw_stm32_eth_init函数里添加
图片11.png

4.添加PHY复位引脚驱动,在rivers/stm32f4xx.eth.c的rt_hw_stm32_eth_init函数里添加
图片12.png

5.编译后即可运行,erx的栈溢出段错误
图片13.png

6.配置erx的栈大小,打开bsp包中的rtconfig.h,找到133行的RT_LWIP_ETHTHREAD_STACKSIZE将512改成1024
图片14.png

7.编译后下载,运行ifconfig命令,IP已经成功获取
图片15.png

8.电脑PING也正常
图片16.png

查看更多

关注者
0
被浏览
1.3k
2 个回答
armink
armink 2018-05-17
赞一个,总结的很详细

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友