OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3959|回复: 5

LAN8720初始化放在,低优先级的任务中运行,无法完成初始化???求助

[复制链接]

21

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2016-2-19
在线时间
46 小时
发表于 2017-6-30 17:14:16 | 显示全部楼层 |阅读模式
5金钱
LAN8720初始化放在,低优先级的任务中运行,无法完成初始化???求助
改的是基于原子的 STM32F4+LWIP+UCOSIII,将lwip_comm_init();放在一个低优先级的任务中初始化,失败;
调试发现这个STM32官方的以太网初始化库函数 uint32_t ETH_Init(ETH_InitTypeDef* ETH_InitStruct, uint16_t PHYAddress);
无论插不插网线都是返回1(也就是初始化完成,实际应该返回0,初始化失败);

这是为何啊????求解该怎么弄???
如何在低任务优先级中等待网线插入,初始化LAN8720,ETHDAM;

最佳答案

查看完整内容[请看2#楼]

已找到答案,原因是:我在start_task尾部进行了lwip_comm_init初始化(包括了lan8720init),屡次尝试失败,后增大start_task的任务堆栈到256(原来128)后,正常。原来是任务堆栈太小造成的。看来这块得好好注意。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2016-2-19
在线时间
46 小时
 楼主| 发表于 2017-6-30 17:14:17 | 显示全部楼层
已找到答案,原因是:我在start_task尾部进行了lwip_comm_init初始化(包括了lan8720init),屡次尝试失败,后增大start_task的任务堆栈到256(原来128)后,正常。原来是任务堆栈太小造成的。看来这块得好好注意。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165462
金钱
165462
注册时间
2010-12-1
在线时间
2114 小时
发表于 2017-7-1 00:05:42 | 显示全部楼层
是否被频繁打断了?初始化8720的时候,禁止任务调度,试试看。
回复

使用道具 举报

16

主题

216

帖子

1

精华

高级会员

Rank: 4

积分
970
金钱
970
注册时间
2016-11-24
在线时间
156 小时
发表于 2017-7-1 08:45:49 | 显示全部楼层
建议把LAN8720的IO引脚初始化和网络任务相关的初始化剥离开,在所有的硬件初始化的时候就初始化LAN8720,然后在一个任务或者开一个定时器中检测是否插入网线,插入了再进行网络任务相关的初始化
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-11-16
在线时间
6 小时
发表于 2017-7-30 16:13:14 | 显示全部楼层
遇到类似问题,求共享源码
回复

使用道具 举报

21

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2016-2-19
在线时间
46 小时
 楼主| 发表于 2017-7-31 10:44:08 | 显示全部楼层
姣姣0402 发表于 2017-7-30 16:13
遇到类似问题,求共享源码

增大堆栈大小应该就可以了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-19 22:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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