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

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

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

如何避免Xil_Assert系列宏導(dǎo)致的死循環(huán)的情況

YCqV_FPGA_EETre ? 來源:FPGA開發(fā)圈 ? 作者:付漢杰 ? 2020-12-02 16:20 ? 次閱讀

在調(diào)試模式下,Xil_Assert系列宏會調(diào)用Xil_Assert來檢查參數(shù)是否正常。如果不正常,缺省情況下,沒有打印,會進(jìn)入死循環(huán)。

通過調(diào)用void Xil_AssertSetCallback(Xil_AssertCallback Routine), 設(shè)置回調(diào)函數(shù), 可以自己處理失敗情況,比如增加打印。

另外也可以修改變量Xil_AssertWait為0,可以避免死循環(huán)情況。

責(zé)任編輯:xj

原文標(biāo)題:【工程師分享】避免Xil_Assert系列宏導(dǎo)致的死循環(huán)

文章出處:【微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    0

    文章

    607

    瀏覽量

    28257
  • ASSERT
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    7190

原文標(biāo)題:【工程師分享】避免Xil_Assert系列宏導(dǎo)致的死循環(huán)

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    LWIP多線程強(qiáng)烈建議開啟LWIP_ASSERT_CORE_LOCKED,這個在RTT里面要怎么實現(xiàn)?

    LWIP多線程強(qiáng)烈建議開啟LWIP_ASSERT_CORE_LOCKED,這個在RTT里面要怎么實現(xiàn),之前參考網(wǎng)上代碼,這樣寫,壓力測試下有概率斷言失敗 extern sys_mutex_t
    發(fā)表于 07-25 06:27

    為什么while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==RESET)死循環(huán)

    為啥while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==RESET)死循環(huán)?
    發(fā)表于 05-14 06:01

    STM32F107中斷死循環(huán)的原因?

    STM32F107,中斷死循環(huán)
    發(fā)表于 05-11 06:31

    STM32L使用模擬仿真時,進(jìn)入SystemClock_Config()后程序一直死循環(huán)在等待HSI ready的循環(huán)中,為什么?

    返回HAL_TIMEOUT,所以一直死循環(huán)。打開RCC->SR設(shè)備看到HSION Bit的確設(shè)置為1了,但是HSIRDY的確沒有變成1 這會是什么原因導(dǎo)致的呢?難道STM32L4系列不支持模擬仿真嗎?求各位大神指教~
    發(fā)表于 05-09 06:37

    請問HAL函數(shù)對Handle有效性的檢查為什么不是用assert_param斷言?

    )); ...... } 以HAL_SPI_Init為例,hspi參數(shù)的檢查并沒有使用assert_param斷言,如果是我實現(xiàn)的話,我會用assert_param(hspi != NULL)實現(xiàn)。一般
    發(fā)表于 05-08 07:00

    聊聊MCU死循環(huán),用for(;;)還是while(1)?

    首先,問大家一個問題:你們寫單片機(jī)程序【死循環(huán)】時,喜歡用for(;;)還是while(1)?快來為你喜歡用的【死循環(huán)】打call,評論區(qū)等你哦~一位工程師發(fā)現(xiàn),國外工程師在給demo在做死循環(huán)時用
    的頭像 發(fā)表于 04-29 08:10 ?811次閱讀
    聊聊MCU<b class='flag-5'>死循環(huán)</b>,用for(;;)還是while(1)?

    如何在if和assert中做選擇

    的?! 看來,有必要先簡單說一下 assert 斷言。 assert() 的原型是: void assert(int expression); 1. 如果的參數(shù)求值結(jié)果為非零
    發(fā)表于 04-08 06:13

    printf在keil5的AC6編譯器下運行進(jìn)入死循環(huán)的原因?

    Initialization ...n\");把信息顯示在屏幕上,用AC5編譯時運行正常,但是編譯速度太慢;而用AC6編譯時,速度快,但運行出現(xiàn)死循環(huán)(更改庫編譯都能通過),這個定義
    發(fā)表于 04-07 06:46

    為何國外工程師偏愛使用for(;;)來實現(xiàn)MCU死循環(huán)?

    一位工程師發(fā)現(xiàn),國外工程師在給demo在做死循環(huán)時用的是for(;;),而不是常用的while(1)。這僅僅是個人習(xí)慣的問題,還是有更深層次的含義?
    發(fā)表于 04-01 11:26 ?425次閱讀
    為何國外工程師偏愛使用for(;;)來實現(xiàn)MCU<b class='flag-5'>死循環(huán)</b>?

    STM32F412RET6串口輪詢發(fā)送阻塞等待TC,導(dǎo)致程序陷入死循環(huán)怎么解決?

    測試時,發(fā)現(xiàn)CPU程序運行卡死了,通過STM32 ST-LINK Utility工具,排查到了程序陷入死循環(huán)
    發(fā)表于 03-21 07:51

    編寫裸機(jī)Bootloader有什么辦法判斷APP是否有效,從而避免重復(fù)跳入導(dǎo)致復(fù)位再跳入的情況?

    編寫裸機(jī)Bootloader有什么辦法判斷APP是否有效,從而避免重復(fù)跳入導(dǎo)致復(fù)位再跳入的情況。
    發(fā)表于 02-19 06:19

    如何避免PLC程序卡死呢?

    編寫穩(wěn)定的程序:編寫良好的、穩(wěn)定的PLC程序是避免程序卡死的關(guān)鍵。確保程序邏輯清晰、簡潔,并遵循編程最佳實踐。避免死循環(huán)、邏輯錯誤和沖突的發(fā)生。
    的頭像 發(fā)表于 01-26 09:14 ?474次閱讀

    為什么HashMap會產(chǎn)生死循環(huán)呢?

    死循環(huán)問題發(fā)生在 JDK 1.7 版本中,造成這個問題主要是由于 HashMap 自身的運行機(jī)制,加上并發(fā)操作,從而導(dǎo)致死循環(huán)。
    的頭像 發(fā)表于 12-21 09:06 ?569次閱讀
    為什么HashMap會產(chǎn)生<b class='flag-5'>死循環(huán)</b>呢?

    C語言assert(斷言)簡介

    assert的功能,條件為真,程序繼續(xù)執(zhí)行;如果斷言為假(false),則程序終止。
    的頭像 發(fā)表于 11-17 16:33 ?976次閱讀
    C語言<b class='flag-5'>assert</b>(斷言)簡介

    IGBT模塊損壞時,什么情況導(dǎo)致短路?什么情況導(dǎo)致開路?

    IGBT模塊損壞時,什么情況導(dǎo)致短路?什么情況導(dǎo)致開路?? IGBT模塊是一種功率模塊,用于高功率電子設(shè)備控制。當(dāng)IGBT模塊在使用過程中遭受損壞時,可能會出現(xiàn)短路或開路的問題。這兩種
    的頭像 發(fā)表于 10-19 17:08 ?3996次閱讀