硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3973|回复: 17
收起左侧

[RL-TCPnet] STM32F4XX MAC驱动

[复制链接]

5

主题

40

回帖

55

积分

初级会员

积分
55
发表于 2018-3-7 17:52:44 | 显示全部楼层 |阅读模式
最近想学习一下版主的RL-TCPnet教程,由于我手上有一块STM324xG_EVAL的评估板,我想将版主的代码稍做修改移植的这块板子上。评估板的驱动应该是DP83848C,我根据教程从C:\Keil_v474\ARM\RL\TCPnet\Drivers拷贝了文件ETH_STM32F4XX.C将你的驱动文件覆盖了。等程序写到板子上后发现网卡的灯不亮,而且也ping不通。我觉得应该是我的驱动程序有问题,但我不知道问题出在什么地方。我也不想花太多时间在驱动上面,所以想请版主指导一下,帮我解决这个问题。谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106833
QQ
发表于 2018-3-8 02:44:34 | 显示全部楼层
在底层驱动文件ETH_STM32F4XX.C的接个关键部分加上串口打印,看看PHY是否正确配置,具体哪些地方加,在我们的教程移植章节有说明。
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-3-8 18:01:59 | 显示全部楼层
eric2013 发表于 2018-3-8 02:44
在底层驱动文件ETH_STM32F4XX.C的接个关键部分加上串口打印,看看PHY是否正确配置,具体哪些地方加,在我们 ...

由于板子串口接头和我的串口线不匹配,所以暂时还没有加串口打印信息。我使用MDK单步跟踪调试,没有发现什么异常。同时我用ST的CubeMX生成HAL代码,网卡的灯都能亮。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106833
QQ
发表于 2018-3-8 18:17:12 | 显示全部楼层
billa_a 发表于 2018-3-8 18:01
由于板子串口接头和我的串口线不匹配,所以暂时还没有加串口打印信息。我使用MDK单步跟踪调试,没有发现 ...

那你再研究下吧,Cube用的太难受,所以我一直没有去搞。
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-3-8 18:25:01 | 显示全部楼层
好的,谢谢!
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-4-23 19:09:50 | 显示全部楼层
版主 你好!我现在将CubeMX生成的HAL库已经调通,而且添加了接收ETH_IRQHandler(void)和发送程序 send_frame (OS_FRAME *frame),在不加RL-TCPnet的情况下能够接收和发送信息。但是当我加了RL-TCPnet库后ping不通,同时数据也发送不出去。我检查了一下,tcp_send (socket_tcp, sendbuf, maxlen)这个函数执行有问题。版主能否指点一下,看我还什么地方不对?谢谢!
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-4-30 19:46:42 | 显示全部楼层
版主 你好!我对自己的程序做了修改,程序能够执行到发送的驱动程序(这个发送的驱动程序我原来已经验证过,发送数据没有问题)。但是我通过网络调试工具发现,数据并没有发送出来。我使用单步跟踪发现,传到驱动层的数据没有要发送的数据。我根据传过来的地址查看了一下,在超出地址范围很远的地方才找到了要发送的数据。我想我在发送之前的代码应该没有问题,代码如下:
sendbuf = tcp_get_buf(maxlen);
sendbuf[0] = '1';
sendbuf[1] = '2';
sendbuf[2] = '3';
sendbuf[3] = '4';
sendbuf[4] = '5';
sendbuf[5] = '6';
sendbuf[6] = '7';
sendbuf[7] = '8';                               
tcp_send (socket_tcp, sendbuf, maxlen);

由于TCPnet的库是封装的,我不能跟踪调试,就不知道它是如何处理数据的。版主能否指点一下,看我这个是什么问题?

另外目前我的网络配置文件是直接用的你们例程,但是发出去的帧的IP地址都是全0,不知道这是什么原因?

谢谢!
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-4-30 19:50:16 | 显示全部楼层
另外我发现下面这条语句执行也不能通过
if (tcp_check_send (socket_tcp) == __TRUE)
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-6-26 21:01:29 | 显示全部楼层
我查了一下这块板子的相关资料,发现要使网卡工作,需要跳线。我调完线后,网卡能够正常工作了,TCPnet的server程序能跑起来了。
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-6-26 21:20:33 | 显示全部楼层
但是当我按照版主的教程写TCPnet客户端的程序时,测试工具可以创建服务器,但启动服务器时,服务器模式不能连接客户端。我通过单步跟踪调试程序发现,通过按键发送数据到服务器,函数tcp_check_send(socket_tcp)不能返回TRUE。想请教版主这是什么问题?

客户端连接

客户端连接


C:\Bill\Client connection.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106833
QQ
发表于 2018-6-27 00:27:54 | 显示全部楼层
billa_a 发表于 2018-6-26 21:20
但是当我按照版主的教程写TCPnet客户端的程序时,测试工具可以创建服务器,但启动服务器时,服务器模式不能 ...

ping你的客户端,正常吗。
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-6-27 18:49:58 | 显示全部楼层
发现ping不通
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106833
QQ
发表于 2018-6-28 01:24:55 | 显示全部楼层

程序还没有移植好,有问题。
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-6-30 20:29:24 | 显示全部楼层
我使用keil自带的LEDClient程序,能够ping通,但是收不到发出来的字符,使用调试工具也看不到客户端。我通过调试发现程序老是处于TCP_STATE_CLOSED状态,然后调用tcp_connect (socket_tcp, Rem_IP, PORT_NUM, 0)函数进行连接,而且连接成功。但是程序不能进入TCP_STATE_CONNECT状态,所以不能发送数据。版主是否知道这个是什么原因?谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106833
QQ
发表于 2018-7-1 01:27:21 | 显示全部楼层
billa_a 发表于 2018-6-30 20:29
我使用keil自带的LEDClient程序,能够ping通,但是收不到发出来的字符,使用调试工具也看不到客户端。我通 ...

你是不是板子跟电脑直连测试的,如果是的话,先关闭防火墙。

ps:实在不行的话,淘一个我们的V5或者V6裸板吧,省事些,或者网上看看有没有卖二手的,这样效率高些,容易找到问题。
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-7-2 20:16:57 | 显示全部楼层
我关闭了防火墙,LEDClient能够和调试工具正常通讯了。谢谢版主!另外我想问一下,我的server程序没有关闭防火墙,但是也能够正常同调试工具通讯,这是为什么?

是要考虑买一个V6板了,这样效率高一些,要不然在一个小问题上花太多时间了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106833
QQ
发表于 2018-7-3 00:26:15 | 显示全部楼层
billa_a 发表于 2018-7-2 20:16
我关闭了防火墙,LEDClient能够和调试工具正常通讯了。谢谢版主!另外我想问一下,我的server程序没有关闭 ...

电脑的防火墙是防止外界攻击用的。而板子做服务器的话,防火墙不管电脑往外访问的。
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2018-7-3 19:52:02 | 显示全部楼层
谢谢指教!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-6 18:39 , Processed in 0.338199 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表