【STM32F4】【银杏科技ARM+FPGA】iCore3移植RT-Thread--网络功能

随着嵌入式系统功能的多样化以及网络在各个领域中的广泛应用,具备网络功能的嵌入式设备拥有更高的使用价值和更强的通用性。RT-Thread系统提供了一套SAL(套接字抽象层)组件,方便我们网络相关的开发。iCore3搭载W5500网络接口,我们这次带来rt-thread+SAL+W5500的以太网通信。

一、配置W5500的相关GPIO,选择时钟源

1.1 我们打开../BSP/STM32/STM32F407_gingko_iCore3/board/CubeMX_Config来进行SPI(W5500挂载在SPI总线上)引脚的配置,注意与原理图引脚一致,PA7--SPI1_MOSI、PB3--SPI1_SCK、PB4--MISO,这里仍然是只配置IO,其他参数不予更改。配置完成后点击CREATE CODE。

1.2 CubeMX生成工程后,只保留红色方框内的文件,其他的两个文件夹可以删除掉。

1.3 复制刚生成的src文件夹main.c文件夹中的函数SystemClock_Config(void)到board.c。这里内核初始化时要调用该函数进行时钟配置。 

二、打开SPI设备 

2.1打开../BSP/STM32/STM32F407_gingko_iCore3/board/Kconfig:

2.2点击保存,打开Env工具,输入menuconfig命令,使能SPI设备:

2.3保存退出,输入scons --target=mdk5生成工程,打开putty,选择正确的端口号,编译后下载到开发板,输入list_device命令,既可查看:

三、更新软件包

3.1打开../BSP/STM32/STM32F407_gingko_iCore3文件中,在空白处右击,选择“ConEmu Here”:

输入pkgs --upgrade更新软件源:

3.2输入menuconfig命令打开其界面,在IoT-internet of things中选中WIZnet:

保存退出,此时退出ConEmu后再重新打开,输入pkgs --update下载软件包:

四、添加设备驱动文件

4.1在../BSP/STM32/STM32F407_gingko_iCore3/board文件夹下,添加一个设备文件,在文件夹下建立一个.c文件(代码如下):

4.2更改SConscript脚本,讲.c文件添加到工程中:

五、挂载W5500设备

5.1打开../BSP/STM32/STM32F407_gingko_iCore3/board/Kconfig文件,添加一下代码:

5.2打开Env工具,使用menuconfig配置工程,启动SAL:

5.3修改硬件配置,比对rt-thread引脚编号(在drv_gpio.c文件中查询),得知iCore3开发板上的INT连接的是PG2引脚对应编号为98,RST为硬件复位,可以选择空闲引脚编号,这里选择编号96:

5.4启用SPI1:

5.5保存退出,在Env中输入命令:scons --target=mdk5生成工程,编译后下载到开发板,输入list_device:

输入ifconfig可以打印板子的网络状态,正常获得IP,便是网络驱动正常:

打开电脑WIN+R输入CMD打开命令行,输入ipconfig查看电脑的IP,此时应关闭电脑的防火墙:

输入ping 192.168.1.100(iCore3板子的IP地址),可以ping通:

在putty中,输入ping 192.168.1.123(电脑IP),可以ping通:

六、更改iCore3板子IP地址

可通过Env配置固定的IP地址:

再次输入:scons --target=mdk5生成工程。

七、tcp client/udp client例程

完成以上工作,就可以做网络开发了,这里我们以tcp client/udp client为例:

首先打开文件系统:

在软件包中开启基础实例代码tcp client与udp client,路径为:RT-Thread online packages->miscellaneous packages->samples:kernel and components samples->a network_samples package for rt-thread:

点击保存退出配置界面,在Env中输入pkgs --update下载软件包,输入scons --target=mdk5生成工程,打开编译,并下载代码:

7.1打开网络调试助手工具搭建一个TCP服务器,记录下打开的端口号:

在shell中输入tcpclient PC的IP地址及端口号,点击enter提示连接成功:

点击网络调试助手中的发送按钮,提示发送信息,并有返回信息:

在putty中也有返回信息:

7.2将协议切换为UDP:

在shell中输入udpclient PC的IP地址及端口号:

 代码包下载:

链接:https://pan.baidu.com/s/1sY-WcyCDUUj5KkmK3ZWzPw

提取码:wjdx

原文地址:https://www.cnblogs.com/xiaomagee/p/12901649.html