手上的电路板是STM32F405RG+W5500,以前都是自己写的驱动,这次尝试使用了wiznet软件包,但是每次插上网线,有些低优先级的线程都会卡顿十几秒,由于看门狗是在空闲线程喂狗的(看门狗设的3秒触发),所以导致板子一插网线就重启。
后来经过分析,发现卡住的是workqueue线程,然后全局搜索发现是sal里提交的工作队列函数卡住,一步步捋出来的顺序如下:结论就是因为wizchip_sendto这个函数卡住导致。
wiz_link_status_thread_entry->netdev_low_level_set_link_status->sal_check_netdev_internet_up->check_netdev_internet_up_work->wiz_gethostbyname->DNS_run->wizchip_sendto。
之后在图上的位置加了延时,测试不会卡死了。


大概翻了下,有很多地方都没有加延时,wiznet包坑太多,举个例子如下,不一一说明了。

-
驱动器
+关注
关注
54文章
9024浏览量
153412 -
看门狗
+关注
关注
10文章
607浏览量
72589 -
W5500
+关注
关注
5文章
46浏览量
18475 -
STM32F405
+关注
关注
0文章
9浏览量
4306
发布评论请先 登录
中科芯CKS32F107XX系列MCU的独立看门狗介绍
CW32A030看门狗和SysTick定时器
“喂狗”的艺术:看门狗不叫,才是系统好
看门狗定时器、复位源、异常处理机制科普
RVMCU课堂「21」: 手把手教你玩转RVSTAR—看门狗定时器篇
如果在配置位中启用了看门狗(WDT)功能,是否会影响ISP升级过程呢?
TPS3430 具有可编程复位延迟的窗口看门狗定时器数据手册
TPS3430-Q1 具有可编程复位延迟的汽车级窗口看门狗定时器数据手册
看门狗,你真的会用吗?
安利给工程师!看门狗相关知识
抄作业!看门狗定时器必备知识
一文详解看门狗/电压监控芯片规格书

wiznet当网线连接后会持续卡顿导致看门狗复位的问题分析
评论