0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

wiznet當網(wǎng)線連接后會持續(xù)卡頓導致看門狗復位的問題分析

冬至子 ? 來源:小白小白小白白 ? 作者:小白小白小白白 ? 2023-10-16 12:51 ? 次閱讀

手上的電路板是STM32F405RG+W5500,以前都是自己寫的驅動,這次嘗試使用了wiznet軟件包,但是每次插上網(wǎng)線,有些低優(yōu)先級的線程都會卡頓十幾秒,由于看門狗是在空閑線程喂狗的(看門狗設的3秒觸發(fā)),所以導致板子一插網(wǎng)線就重啟。

后來經(jīng)過分析,發(fā)現(xiàn)卡住的是workqueue線程,然后全局搜索發(fā)現(xiàn)是sal里提交的工作隊列函數(shù)卡住,一步步捋出來的順序如下:結論就是因為wizchip_sendto這個函數(shù)卡住導致。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 驅動器
    +關注

    關注

    51

    文章

    7998

    瀏覽量

    145013
  • 看門狗
    +關注

    關注

    10

    文章

    554

    瀏覽量

    70572
  • W5500
    +關注

    關注

    5

    文章

    45

    瀏覽量

    17420
  • STM32F405
    +關注

    關注

    0

    文章

    8

    瀏覽量

    4037
收藏 人收藏

    評論

    相關推薦

    看門狗不斷復位的原因?

    很奇怪地,以下會令看門狗不斷復位。只有一個timer。 static ETSTimer testTimer1; void user_init(void) { // Configure
    發(fā)表于 07-12 06:20

    軟件看門狗和硬件看門狗的區(qū)別

    軟件看門狗和硬件看門狗都是用于監(jiān)控系統(tǒng)崩潰的工具,它們的作用是在系統(tǒng)出現(xiàn)故障或異常情況時自動恢復系統(tǒng)。 ?軟件看門狗是一種程序,運行在操作系統(tǒng)中,通過定時檢測系統(tǒng)是否正常運行來判斷系統(tǒng)是否崩潰。如果
    的頭像 發(fā)表于 04-16 15:10 ?703次閱讀

    調(diào)試模式下如何調(diào)試看門狗?

    大家在調(diào)試GD32 MCU系統(tǒng)的時候,若開了看門狗外設,是否會碰到進入調(diào)試模式看門狗就會咬造成無法調(diào)試的問題?
    的頭像 發(fā)表于 02-23 09:30 ?1080次閱讀
    調(diào)試模式下如何調(diào)試<b class='flag-5'>看門狗</b>?

    求助,關于看門狗定時器的喂狗時間和多APP看門狗的問題求解

    : 如果我在我的app1里面加入了看門狗, 我的app0沒有喂狗操作。 當我的程序有app1跳轉到app0后,是否會因為不喂狗而導致復位。 另外我的app1如果引起了看門狗
    發(fā)表于 02-21 06:50

    看門狗復位電路設計解析

    看門狗復位電路主要利用CPU正常工作時,定時復位計數(shù)器,使得計數(shù)器的值不超過某一值;CPU不能正常工作時,由于計數(shù)器不能被復位,因此其計
    的頭像 發(fā)表于 02-08 10:16 ?3633次閱讀
    <b class='flag-5'>看門狗</b>型<b class='flag-5'>復位</b>電路設計解析

    TC397 CPU看門狗二次復位后,一直處于復位狀態(tài)不再工作了,看門狗可以配置中斷嗎?

    TC397 CPU看門狗二次復位后,一直處于復位狀態(tài),不再工作了,看門狗可以配置中斷嗎?
    發(fā)表于 02-04 07:13

    看門狗喚醒導致baseline降低的原因?

    如圖所示,休眠前baseline是2716,看門狗喚醒后baseline的值變成了2299,導致信號觸發(fā)。請幫忙分析有哪些可能導致baseline降低,謝謝。
    發(fā)表于 02-04 06:59

    如何排查GD32 MCU復位是由哪個復位導致的?

    上期為大家講解了GD32 MCU復位包括電源復位和系統(tǒng)復位,其中系統(tǒng)復位還包括獨立看門狗復位、內(nèi)
    的頭像 發(fā)表于 02-03 09:46 ?1484次閱讀
    如何排查GD32 MCU<b class='flag-5'>復位</b>是由哪個<b class='flag-5'>復位</b>源<b class='flag-5'>導致</b>的?

    TLEz9855如何關閉看門狗?

    TLE9855的示例代碼主循環(huán)里都帶有WDT1_Service()這個函數(shù),也就是喂狗,可是查看驅動設置里卻沒有使能看門狗,所以把WDT1_Service()這個函數(shù)注釋掉,然后下載進單片機發(fā)現(xiàn)單片機沒有發(fā)生復位,可是重新上電后單片機發(fā)生了
    發(fā)表于 02-02 07:27

    STM32的看門狗原理和示例代碼

    看門狗基礎:STM32微控制器上的看門狗主要有兩種類型:獨立看門狗(IWDG)和窗口看門狗(WWDG),這兩者都是用于監(jiān)控系統(tǒng)運行狀態(tài)的機制,但它們在實現(xiàn)和應用上有一些區(qū)別:獨立
    的頭像 發(fā)表于 12-01 08:00 ?1547次閱讀
    STM32的<b class='flag-5'>看門狗</b>原理和示例代碼

    什么是模擬看門狗?模擬看門狗有什么用處?

    看門狗大家應該再熟悉不過了,一旦忘記喂狗就會導致單片機復位,而在大部分stm32中都存在兩種類型的看門狗,Independent watchdog (IWDG)獨立
    的頭像 發(fā)表于 11-22 09:40 ?1424次閱讀
    什么是模擬<b class='flag-5'>看門狗</b>?模擬<b class='flag-5'>看門狗</b>有什么用處?

    看門狗要如何使用?

    雖然知道看門狗的作用,不過還是不太明白看門狗要如何使用。 看門狗的作用是在程序跑飛的情況下讓系統(tǒng)能夠及時復位重新開始執(zhí)行程序,道理很簡單,但是程序如何跑飛呢? 如果是一段程序需要延時等
    發(fā)表于 11-06 07:02

    簡單介紹電壓監(jiān)控型/看門狗復位電路

    電壓監(jiān)控型/看門狗復位電路
    的頭像 發(fā)表于 10-25 16:04 ?1066次閱讀
    簡單介紹電壓監(jiān)控型/<b class='flag-5'>看門狗</b>型<b class='flag-5'>復位</b>電路

    MCU硬件看門狗+軟件看門狗監(jiān)測多任務的思路

    MCU硬件看門狗+軟件看門狗監(jiān)測多任務的思路
    的頭像 發(fā)表于 10-24 15:25 ?1656次閱讀
    MCU硬件<b class='flag-5'>看門狗</b>+軟件<b class='flag-5'>看門狗</b>監(jiān)測多任務的思路

    電路中看門狗的作用

    電路中看門狗的作用 電路中的看門狗是一個非常重要的保護裝置,它主要用于監(jiān)測系統(tǒng)是否出現(xiàn)異常狀況,在檢測到異常狀況后關閉系統(tǒng),防止系統(tǒng)出現(xiàn)不可預知的故障。 又稱“掛”或“看門狗”,是一
    的頭像 發(fā)表于 09-26 16:38 ?3289次閱讀