RM新时代网站-首页

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

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

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

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

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

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。

之后在圖上的位置加了延時(shí),測(cè)試不會(huì)卡死了。

1.jpg

2.jpg

大概翻了下,有很多地方都沒有加延時(shí),wiznet包坑太多,舉個(gè)例子如下,不一一說明了。

1.jpg

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

    關(guān)注

    52

    文章

    8226

    瀏覽量

    146251
  • 看門狗
    +關(guān)注

    關(guān)注

    10

    文章

    560

    瀏覽量

    70789
  • W5500
    +關(guān)注

    關(guān)注

    5

    文章

    45

    瀏覽量

    17581
  • STM32F405
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    4058
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    看門狗復(fù)位是否可以喚醒待機(jī)模式。

    為什么我進(jìn)入待機(jī)模式后就無法喚醒,看門狗復(fù)位喚醒是需要配置什么還是無法喚醒待機(jī)模式
    發(fā)表于 12-21 15:09

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

    我是 TI 的 FAE,現(xiàn)在我的客戶遇到了看門狗禁用問題,因此在線上同步向您詢問解決方案: 問題描述:客戶想使用 MCU 在記錄程序期間禁用看門狗功能,以防止 MCU 持續(xù)復(fù)位。 我
    發(fā)表于 11-12 07:36

    看門狗定時(shí)器的工作原理

    看門狗定時(shí)器是一種獨(dú)立的計(jì)時(shí)器硬件模塊,其核心功能是倒計(jì)時(shí)。如果系統(tǒng)軟件在計(jì)時(shí)器超時(shí)前沒有對(duì)其進(jìn)行復(fù)位操作(即“喂狗”),看門狗將觸發(fā)一個(gè)預(yù)定義的動(dòng)作,通常是系統(tǒng)復(fù)位或中斷。
    的頭像 發(fā)表于 10-21 14:18 ?403次閱讀
    <b class='flag-5'>看門狗</b>定時(shí)器的工作原理

    單片機(jī)開發(fā):使用內(nèi)部看門狗定時(shí)器(WDT)還是外掛看門狗芯片?

    不需要看門狗功能。 看門狗定時(shí)器(WDT)是一種用于檢測(cè)在嵌入式系統(tǒng)中的異常并復(fù)位單片機(jī)。它通常包含一個(gè)預(yù)裝計(jì)時(shí)器,該計(jì)時(shí)器遞減為零。當(dāng)預(yù)裝的
    發(fā)表于 09-25 13:46

    看門狗不斷復(fù)位的原因?

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

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

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

    TLF35584中集成的看門狗工作應(yīng)用案例

    看門狗輸入引腳 WDI 具有集成的下拉電流 IWDI 。看門狗輸入 WDI 可以在“Closed Window”內(nèi)或隨后的“Open Window”期間轉(zhuǎn)換為高電平。
    發(fā)表于 03-18 11:27 ?3824次閱讀
    TLF35584中集成的<b class='flag-5'>看門狗</b>工作應(yīng)用案例

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

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

    求助,關(guān)于看門狗定時(shí)器的喂狗時(shí)間和多APP看門狗的問題求解

    : 如果我在我的app1里面加入了看門狗, 我的app0沒有喂狗操作。 當(dāng)我的程序有app1跳轉(zhuǎn)到app0后,是否會(huì)因?yàn)椴晃构范?b class='flag-5'>導(dǎo)致復(fù)位。 另外我的app1如果引起了看門狗
    發(fā)表于 02-21 06:50

    看門狗復(fù)位電路設(shè)計(jì)解析

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

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

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

    看門狗喚醒導(dǎo)致baseline降低的原因?

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

    如何排查GD32 MCU復(fù)位是由哪個(gè)復(fù)位導(dǎo)致的?

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

    TLEz9855如何關(guān)閉看門狗?

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

    ADUC7024的看門狗能不能在看門狗定時(shí)沒有到之前,將看門狗給關(guān)了啊?

    ADUC7024的看門狗能不能在看門狗定時(shí)沒有到之前(即沒有復(fù)位之前),將看門狗給關(guān)了?。?/div>
    發(fā)表于 01-15 08:17
    RM新时代网站-首页