请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
楼主: eric2013
收起左侧

[以太网] 新版RL-TCPnet V7.X网协议栈和物联网教程开始更新,配RTX5和FreeRTOS两版本,更新至第14章(2020-01-19)

  [复制链接]

2

主题

34

回帖

40

积分

新手上路

积分
40
发表于 2019-11-19 00:27:11 | 显示全部楼层
可以开干了
回复

使用道具 举报

6

主题

126

回帖

144

积分

初级会员

积分
144
发表于 2019-11-19 01:19:07 | 显示全部楼层

硬汉大哥辛苦啦!没有白等哦,一直在刷
回复

使用道具 举报

12

主题

141

回帖

177

积分

初级会员

积分
177
发表于 2019-11-19 06:33:44 | 显示全部楼层
支持大佬,但要注意身体,不要太晚
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2019-11-19 08:45:06 | 显示全部楼层
支持硬汉,期待已久
回复

使用道具 举报

3

主题

1220

回帖

1229

积分

至尊会员

积分
1229
发表于 2019-11-19 08:46:37
硬汉,果然是硬汉, 这么敬业!!!感谢大佬的付出!

23

主题

1403

回帖

1472

积分

至尊会员

积分
1472
发表于 2019-11-19 09:52:01 | 显示全部楼层
cool!终于等来了
代码不规范,亲人两行泪!
回复

使用道具 举报

36

主题

2038

回帖

2146

积分

至尊会员

积分
2146
发表于 2019-11-19 10:15:20 | 显示全部楼层
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2019-11-19 15:43:18 | 显示全部楼层
硬汉能不能出一个基于标准库的模板
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-11-19 16:14:25 | 显示全部楼层
BENHUAN 发表于 2019-11-19 15:43
硬汉能不能出一个基于标准库的模板

标准库的不好在新版上面用了,得重新做个标准库版的底层驱动才行。工作量还不小的。
回复

使用道具 举报

3

主题

1220

回帖

1229

积分

至尊会员

积分
1229
发表于 2019-11-19 21:57:08 | 显示全部楼层
硬汉辛苦了!!!大佬都不容易啊!!
回复

使用道具 举报

36

主题

1445

回帖

1553

积分

至尊会员

积分
1553
发表于 2019-11-23 21:41:49 | 显示全部楼层
老大厉害,赞。
回复

使用道具 举报

2

主题

51

回帖

57

积分

初级会员

积分
57
发表于 2019-11-23 23:29:08 | 显示全部楼层
大佬,有没有单独使用RTE添加RTX5或者FreeRTOS的说明啊,我使用裸机工程添加全是问题,毕竟不是都要用网络的嘛。谢谢啦
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-11-24 09:25:58 | 显示全部楼层
菜鸡的成长之路 发表于 2019-11-23 23:29
大佬,有没有单独使用RTE添加RTX5或者FreeRTOS的说明啊,我使用裸机工程添加全是问题,毕竟不是都要用网络 ...

有,教程里面写着呢,先说明的添加RTX5或者FreeRTOS,然后添加的网络协议栈。
回复

使用道具 举报

2

主题

51

回帖

57

积分

初级会员

积分
57
发表于 2019-11-24 10:12:50 | 显示全部楼层
eric2013 发表于 2019-11-24 09:25
有,教程里面写着呢,先说明的添加RTX5或者FreeRTOS,然后添加的网络协议栈。

大佬,找到原因了,V5的HAL库版本用RTE添加就三个中断错误,标准库的问题就很多
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-11-24 10:21:52 | 显示全部楼层
菜鸡的成长之路 发表于 2019-11-24 10:12
大佬,找到原因了,V5的HAL库版本用RTE添加就三个中断错误,标准库的问题就很多

标准库适合独立移植,不使用RTE环境,但是仅添加RTX5和FreeRTOS方便,添加中间件就不合适了。

所以我们统一开始进入HAL库。现在各大软件厂商很少有基于标准库做软件包升级了,所以想用新东西就比较麻烦。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-11-25 10:12:19 | 显示全部楼层
本周继续开始更新。
回复

使用道具 举报

2

主题

70

回帖

76

积分

初级会员

积分
76
发表于 2019-11-25 11:09:24 | 显示全部楼层
我等CJSON的例程
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-11-28 10:41:10 | 显示全部楼层
请问,模板里void netETH_Notify (uint32_t if_num, netETH_Event event, uint32_t val) 这个在哪里有使用吗
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-11-28 13:43:45 | 显示全部楼层
再问问,MCU那些与PHY相关的引脚是在哪里初始化的,在模板中没有看到啊?
回复

使用道具 举报

3

主题

1220

回帖

1229

积分

至尊会员

积分
1229
发表于 2019-11-28 15:25:49 | 显示全部楼层
截图.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-11-28 15:54:05 | 显示全部楼层
mingri 发表于 2019-11-28 13:43
再问问,MCU那些与PHY相关的引脚是在哪里初始化的,在模板中没有看到啊?

58楼,或者看教程移植章节,里面有详细说明。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-11-28 17:27:34 | 显示全部楼层

谢谢,这个有在教程上看到了,只是在源代码里没有看到在哪里实现
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-11-28 17:29:08 | 显示全部楼层
eric2013 发表于 2019-11-28 15:54
58楼,或者看教程移植章节,里面有详细说明。

引脚配置是有在教程中看到,就是没有在源代码中找到。
还有就是netETH_Notify 这个函数,没有看到怎么用的
回复

使用道具 举报

3

主题

1220

回帖

1229

积分

至尊会员

积分
1229
发表于 2019-11-28 22:02:42 | 显示全部楼层
  1. #if defined(RTE_DEVICE_FRAMEWORK_CLASSIC)
  2. /* Ethernet Pin definitions */
  3. static const ETH_PIN eth_pins[] = {
  4.   { MX_ETH_MDC_GPIOx,  MX_ETH_MDC_GPIO_Pin,        0U },  /* MII, RMII */
  5.   { MX_ETH_MDIO_GPIOx, MX_ETH_MDIO_GPIO_Pin,       0U },  /* MII, RMII */
  6.   { MX_ETH_TXD0_GPIOx, MX_ETH_TXD0_GPIO_Pin,       0U },  /* MII, RMII */
  7.   { MX_ETH_TXD1_GPIOx, MX_ETH_TXD1_GPIO_Pin,       0U },  /* MII, RMII */
  8.   { MX_ETH_RXD0_GPIOx, MX_ETH_RXD0_GPIO_Pin,       0U },  /* MII, RMII */
  9.   { MX_ETH_RXD1_GPIOx, MX_ETH_RXD1_GPIO_Pin,       0U },  /* MII, RMII */
  10.   { MX_ETH_TX_EN_GPIOx, MX_ETH_TX_EN_GPIO_Pin,     0U },  /* MII, RMII */
  11. #if (ETH_MII)
  12.   { MX_ETH_TXD2_GPIOx, MX_ETH_TXD2_GPIO_Pin,       0U },  /* MII, ---- */
  13.   { MX_ETH_TXD3_GPIOx, MX_ETH_TXD3_GPIO_Pin,       0U },  /* MII, ---- */
  14.   { MX_ETH_RXD2_GPIOx, MX_ETH_RXD2_GPIO_Pin,       0U },  /* MII, ---- */
  15.   { MX_ETH_RXD3_GPIOx, MX_ETH_RXD3_GPIO_Pin,       0U },  /* MII, ---- */
  16.   { MX_ETH_TX_CLK_GPIOx, MX_ETH_TX_CLK_GPIO_Pin,   0U },  /* MII, ---- */
  17.   { MX_ETH_RX_CLK_GPIOx, MX_ETH_RX_CLK_GPIO_Pin,   0U },  /* MII, ---- */
  18.   { MX_ETH_CRS_GPIOx,   MX_ETH_CRS_GPIO_Pin,       0U },  /* MII, ---- */
  19.   { MX_ETH_COL_GPIOx, MX_ETH_COL_GPIO_Pin,         0U },  /* MII, ---- */
  20.   { MX_ETH_RX_DV_GPIOx, MX_ETH_RX_DV_GPIO_Pin,     0U },  /* MII, ---- */
  21.   { MX_ETH_RX_ER_GPIOx, MX_ETH_RX_ER_GPIO_Pin,     0U },  /* MII, ---- */
  22. #else
  23.   { MX_ETH_CRS_DV_GPIOx, MX_ETH_CRS_DV_GPIO_Pin,   0U },  /* ---, RMII */
  24.   { MX_ETH_REF_CLK_GPIOx, MX_ETH_REF_CLK_GPIO_Pin, 0U },  /* ---, RMII */
  25. #endif
复制代码
  1. static int32_t Initialize (ARM_ETH_MAC_SignalEvent_t cb_event) {
  2. #if defined(RTE_DEVICE_FRAMEWORK_CLASSIC)
  3.   GPIO_InitTypeDef GPIO_InitStruct;
  4.   const ETH_PIN *io;
  5. #endif

  6.   /* Enable SYSCFG clock */
  7.   RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;

  8.   #if (ETH_MII == 0)
  9.   SYSCFG->PMC |=  SYSCFG_PMC_MII_RMII_SEL;
  10.   #else
  11.   SYSCFG->PMC &= ~SYSCFG_PMC_MII_RMII_SEL;
  12.   #endif

  13.   #if defined(RTE_DEVICE_FRAMEWORK_CLASSIC)
  14.     /* Configure Ethernet pins */
  15.     GPIO_InitStruct.Mode      = GPIO_MODE_AF_PP;
  16.     GPIO_InitStruct.Pull      = GPIO_NOPULL;
  17.     GPIO_InitStruct.Speed     = GPIO_SPEED_HIGH;
  18.     GPIO_InitStruct.Alternate = GPIO_AF11_ETH;

  19.     for (io = eth_pins; io != e_pins[sizeof(eth_pins)/sizeof(ETH_PIN)]; io++) {
  20.       Enable_GPIO_Clock (io->port);
  21.       GPIO_InitStruct.Pin = io->pin;
  22.       HAL_GPIO_Init (io->port, &GPIO_InitStruct);
  23.     }
  24.   #else
复制代码
这些都是在 EMAC_STM32F4xx模块里面。 * Driver:       Driver_ETH_MAC0 * Configured:   via RTE_Device.h configuration file
* Project:      Ethernet Media Access (MAC) Driver for STM32F4xx
  1.     for (io = eth_pins; io != e_pins[sizeof(eth_pins)/sizeof(ETH_PIN)]; io++) {
  2.       Enable_GPIO_Clock (io->port);
  3.       GPIO_InitStruct.Pin = io->pin;
  4.       HAL_GPIO_Init (io->port, &GPIO_InitStruct);
  5.     }
复制代码





回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-11-29 09:29:12 | 显示全部楼层
mingri 发表于 2019-11-28 17:29
引脚配置是有在教程中看到,就是没有在源代码中找到。
还有就是netETH_Notify 这个函数,没有看到怎么用 ...

这个是个回调函数,用户写出来即可,协议栈会自动调用。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-11-29 11:19:00 | 显示全部楼层
eric2013 发表于 2019-11-29 09:29
这个是个回调函数,用户写出来即可,协议栈会自动调用。

我是用这个模板,更改到STM32F407 + LAN8720去运行,调试时没有运动到netETH_Notify,不知道是什么问题,搜索整个工程,也没有找到netETH_Notify在哪里用,按理就是回调函数,也应该在哪里设置吧
回复

使用道具 举报

3

主题

111

回帖

120

积分

初级会员

积分
120
发表于 2019-11-30 16:32:43 | 显示全部楼层
在弄LAN8742A,看了下引脚配置是一样的,其他的没仔细看,从 Keil_v5\ARM\PACK\ARM\CMSIS-Driver\2.4.0\ETH 目录下面搞了个 PHY_LAN8742A.c 和 PHY_LAN8742A.h 直接替换模板里 916x 的驱动,貌似不好使
还有个问题,我板子上的晶振是12M的,直接在 stm32f4xx_hal_conf.h 文件里修改 HSE_VALUE 值就可以了吗,记得之前有个 PLL_M 之列的宏要改吧,没找到
之前一直用的 标准库,没用过 HAL 库,还不太熟悉,见谅...
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-11-30 22:55:38 | 显示全部楼层
2019-11-30
更新两个章节。
回复

使用道具 举报

11

主题

68

回帖

101

积分

初级会员

积分
101
发表于 2019-12-2 13:34:27 | 显示全部楼层
V4板子不做HAL库了吗,RL-TCPnet V7.X目前只支持V5 V6 V7,没找到V4的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-12-2 16:12:13 | 显示全部楼层
ymh792260950 发表于 2019-12-2 13:34
V4板子不做HAL库了吗,RL-TCPnet V7.X目前只支持V5 V6 V7,没找到V4的

我们V4板子已经淘汰了。
回复

使用道具 举报

32

主题

295

回帖

391

积分

高级会员

积分
391
发表于 2019-12-5 00:01:57 | 显示全部楼层
硬汉辛苦了,串口打印信息部分可以加个备注:开启串口打印信息,PING网络会出现延时增加的情况,关闭或者减少打印信息即可解决
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-12-5 15:16:13 | 显示全部楼层
请教下,/* 接收到K3键按下,给远程TCP客户端发送5MB数据 */,一旦按下k3,就死机了,一般是什么原因呢?是分包没有处理好吗
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-12-5 15:25:21 | 显示全部楼层
还有就是在STM32F407上,用这个模板,改成TCP客户端,热插拔网线是可以连接服务器,但是在电脑上网络调试助手上点击关闭连接,就再也连接不上服务器了,一直用netTCP_Connect这个连接服务器,都是返回4
回复

使用道具 举报

32

主题

295

回帖

391

积分

高级会员

积分
391
发表于 2019-12-5 16:08:40 | 显示全部楼层
mingri 发表于 2019-12-5 15:16
请教下,/* 接收到K3键按下,给远程TCP客户端发送5MB数据 */,一旦按下k3,就死机了,一般是什么原因呢?是 ...

我这边测试,发送没问题啊
回复

使用道具 举报

32

主题

295

回帖

391

积分

高级会员

积分
391
发表于 2019-12-5 16:09:35 | 显示全部楼层
初始化函数netInitialize()和复位初始化函数netUninitialize() ,硬汉请教一下 这两个函数是内部封装起来的吗?并没有找到这两个函数的定义
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-12-6 09:29:47 | 显示全部楼层
mingri 发表于 2019-12-5 15:25
还有就是在STM32F407上,用这个模板,改成TCP客户端,热插拔网线是可以连接服务器,但是在电脑上网络调试助 ...

我这里没问题啊,过几天更新客户端章节,参考即可。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-12-6 09:30:37 | 显示全部楼层
weiyuliang 发表于 2019-12-5 16:09
初始化函数netInitialize()和复位初始化函数netUninitialize() ,硬汉请教一下 这两个函数是内部封装起来的 ...

对,在库里面呢。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-12-6 11:53:01 | 显示全部楼层
eric2013 发表于 2019-12-6 09:29
我这里没问题啊,过几天更新客户端章节,参考即可。

是不是和调试工具有关系呢,我用周立功的网络调试工具作为服务器的话,断开后,能重新连接,用网络调试助手的话,服务器短了后,客户端连接不上,是不是没有经过4次握手close tcp,自己的代码上要做些处理
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
 楼主| 发表于 2019-12-6 12:17:58 | 显示全部楼层
mingri 发表于 2019-12-6 11:53
是不是和调试工具有关系呢,我用周立功的网络调试工具作为服务器的话,断开后,能重新连接,用网络调试助 ...

有关系,上位机软件一定要用稳定好用的。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-12-6 15:15:13 | 显示全部楼层
eric2013 发表于 2019-12-6 12:17
有关系,上位机软件一定要用稳定好用的。

那如果服务器非法的关闭了,客户端这边应该怎么做呢,程序可以健壮点?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 07:03 , Processed in 0.316575 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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