在用Keil對STM32的程序進行仿真時程序有時會跑飛,停止仿真程序會停在HardFault_Handler函數里的死循環while(1)中。這說明STM32出現了硬件錯誤。
STM32出現硬件錯誤可能有以下原因:
(1)數組越界操作;
(2)內存溢出,訪問越界;
(3)堆棧溢出,程序跑飛;
(4)中斷處理錯誤;
遇到這種情況,可以通過以下2種方式來定位到出錯代碼段。
方法1:
1.1在硬件中斷函數HardFault_Handler里的while(1)處打調試斷點,程序執行到斷點處時點擊“STOP”停止仿真。
1.2 在Keil菜單欄點擊“View”——“Registers Window”,在寄存器查看窗口查找R14(LR)的值。如果R14(LR) = 0xFFFFFFE9,繼續查看MSP(主堆棧指針)的值,如果R14(LR) = 0xFFFFFFFD,繼續查看PSP(進程棧指針)的值。我的程序R14(LR) = 0xFFFFFFF9,接下來以此為例。
1.3 在Keil菜單欄點擊“View”——“Memory Windows”——“Memory1”,在“Address”地址欄中輸入MSP的值:0x20001288,然后在對應的行里找到地址。地址一般以0x08開頭的32位數。本例中,地址為0x08003CB9。
1.4 在Keil菜單欄點擊“View”——“Disassembly Window”,在“Disassembly”窗口中右擊,在下拉菜單中選擇“Show Disassemblyat Address…”。在彈出框“Show Code atAdress”的地址框中輸入地址0x08003CB9進行搜索,然后就會找到相對應的代碼。這里的代碼就是進入循環中斷之前的情況。仔細查看附近區域的相關代碼來排查錯誤具體原因。
方法2:
2.1在硬件中斷函數HardFault_Handler里的while(1)處打調試斷點,程序執行到斷點處時點擊“STOP”停止仿真。
2.2 在Keil菜單欄點擊“View”——“Call Stack Window”彈出“Call Stack + Locals”對話框。然后在對話框中右鍵選擇“Show Caller Code”,就會跳轉到出錯之前的函數處,仔細查看這部分函數被調用或者數組內存使用情況。
上一篇:STM32 在PC端串口助手上打印中文字符----printf()函數重定向
下一篇:SD卡存儲容量的計算過程
推薦閱讀
史海拾趣
機頂盒,全稱為數字視頻變換盒,是現代家庭娛樂中不可或缺的重要設備。從廣義上講,任何與電視機連接的網絡終端設備均可視為機頂盒,其發展歷程涵蓋了從模擬頻道增補器到數字衛星、地面及有線電視機頂盒的廣泛范疇。而從狹義角度看,機頂盒特指那些具備數字處理能力的設備,如IPTV機頂盒、DVB-S衛星機頂盒、DVB-T地面機頂盒及DVB-C有線電視機頂盒等。
機頂盒的核心功能在于接收并轉換數字電視信號,使之能在傳統或智能電視上播放。它不僅能接收來自有線電纜、衛星天線及寬帶網絡的信號,還能提供電子節目指南、網頁瀏覽等增值服務。通過機頂盒,用戶能夠享受到高清乃至4K超高清的電視節目,體驗更為細膩的畫面和震撼的音效。此外,機頂盒還具備網絡交互能力,支持在線購物、觀看網絡視頻、玩游戲等多元化活動,使電視機從單向接收信息的設備轉變為智能互動終端。
隨著技術的不斷進步,機頂盒正朝著高清化、智能化方向發展。未來,機頂盒將不僅限于基本的信號接收與解碼功能,還將融入更多智能推薦、語音識別等先進技術,為用戶提供更加個性化、便捷的娛樂體驗。總之,機頂盒作為連接電視與互聯網的橋梁,正以其豐富的功能和廣泛的應用場景,不斷滿足用戶日益增長的娛樂需求。
C-MAX Time Solutions公司在發展過程中,逐漸認識到深耕細分市場的重要性。公司針對工業控制、安防監控等特定領域,推出了定制化的時間同步解決方案。這些方案不僅滿足了客戶的特殊需求,也提高了C-MAX在這些細分市場的占有率。通過不斷積累口碑和經驗,C-MAX逐漸在電子行業中樹立起了專業、可靠的形象。
AURORA公司一直致力于提升自動駕駛技術的安全性和可靠性。通過不斷研發和創新,AURORA在自動駕駛算法、傳感器融合、數據處理等方面取得了顯著進展。公司的技術團隊不斷攻克技術難題,推動自動駕駛技術向更高等級邁進。同時,AURORA還積極與高校和研究機構合作,共同推動自動駕駛技術的研發和應用。
AURORA公司一直致力于提升自動駕駛技術的安全性和可靠性。通過不斷研發和創新,AURORA在自動駕駛算法、傳感器融合、數據處理等方面取得了顯著進展。公司的技術團隊不斷攻克技術難題,推動自動駕駛技術向更高等級邁進。同時,AURORA還積極與高校和研究機構合作,共同推動自動駕駛技術的研發和應用。
在快速發展的過程中,思博科技始終關注企業文化建設和社會責任。公司倡導“創新、協作、誠信、共贏”的價值觀,為員工提供了良好的工作環境和發展機會。同時,思博科技還積極參與社會公益活動,回饋社會。這些舉措不僅提升了公司的品牌形象和聲譽,還增強了員工的歸屬感和凝聚力。
在電子行業競爭日趨激烈的背景下,Cotco公司深知供應鏈管理和成本控制的重要性。公司與主要供應商建立了長期穩定的合作關系,確保原材料的穩定供應和成本控制。同時,Cotco不斷優化生產流程和物流管理,降低生產成本和運營成本。這些舉措使得Cotco的產品在價格上具有更強的競爭力,進一步鞏固了其在市場上的地位。
本帖最后由 paulhyde 于 2014-9-15 09:13 編輯 內容提要:在分析研究現有的紅外無線接收器技術的基礎上,以硅光電池為無線接 收器進行試驗研究,探索走向實用的解決方案,并制作樣品。 主要是用外接電路的方法改善接收電路的頻率特性和靈敏度 ...… 查看全部問答∨ |
|
最近在看ucos發現ucos在執行臨界代碼或者一些系統功能函數時需要關中斷,可是實際目的是為了防止在任務執行過程的時鐘節拍打入,因為這樣做而關閉總中斷,會引起其他外部中斷的丟失。假如在實際操作時,將關閉中斷的宏指令定義成只關閉產生時鐘節拍 ...… 查看全部問答∨ |
諸如 LCR DLL DLH IER等寄存器,我都能寫進去,再讀出來,可FCR就是不行, 我把代碼寫在下面,哪位兄弟姐妹指導一下 //定義相關宏 #define UART_BASE_ADDR (0x20300000 #define C554_CH1_FCR&nb ...… 查看全部問答∨ |
本帖最后由 jameswangsynnex 于 2015-3-3 19:57 編輯 我司AMLOGIC CORTEX A9 內核(AML8726-M)主芯片MID方案基本參數介紹:CPU:CORTEX A9內核 800MHZ頻率(實際性能與A8核心1.2G相當)GPU:ARM Mali-400 300MHZ頻率,3D性能強大RAM: DDR2 256MB*2 ...… 查看全部問答∨ |
|
問題比較奇怪也復雜, 先大致描述一下.. 在一個系統內部2個MCU之間用了SPI通訊. SPI 主機是ARM9, 固定每100ms. 連續發送64個時鐘和數據, 即使沒有數據也發送dummy數據. 以保證從機準備的上傳的數據有SCK時鐘. 從機是STM32F101, 用SPI2. 用 ...… 查看全部問答∨ |
|
關于如何在eclipse中使用安卓虛擬機:各位大神,首先謝謝你們查看本帖,最近自己摸索了一下安卓開發的相關知識,發現裝不了虛擬機啊,我是嚴格按照這個步驟來的 1、首先安裝jdk 2、安裝eclipse 3、安裝sdk 4、[img]file:///C:\\Doc ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 為什么我的VS2005新建工程,smart device下 沒有Windows Mobile 6 Professional?
- EEWORLD大學堂----世界第一輛全電力低空自動駕駛載人飛行器,中國設計!
- DSP中的存儲器和映射
- stm32的dma存儲器地址的一個奇妙問題
- 采用AVR8位單片機實現模擬發動機曲軸及凸輪軸信號
- Altium Designer學習筆記(看視頻總結,看完相當于看完20集教學視頻)
- 電源開關設計秘笈30例
- 關于Lm3s看門狗喂狗問題
- C6455 UDP sendto發送,數據超過1500bytes無法發送報錯EMSGSIZE,請問是什么原因
- 【PVC-Robot】——DIY機器人經驗分享