天线|RF射频
直播中

刘飞

7年用户 265经验值
私信 关注
[问答]

为什么初始化以太网卡ENC28J60会出现错误?

做52实验的时候,初始化以太网卡 ENC28J60偶尔出现初始化错误。
当我把中断加入后(就是把实验5 外部中断)的代码移植过去后,编译没报错,也没什么警告
烧进程序后运行,就卡在初始化网卡这了:
while(tapdev_init())
在while(tapdev_init()) 前打断点后,用JTAG跟踪,一步一步地执行又没有提示什么问题,然后就一步一步正常地执行下来了。
泪奔了,都不知道错在哪儿了 ???
原子高手帮我分析下,到底问题在哪儿? 谢谢了!

回帖(13)

沈汝

2019-7-30 07:26:39
单步执行无问题?全速执行就不过?
举报

杨敏

2019-7-30 07:43:31
是的,老大。没加外部输入中断的时候偶尔发生;现在加了外部中断就成这个样子了。这个网卡初始化为什么不像其它器件一样,而要加个while来反复以避免初始化失败? 这个问题出现很久了,是不是因为个别器件的问题?
举报

周振夜

2019-7-30 07:54:48
这个while是保证初始化成功,才执行后续操作,你加了中断,有没有可能把网口的IO口给改了?
举报

李昕一

2019-7-30 08:04:37
网口的IO口没动啊。后来我把网卡初始化的延时提升到10ms,就可以启动了。凑合用吧,与服务器TCP连接,这个老是上上下下的,一天下来上百次的离线。我用服务器登记了离线日志。测试环境在一个交换机下的,网线也不过1米长,绝对的好网线,服务器上用的,10元一根的金线啊。不知道是参数有问题,还是器件质量。我用了看门狗,离线了就让重启,连接若干次连不上也让重启。不稳定啊,大师。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分