STM32 IAP 跳轉后進入hardfault_handler


最近現在調試說stm32 的iap程序時,每次跳轉總是進入hardfault_handler,仔細檢查跳轉時的設置,前面進行了兩個操作關中斷 __disable_irq()和把用戶代碼的棧頂地址設置為棧頂指針__set_MSP(),首先用戶代碼的棧頂地址是正確的,看了下__disable_irq()使用的“cpsid i”只是簡單的禁止CPU去響應中斷,沒有真正的去屏蔽中斷的觸發,中斷發生后,相應的寄存器會將中斷標志置位,在__enable_irq()后,由於中斷標志位沒請空,還會觸發中斷,因此禁止中斷需要逐個對模塊進行Disable操作。進行修改后程序正常運行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM