手上的電路板是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文章
9082瀏覽量
155486 -
看門狗
+關注
關注
10文章
610瀏覽量
72933 -
W5500
+關注
關注
5文章
46瀏覽量
18660 -
STM32F405
+關注
關注
0文章
9瀏覽量
4350
發布評論請先 登錄
相關推薦
熱點推薦
低成本上電復位與看門狗控制器MAX698/MAX699:設計與應用解析
低成本上電復位與看門狗控制器MAX698/MAX699:設計與應用解析 在電子系統中,上電復位和看門狗功能對于保障系統的穩定運行至關重要。MAX698/MAX699作為低成本的解決方案
【瑞薩RA × Zephyr評測】多線程和看門狗
本文章旨在評估使用 Zephyr RTOS 在 Renesas FPB-RA6E2 開發板上實現多線程調度與硬件看門狗功能的應用。評估內容包括任務調度、看門狗初始化流程、主程序邏輯的詳細解析,以及實驗現象與數據分析。
什么是ADC模擬看門狗?
模擬看門狗功能,支持將 ADC 轉換結果與用戶設定的閾值進行比較,支持上閾值、下閾值、區間值比較,通過閾值寄存器 ADC_VTH 和 ADC_VTL 設置比較閾值。
模擬看門狗功能只在單通道模式
發表于 12-12 06:15
中科芯CKS32F107XX系列MCU的獨立看門狗介紹
安全性、時間精確性和使用靈活性方面變現得非常優秀。兩個看門狗定時器單元都可用來檢測由軟件錯誤引起的故障,具體表現為當計數器達到給定的超時值或未能在指定時間窗口內刷新計數器的值,會觸發系統復位。
CW32A030看門狗和SysTick定時器
CW32A030的看門狗有獨立看門狗和窗口看門狗如下:
1、 獨立看門狗(IWDT)
獨立看門狗定時器(IWDT) 使用專門的內部RC 時
發表于 11-27 07:52
“喂狗”的藝術:看門狗不叫,才是系統好
程序的。現實里的狗會追飛盤,PLC里的看門狗追的是跑飛的程序。 本質上是一個計時器,用于監控程序的運行狀態。主程序在正常運行時,需要定期“喂狗”(即重置計時器)。一旦程序跑飛或陷入死循環,導致無法及時喂狗,
看門狗定時器、復位源、異常處理機制科普
在嵌入式開發中,系統一旦“跑飛”,工程師最怕的不是bug,而是程序卡死無人知。這時,芯片自身的自我保護機制就至關重要。看門狗、復位源和異常處理機制,是保證系統可靠性的三大基石。本文帶你梳理清楚它們
RVMCU課堂「21」: 手把手教你玩轉RVSTAR—看門狗定時器篇
設置一個超時時間,然后程序在超時時間內定期對定時器進行重載操作(也叫做“喂狗”操作),從而避免正常程序發生復位。
當系統發生意料之外的故障使得軟件跑飛,看門狗定時器無法被按時重載時,看門狗
發表于 10-29 06:01
如果在配置位中啟用了看門狗(WDT)功能,是否會影響ISP升級過程呢?
Loader時需要在配置位中啟用看門狗(WDT)功能,請務必在ISP Boot Loader中添加看門狗重置功能;否則,當ISP運行時間超過26.3秒時,由于升級時間過長,超過看門狗
發表于 08-18 08:26
TPS3430 具有可編程復位延遲的窗口看門狗定時器數據手冊
TPS3430 是一款獨立的窗口看門狗定時器,具有可編程看門狗窗口和可編程看門狗復位延遲,適用于各種應用。TPS3430窗口看門狗可實現 2
TPS3430-Q1 具有可編程復位延遲的汽車級窗口看門狗定時器數據手冊
TPS3430-Q1 是一款獨立的汽車窗口看門狗定時器,具有可編程看門狗窗口和可編程看門狗復位延遲,適用于汽車應用。TPS3430-Q1 窗口看門狗
看門狗,你真的會用嗎?
嵌入式系統開發中,看門狗是一種重要的機制,用于在程序異常時自動重啟系統,保障其穩定性。本文將深入探討看門狗及其在程序穩定性中的作用,幫助您更好地理解和應用看門狗技術。看門狗首先需要明確
wiznet當網線連接后會持續卡頓導致看門狗復位的問題分析
評論