0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:小白小白小白白 作者:小白小白小白白 2023-10-16 12:51 次阅读

手上的电路板是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。

之后在图上的位置加了延时,测试不会卡死了。

1.jpg

2.jpg

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

1.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    52

    文章

    8226

    浏览量

    146252
  • 看门狗
    +关注

    关注

    10

    文章

    560

    浏览量

    70789
  • W5500
    +关注

    关注

    5

    文章

    45

    浏览量

    17582
  • STM32F405
    +关注

    关注

    0

    文章

    8

    浏览量

    4059
收藏 人收藏

    评论

    相关推荐

    看门狗复位是否可以唤醒待机模式。

    为什么我进入待机模式后就无法唤醒,看门狗复位唤醒是需要配置什么还是无法唤醒待机模式
    发表于 12-21 15:09

    如何禁用TPL5010的看门狗功能?

    我是 TI 的 FAE,现在我的客户遇到了看门狗禁用问题,因此在线上同步向您询问解决方案: 问题描述:客户想使用 MCU 在记录程序期间禁用看门狗功能,以防止 MCU 持续复位。 我
    发表于 11-12 07:36

    看门狗定时器的工作原理

    看门狗定时器是一种独立的计时器硬件模块,其核心功能是倒计时。如果系统软件在计时器超时前没有对其进行复位操作(即“喂狗”),看门狗将触发一个预定义的动作,通常是系统复位或中断。
    的头像 发表于 10-21 14:18 403次阅读
    <b class='flag-5'>看门狗</b>定时器的工作原理

    单片机开发:使用内部看门狗定时器(WDT)还是外挂看门狗芯片?

    不需要看门狗功能。 看门狗定时器(WDT)是一种用于检测在嵌入式系统中的异常并复位单片机。它通常包含一个预装计时器,该计时器递减为零。预装的
    发表于 09-25 13:46

    看门狗不断复位的原因?

    很奇怪地,以下會令看门狗不断复位。只有一個timer。 static ETSTimer testTimer1; void user_init(void) { // Configure
    发表于 07-12 06:20

    软件看门狗和硬件看门狗的区别

    软件看门狗和硬件看门狗都是用于监控系统崩溃的工具,它们的作用是在系统出现故障或异常情况时自动恢复系统。  软件看门狗是一种程序,运行在操作系统中,通过定时检测系统是否正常运行来判断系统是否崩溃。如果
    的头像 发表于 04-16 15:10 1069次阅读

    TLF35584中集成的看门狗工作应用案例

    看门狗输入引脚 WDI 具有集成的下拉电流 IWDI 。看门狗输入 WDI 可以在“Closed Window”内或随后的“Open Window”期间转换为高电平。
    发表于 03-18 11:27 3824次阅读
    TLF35584中集成的<b class='flag-5'>看门狗</b>工作应用案例

    调试模式下如何调试看门狗

    大家在调试GD32 MCU系统的时候,若开了看门狗外设,是否会碰到进入调试模式看门狗就会咬造成无法调试的问题?
    的头像 发表于 02-23 09:30 1254次阅读
    调试模式下如何调试<b class='flag-5'>看门狗</b>?

    求助,关于看门狗定时器的喂狗时间和多APP看门狗的问题求解

    : 如果我在我的app1里面加入了看门狗, 我的app0没有喂狗操作。 当我的程序有app1跳转到app0后,是否会因为不喂狗而导致复位。 另外我的app1如果引起了看门狗
    发表于 02-21 06:50

    看门狗复位电路设计解析

    看门狗复位电路主要利用CPU正常工作时,定时复位计数器,使得计数器的值不超过某一值;CPU不能正常工作时,由于计数器不能被复位,因此其计
    的头像 发表于 02-08 10:16 4593次阅读
    <b class='flag-5'>看门狗</b>型<b class='flag-5'>复位</b>电路设计解析

    TC397 CPU看门狗二次复位后,一直处于复位状态不再工作了,看门狗可以配置中断吗?

    TC397 CPU看门狗二次复位后,一直处于复位状态,不再工作了,看门狗可以配置中断吗?
    发表于 02-04 07:13

    看门狗唤醒导致baseline降低的原因?

    如图所示,休眠前baseline是2716,看门狗唤醒后baseline的值变成了2299,导致信号触发。请帮忙分析有哪些可能导致baseline降低,谢谢。
    发表于 02-04 06:59

    如何排查GD32 MCU复位是由哪个复位导致的?

    上期为大家讲解了GD32 MCU复位包括电源复位和系统复位,其中系统复位还包括独立看门狗复位、内
    的头像 发表于 02-03 09:46 1728次阅读
    如何排查GD32 MCU<b class='flag-5'>复位</b>是由哪个<b class='flag-5'>复位</b>源<b class='flag-5'>导致</b>的?

    TLEz9855如何关闭看门狗

    TLE9855的示例代码主循环里都带有WDT1_Service()这个函数,也就是喂狗,可是查看驱动设置里却没有使能看门狗,所以把WDT1_Service()这个函数注释掉,然后下载进单片机发现单片机没有发生复位,可是重新上电后单片机发生了
    发表于 02-02 07:27

    ADUC7024的看门狗能不能在看门狗定时没有到之前,将看门狗给关了啊?

    ADUC7024的看门狗能不能在看门狗定时没有到之前(即没有复位之前),将看门狗给关了啊?
    发表于 01-15 08:17