硬汉嵌入式论坛

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

[以太网] Keil UV5环境配置问题

  [复制链接]

1

主题

12

回帖

15

积分

新手上路

积分
15
发表于 2024-10-8 16:22:44 | 显示全部楼层 |阅读模式

下载了硬汉论坛的V5-400-RL-Tcpnet V7工程,编译报错,查看运行时环境界面有错误,但不知道怎么解决,请问大佬们哪里配置错了,或下载缺少什么?或者我装的KEIL版本有啥问题,多谢!


12.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-10-8 16:27:31 | 显示全部楼层
1、安装MDK5.31,安全完毕后,不要升级任何组件,切不要安装你楼主位的CMSIS6.X, 就用MDK5.31自带的,任何升级都不要做
https://armkeil.blob.core.windows.net/eval/MDK531.EXE

2、然后安装F4的软件包即可。

重新解压一个例子拖拽到这个新安装的MDK即可测试。
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2024-10-9 13:32:47 | 显示全部楼层
感谢硬汉大佬回复,按您说的安装了5.3.1,打开工程后看运行时环境没问题了,但是编译报几个错,都是像Error #602: 'Keil.MDK-Pro::Network:CORE:IPv4/IPv6 Debug:7.13.1': component requires valid MDK-ARM Professional license。貌似要用专业版license,我已用注册机POJIE操作过了,不知道为啥还报错?
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2024-10-9 14:01:28 | 显示全部楼层
谢谢硬汉大佬回复,问题已解决!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-10-10 08:20:54 | 显示全部楼层
stride80 发表于 2024-10-9 13:32
感谢硬汉大佬回复,按您说的安装了5.3.1,打开工程后看运行时环境没问题了,但是编译报几个错,都是像Error  ...


对,这个需要注册MDK PRO。

现在有源码了,各种IDE都可以方便移植了。没有这种限制了。

RTX5全家桶源码综合模板发布V2.0,含FreeRTOS内核版本,将其打造成直接面向实际项目应用的综合框架(2024-09-28)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=124516


回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2024-12-25 16:31:36 | 显示全部楼层
eric2013 发表于 2024-10-10 08:20
对,这个需要注册MDK PRO。

现在有源码了,各种IDE都可以方便移植了。没有这种限制了。

现在双网可以ping通了,但是有两个问题又困住了,在tcp_cb_server 线程里建链成功后,可以收到PC机数据,但是执行这句if(netTCP_SendReady(tcp_sock) == true )总是失败,导致想发数据发不出去。第二个是双网口第一个MAC+DP83848,上电总是要近70秒才ping通,DM9000正常,上电几秒ping通,都是静态IP。请硬汉大佬给点思路,谢谢!
               
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-12-26 07:48:20 | 显示全部楼层
stride80 发表于 2024-12-25 16:31
现在双网可以ping通了,但是有两个问题又困住了,在tcp_cb_server 线程里建链成功后,可以收到PC机数据, ...

1、MAC+DP83848,看下你的复位方式,可以上电后,先手动控制硬件复位试试,等待2秒再初始化网络。
2、降低DP83848 RMII所涉及到GPIO速度等级为LOW或者中等试试
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2024-12-26 13:27:43 | 显示全部楼层
我是在TCP Socket的回调函数tcp_cb_server里,收到事件netTCP_EventData就马上调用netTCP_SendReady(tcp_sock)失败,是不是这时网络这时还没切换到容许发送状态?我后来在LED闪灯线程中发送能够发数据了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-12-27 07:07:45 | 显示全部楼层
stride80 发表于 2024-12-26 13:27
我是在TCP Socket的回调函数tcp_cb_server里,收到事件netTCP_EventData就马上调用netTCP_SendReady(tcp_so ...

对,是这样的。
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2024-12-30 11:26:20 | 显示全部楼层
硬汉大佬,请问V5板子的DM9161的中断是PH6脚吗?为何模版例子没有看到对PH6的外部中断初始化代码呢?我用的PHY是DP83848,没用外部中断,不知道上电Ping70秒才回复是不是跟中断有关
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-12-31 06:30:46 | 显示全部楼层
stride80 发表于 2024-12-30 11:26
硬汉大佬,请问V5板子的DM9161的中断是PH6脚吗?为何模版例子没有看到对PH6的外部中断初始化代码呢?我用的 ...

1、早期的TCPnet例子里面都有使用,这个引脚是用于网线插拔判断的。
2、后来做的例子里面没有使用了,通过判断网线插拔寄存器实现的。
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2025-1-13 14:52:26 | 显示全部楼层
407双网口如果配置界面选ETH=1,那么DP83848能很快ping上,如果选ETH=2,上电插的DP83848网口就非要等60多秒才能ping上,如果上电插的是DM9000,则能很快ping上,不知道是线程优先级不合理,还是DM9000驱动有问题造成的,还是哪里配置有问题,请教大佬还有思路啊
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-1-14 08:14:34 | 显示全部楼层
stride80 发表于 2025-1-13 14:52
407双网口如果配置界面选ETH=1,那么DP83848能很快ping上,如果选ETH=2,上电插的DP83848网口就非要等60多秒 ...

都是设置使用静态IP方式,不使用DHCP,试试
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2025-1-14 13:17:19 | 显示全部楼层
都配置的是静态IP
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2025-1-14 15:01:55 | 显示全部楼层
刚上电不插网线,等十来秒灯闪烁(闪灯线程跑起来了)再插到DP83848网口也能很快Ping通。还有网线在两个网口互相插来插去有时也会Ping不通,感觉插网线的时机很玄,有时插了灯就不闪了,可能正在重新初始化网络
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2025-1-14 15:48:07 | 显示全部楼层
const osThreadAttr_t ThreadStart_Attr =
{
        /* 未使用 */
//        .cb_mem = &worker_thread_tcb_1,
//        .cb_size = sizeof(worker_thread_tcb_1),
//        .stack_mem = &worker_thread_stk_1[0],
//        .stack_size = sizeof(worker_thread_stk_1),
//        .priority = osPriorityAboveNormal,
//        .tz_module = 0       
        .name = "osRtxStartThread",
        .attr_bits = osThreadDetached,
        .priority = osPriorityNormal4,
        .stack_size = 2048,
};

const osThreadAttr_t ThreadEthCheck_Attr =
{
        .name = "osRtxEthCheckThread",
        .attr_bits = osThreadDetached,
        .priority = osPriorityNormal3,
        .stack_size = 1024,
};
#define ETH0_THREAD_PRIORITY    osPriorityNormal3   //osPriorityAboveNormal1
#define ETH1_THREAD_PRIORITY    osPriorityNormal3   //osPriorityAboveNormal1
#define NET_THREAD_PRIORITY     osPriorityAboveNormal  
任务优先级改了下还是不行
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-1-15 07:16:56 | 显示全部楼层
stride80 发表于 2025-1-14 15:01
刚上电不插网线,等十来秒灯闪烁(闪灯线程跑起来了)再插到DP83848网口也能很快Ping通。还有网线在两个网 ...

还有一个要注意的地方是以太网PHY芯片的复位,做个非常影响稳定性,可以上电复位后,等待1秒再访问初始化网络试试
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2025-1-15 16:11:56 | 显示全部楼层
非常感谢硬汉大佬指导!根据上贴提示,我在dm9k_reset()函数中dm9k_iow(DM9000_REG_NCR, DM9000_REG_RESET);        /* 对 DM9000A 进行软件重置 */后面增加了延时dm9k_udelay(100);原来例子是延时10;  在dm9k_initnic()函数中dm9k_iow语句后面都加了延时dm9k_udelay(100);dm9k_iow(DM9000_REG_GPR, DM9000_PHY_ON); /* 结束 PHY 设置, 开启 PHY */加了延时dm9k_udelay(200);现在上电ping 两个网口都很快ping通了。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-1-16 07:16:49 | 显示全部楼层
stride80 发表于 2025-1-15 16:11
非常感谢硬汉大佬指导!根据上贴提示,我在dm9k_reset()函数中dm9k_iow(DM9000_REG_NCR, DM9000_REG_RESE ...

回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2025-4-11 15:26:26 | 显示全部楼层
硬汉大佬,使用您的例子设置KEEP_ALIVE  使能netTCP_SetOption (tcp_sock, netTCP_OptionKeepAlive, 1);但是具体想改KeepAlive的参数时间怎么改呢?
我建立了服务器线程,在PC端连上后拔掉网线,再建立客户端重连好像马上连不上。总要一分多钟才能重新连上,是不是有啥参数可以设置可以快速连上。这个和KeepAlive时间参数有关吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-4-12 08:46:23 | 显示全部楼层
stride80 发表于 2025-4-11 15:26
硬汉大佬,使用您的例子设置KEEP_ALIVE  使能netTCP_SetOption (tcp_sock, netTCP_OptionKeepAlive, 1);但 ...

谁是客户端,谁是服务器。

网线插拔推荐用这个方案

【实战经验分享】一劳永逸的解决网线随意热插拔问题
https://www.armbbs.cn/forum.php? ... 5386&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2025-4-17 13:31:07 | 显示全部楼层
板子做服务器,PC机是客户端
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 01:41 , Processed in 0.511198 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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