手上的電路板是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。
之后在圖上的位置加了延時,測試不會卡死了。
大概翻了下,有很多地方都沒有加延時,wiznet包坑太多,舉個例子如下,不一一說明了。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
相關推薦
很奇怪地,以下會令看門狗不斷復位。只有一個timer。
static ETSTimer testTimer1;
void user_init(void)
{
// Configure
發(fā)表于 07-12 06:20
軟件看門狗和硬件看門狗都是用于監(jiān)控系統(tǒng)崩潰的工具,它們的作用是在系統(tǒng)出現(xiàn)故障或異常情況時自動恢復系統(tǒng)。 ?軟件看門狗是一種程序,運行在操作系統(tǒng)中,通過定時檢測系統(tǒng)是否正常運行來判斷系統(tǒng)是否崩潰。如果
發(fā)表于 04-16 15:10
?703次閱讀
大家在調(diào)試GD32 MCU系統(tǒng)的時候,若開了看門狗外設,是否會碰到進入調(diào)試模式看門狗就會咬狗造成無法調(diào)試的問題?
發(fā)表于 02-23 09:30
?1080次閱讀
:
如果我在我的app1里面加入了看門狗, 我的app0沒有喂狗操作。 當我的程序有app1跳轉到app0后,是否會因為不喂狗而導致復位。 另外我的app1如果引起了看門狗
發(fā)表于 02-21 06:50
看門狗型復位電路主要利用CPU正常工作時,定時復位計數(shù)器,使得計數(shù)器的值不超過某一值;當CPU不能正常工作時,由于計數(shù)器不能被復位,因此其計
發(fā)表于 02-08 10:16
?3633次閱讀
TC397 CPU看門狗二次復位后,一直處于復位狀態(tài),不再工作了,看門狗可以配置中斷嗎?
發(fā)表于 02-04 07:13
如圖所示,休眠前baseline是2716,看門狗喚醒后baseline的值變成了2299,導致信號觸發(fā)。請幫忙分析有哪些可能導致baseline降低,謝謝。
發(fā)表于 02-04 06:59
上期為大家講解了GD32 MCU復位包括電源復位和系統(tǒng)復位,其中系統(tǒng)復位還包括獨立看門狗復位、內(nèi)
發(fā)表于 02-03 09:46
?1484次閱讀
TLE9855的示例代碼主循環(huán)里都帶有WDT1_Service()這個函數(shù),也就是喂狗,可是查看驅動設置里卻沒有使能看門狗,所以把WDT1_Service()這個函數(shù)注釋掉,然后下載進單片機發(fā)現(xiàn)單片機沒有發(fā)生復位,可是重新上電后單片機發(fā)生了
發(fā)表于 02-02 07:27
看門狗基礎:STM32微控制器上的看門狗主要有兩種類型:獨立看門狗(IWDG)和窗口看門狗(WWDG),這兩者都是用于監(jiān)控系統(tǒng)運行狀態(tài)的機制,但它們在實現(xiàn)和應用上有一些區(qū)別:獨立
發(fā)表于 12-01 08:00
?1547次閱讀
看門狗大家應該再熟悉不過了,一旦忘記喂狗就會導致單片機復位,而在大部分stm32中都存在兩種類型的看門狗,Independent watchdog (IWDG)獨立
發(fā)表于 11-22 09:40
?1424次閱讀
雖然知道看門狗的作用,不過還是不太明白看門狗要如何使用。
看門狗的作用是在程序跑飛的情況下讓系統(tǒng)能夠及時復位重新開始執(zhí)行程序,道理很簡單,但是程序如何跑飛呢?
如果是一段程序需要延時等
發(fā)表于 11-06 07:02
電壓監(jiān)控型/看門狗型復位電路
發(fā)表于 10-25 16:04
?1066次閱讀
MCU硬件看門狗+軟件看門狗監(jiān)測多任務的思路
發(fā)表于 10-24 15:25
?1656次閱讀
電路中看門狗的作用 電路中的看門狗是一個非常重要的保護裝置,它主要用于監(jiān)測系統(tǒng)是否出現(xiàn)異常狀況,在檢測到異常狀況后關閉系統(tǒng),防止系統(tǒng)出現(xiàn)不可預知的故障。 又稱“狗掛”或“看門狗”,是一
發(fā)表于 09-26 16:38
?3289次閱讀
評論