硬汉嵌入式论坛

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

[ThreadX全家桶] F407+LAN8720+NetXDuo 无法进入Eth外设的中断

[复制链接]

2

主题

79

回帖

85

积分

初级会员

积分
85
发表于 2022-1-16 22:51:28 | 显示全部楼层 |阅读模式
本帖最后由 eggplant886 于 2022-1-16 23:11 编辑

硬件是F407+LAN8720A,分别使用LWIP和NetXDuo的程序进行网络通信。两个项目的8720 PHY地址为0、状态寄存器为31以及遮罩都设置相同且正确,硬件50M时钟正常,GPIO设置均相同且正确。用CubeMX生产LWIP的工程,可以通过计算机PING通;但是NetXDuo无法连通;两者的IP、子网掩码、网关设置均相同且正确。
(LWIP基于CUbeMX生成网卡驱动、IP设置的所有的代码;NetXDuo中网卡驱动等代码为CubxMX生成,IP配置以及TCP监听为手写代码且曾在H745板上测试通过)
使用LWIP时,计算机可以PING通。
使用NetXDuo时,电脑端始终无法PING通;网口灯亮,读LAN8720 31、1 寄存器可知速率已经协商完毕为100M,发现ETH_IRQHandler一直无法进入,希望各位有经验的朋友能指点下思路,应该还是网卡驱动和NetX这边哪边设置不正确。

补充下NetX是用的Segger Embedded Studio, LWIP是Keil,刚试着把LWIP导入SES,发现也无法进入ETH中断,中断向量表是从F4的支持包里拷贝过来的,各种中断的入口名称以及顺序和MDK生成的文件里都一样的,搞不懂了。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117568
QQ
发表于 2022-1-17 01:29:48 | 显示全部楼层
反过来,ses的netx做成keil的也测试下
回复

使用道具 举报

2

主题

79

回帖

85

积分

初级会员

积分
85
 楼主| 发表于 2022-1-17 10:30:41 | 显示全部楼层
eric2013 发表于 2022-1-17 01:29
反过来,ses的netx做成keil的也测试下

感谢大哥的指导。
我昨天睡觉的时候也想到了,然后再查下SES里中断标志位。
今天试了一下MDK里PING正常,TCP通信也正常,为什么无法进入中断回调我再检查检查,查到原因后分享给大家。
回复

使用道具 举报

2

主题

79

回帖

85

积分

初级会员

积分
85
 楼主| 发表于 2022-1-17 22:44:32 | 显示全部楼层
排查了中断向量表,这个没有问题,表中地址是真实的相应函数地址,中断使能也正常,排查了ETH寄存器,Keil和SES版本在ETH_DMA部分的寄存器差异有点大,其余部分一样,说明还是设置的问题,明天再继续排查。
回复

使用道具 举报

2

主题

79

回帖

85

积分

初级会员

积分
85
 楼主| 发表于 2022-1-17 22:57:28 | 显示全部楼层
问题解决!SES的链接文件选用了含CCM的那个,自动把ETH收发放到CCM RAM中了,ETH应该是不能访问。之前一直用H7,F4这块不熟,还是基础知识不牢固,赶紧补习补习。
回复

使用道具 举报

4

主题

1459

回帖

1471

积分

至尊会员

积分
1471
发表于 2022-1-18 09:36:39 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-15 11:16 , Processed in 0.036847 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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