手上的電路板是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包坑太多,舉個例子如下,不一一說明了。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
相關推薦
適當的參數來確保系統在正常運行和故障場景下都能自動恢復。? ▼ 看門狗簡介 ▼ 看門狗(Watch Dog Timer,WDT) ——是一種監控電路,主要應用于嵌入式系統,目的是為了提高系統的可靠性和穩定性。在看門狗電路的幫助下
發表于 12-31 14:29
?188次閱讀
Air201在模組內部集成了硬件看門狗,今天就一起來聊聊~ 本文將帶你了解看門狗的工作原理、應用架構、定時時間設置、軟硬件看門狗的區別,以及看門狗定時器的典型應用場景及關鍵設計因素等內
發表于 12-30 14:44
?269次閱讀
一、關于一些看門狗、電壓監控的疑問?1.什么是看門狗?看門狗,又叫Watchdog,本質上來說就是一個定時器電路,一般有一個輸入和一個輸出,其中輸入叫做喂狗,輸出一般連接到另外一個部分
發表于 12-26 17:18
?433次閱讀
為什么我進入待機模式后就無法喚醒,看門狗復位喚醒是需要配置什么還是無法喚醒待機模式
發表于 12-21 15:09
硬件看門狗電路分享
發表于 12-18 14:09
?1127次閱讀
我是 TI 的 FAE,現在我的客戶遇到了看門狗禁用問題,因此在線上同步向您詢問解決方案:
問題描述:客戶想使用 MCU 在記錄程序期間禁用看門狗功能,以防止 MCU 持續復位。
我
發表于 11-12 07:36
看門狗定時器是一種獨立的計時器硬件模塊,其核心功能是倒計時。如果系統軟件在計時器超時前沒有對其進行復位操作(即“喂狗”),看門狗將觸發一個預定義的動作,通常是系統復位或中斷。
發表于 10-21 14:18
?580次閱讀
電子發燒友網站提供《TPS7A63xx-Q1配置可在看門狗時實現長復位脈沖寬度.pdf》資料免費下載
發表于 10-09 14:29
?0次下載
不需要看門狗功能。
看門狗定時器(WDT)是一種用于檢測在嵌入式系統中的異常并復位單片機。它通常包含一個預裝計時器,該計時器遞減為零。當預裝的看
發表于 09-25 13:46
很奇怪地,以下會令看門狗不斷復位。只有一個timer。
static ETSTimer testTimer1;
void user_init(void)
{
// Configure
發表于 07-12 06:20
軟件看門狗和硬件看門狗都是用于監控系統崩潰的工具,它們的作用是在系統出現故障或異常情況時自動恢復系統。 ?軟件看門狗是一種程序,運行在操作系統中,通過定時檢測系統是否正常運行來判斷系統是否崩潰。如果
發表于 04-16 15:10
?1188次閱讀
看門狗輸入引腳 WDI 具有集成的下拉電流 IWDI 。看門狗輸入 WDI 可以在“Closed Window”內或隨后的“Open Window”期間轉換為高電平。
發表于 03-18 11:27
?4095次閱讀
大家在調試GD32 MCU系統的時候,若開了看門狗外設,是否會碰到進入調試模式看門狗就會咬狗造成無法調試的問題?
發表于 02-23 09:30
?1322次閱讀
:
如果我在我的app1里面加入了看門狗, 我的app0沒有喂狗操作。 當我的程序有app1跳轉到app0后,是否會因為不喂狗而導致復位。 另外我的app1如果引起了看門狗
發表于 02-21 06:50
看門狗型復位電路主要利用CPU正常工作時,定時復位計數器,使得計數器的值不超過某一值;當CPU不能正常工作時,由于計數器不能被復位,因此其計
發表于 02-08 10:16
?4882次閱讀
評論