色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32硬件錯誤的調試技巧

小麥大叔 ? 來源:小麥大叔 ? 作者:小麥大叔 ? 2022-07-21 14:39 ? 次閱讀

在用KeilSTM32的程序進行仿真時程序有時會跑飛,停止仿真程序會停在HardFault_Handler函數里的死循環while(1)中。

這說明STM32出現了硬件錯誤。

4651ec2c-08a8-11ed-ba43-dac502259ad0.png

硬件錯誤中斷

STM32出現硬件錯誤可能有以下原因:

數組越界操作;

內存溢出,訪問越界;

堆棧溢出,程序跑飛;

中斷處理錯誤;

遇到這種情況,可以通過以下2種方式來定位到出錯代碼段。

方法1:

在硬件中斷函數HardFault_Handler里的while(1)處打調試斷點,程序執行到斷點處時點擊STOP停止仿真。

466c27d6-08a8-11ed-ba43-dac502259ad0.png

示例

1.2 在Keil菜單欄點擊View——Registers Window,在寄存器查看窗口查找R14(LR)的值。

如果R14(LR) = 0xFFFFFFE9,繼續查看MSP(主堆棧指針)的值;如果R14(LR) = 0xFFFFFFFD,繼續查看PSP(進程棧指針)的值;

我的程序R14(LR) = 0xFFFFFFF9,接下來以此為例。

467999d4-08a8-11ed-ba43-dac502259ad0.png

寄存器信息

1.3 在Keil菜單欄點擊“View”——“Memory Windows”——“Memory1”;

在“Address”地址欄中輸入MSP的值:0x20001288,然后在對應的行里找到地址。

地址一般以0x08開頭的32位數。本例中,地址為0x08003CB9。

4691ad3a-08a8-11ed-ba43-dac502259ad0.png

內存信息

1.4 在Keil菜單欄點擊View——Disassembly Window,在Disassembly窗口中右擊,在下拉菜單中選擇Show Disassemblyat Address...。

在彈出框Show Code atAdress的地址框中輸入地址0x08003CB9進行搜索,然后就會找到相對應的代碼。這里的代碼就是進入循環中斷之前的情況。

仔細查看附近區域的相關代碼來排查錯誤具體原因。

46b206c0-08a8-11ed-ba43-dac502259ad0.jpg

方法2:

2.1在硬件中斷函數HardFault_Handler里的while(1)處打調試斷點,程序執行到斷點處時點擊“STOP”停止仿真。

46d05efe-08a8-11ed-ba43-dac502259ad0.jpg

CallStack

2.2 在Keil菜單欄點擊View——Call Stack Window彈出Call Stack + Locals對話框。

然后在對話框中右鍵選擇Show Caller Code,就會跳轉到出錯之前的函數處,仔細查看這部分函數被調用或者數組內存使用情況。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2270

    文章

    10895

    瀏覽量

    355750
  • 硬件
    +關注

    關注

    11

    文章

    3312

    瀏覽量

    66201
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62573

原文標題:簡單實用!STM32硬件錯誤的調試技巧

文章出處:【微信號:knifewheat,微信公眾號:小麥大叔】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何進行硬件調試

    硬件調試硬件系統設計、開發和制造過程中不可或缺的一環,旨在對可能出現的問題進行分析和解決。以下是進行硬件調試的一般步驟和方法: 一、準備階
    的頭像 發表于 11-10 10:17 ?617次閱讀
    如何進行<b class='flag-5'>硬件</b><b class='flag-5'>調試</b>?

    socket編程中的錯誤處理技巧

    錯誤處理能夠確保程序在遇到異常情況時不會崩潰,而是能夠優雅地處理問題。 提升用戶體驗 :通過適當的錯誤處理,可以給用戶提供清晰的錯誤信息,避免用戶感到困惑。 便于調試和維護 :良好
    的頭像 發表于 11-01 17:47 ?852次閱讀

    開發攻略之STM32調試端口的映射

    最近有一個項目用到了STM32F103RB系列單片機,由于引腳數量較少,不得不使用到了單片機的PB3和PB4兩個引腳。而這兩個引腳剛好又是STM32系列的JTAG調試引腳,如果要用于普通IO的功能
    的頭像 發表于 08-03 08:11 ?429次閱讀
    開發攻略之<b class='flag-5'>STM32</b><b class='flag-5'>調試</b>端口的映射

    說說硬件調試中發現的那些低級錯誤

    說說硬件調試中發現的那些低級錯誤 2024-07-03 11:47**·**一博高速先生 高速先生成員--周偉 最近遇到很多debug相關的咨詢,曾經我們說過,我們做過的板子越多,遇到問題的概率也
    發表于 07-03 12:02

    說說硬件調試中發現的那些低級錯誤

    硬件調試中會經常遇到各種意想不到的問題,有些調試花了幾個月,各種能想到的辦法都嘗試了,最后發現卻是一個非常低級的錯誤,有多低級?請看今天的內文介紹。
    的頭像 發表于 07-03 12:00 ?326次閱讀
    說說<b class='flag-5'>硬件</b><b class='flag-5'>調試</b>中發現的那些低級<b class='flag-5'>錯誤</b>

    STM32F103用CAN調試器接到該板子后給其發消息,調試器會顯示總線數據錯誤的原因?

    項目里有個CAN收發相關的板子,用的是STM32F103芯片。在與上位機的CAN交互過程中經常會出現通訊錯誤的情況,表現在上位機發送報文后沒有收到回復。用CAN調試器接到該板子后給其發消息,調
    發表于 05-27 07:42

    stm32f030的硬件i2c中斷方式讀寫數據,為什么調試不出來?

    有沒有哪位大神用過stm32f030的硬件i2c中斷方式讀寫數據的?看文檔感覺可以用的,但是怎么就是調試不出來呢。
    發表于 05-11 08:02

    ucosiii的串口打印輸出遇到了硬件錯誤怎么解決?

    我練兩天調試了ucos-iii之前是應為一些問題發現系統運行錯誤,但是到了第二天打開工程從新編譯下載程序測試,發現一剛剛開始打印串口消息就出現了硬件錯誤(段
    發表于 04-24 06:03

    stm32cubeIDE移植的UCOSIII,定義float變量后進入硬件錯誤怎么解決?

    如題:stm32cubeIDE移植的UCOSIII,STemwin,用的stm32407芯片,定義float變量后進入硬件錯誤 之前是Keil5移植的時候也遇到了這個問題,然后是在啟動
    發表于 04-12 06:09

    stm32cubemx生成的can代碼,運行調試顯示顯性位錯誤的原因?

    stm32cubemx生成的can代碼,運行調試顯示顯性位錯誤,找不到原因,芯片是stm32f103z,求助各位。
    發表于 04-07 07:56

    用CUBE生成STM32H743工程,用iar編譯器進入硬件錯誤是哪里的問題?

    最近在用CUBE 生成STM32H743工程,用iar編譯器進入硬件錯誤,用MDK就沒問題,STM32H743只能用MDK嗎?
    發表于 04-07 06:07

    STM32 USART中斷與ADC DMA中斷沖突造成硬件錯誤的原因?

    開啟時會造成硬件錯誤HardFault_Handler?分開使用時沒有問題,USART中斷優先級比DMA的高,有沒有人知道什么原因啊
    發表于 04-02 06:26

    stm32l051 hal庫如何使用硬件i2c從機?

    stm32l051 hal庫如何使用硬件i2c從機,有沒有相關參考程序。現在調試過程中一直進入AF錯誤,是什么原因導致的?
    發表于 03-27 08:24

    STM32F429使用外部SPI flash,只要執行Bitmap::cache(id)就進入硬件錯誤怎么解決?

    ,就進入硬件錯誤。 執行Bitmap::cacheAll()函數也會進入硬件錯誤。 正常執行cache函數之后會進入TouchGFXHAL::blockCopy()函數,然后執行自定義
    發表于 03-27 07:39

    ug內部錯誤,內存訪問違例怎么解決

    問題,并提供一些預防這些問題的最佳實踐方法。 一、內部錯誤原因和解決方法 1. 軟件錯誤:軟件錯誤是引起內部錯誤的最常見原因之一。這可能是由于編程
    的頭像 發表于 12-27 16:27 ?6268次閱讀
    主站蜘蛛池模板: 日韩免费视频一区| 牛牛在线精品视频(正)| 男人的天堂MV在线视频免费观看| 日本大尺码喷液过程视频| 亚洲人成网站在线观看90影院| 99精品热视频30在线热视频| 国产精品永久免费视频观看| 龙泽罗拉av| 亚洲国产cao| 91桃色污无限免费看| 国产精品久久久久久搜索 | 欧美hdxxxx| 亚洲精品无码AAAAAA片| 超碰97人人做人人爱网站| 国语92电影网午夜福利| 日本xxxxxx片免费播放18| 中国二级毛片| 国内精品免费视频精选在线观看| 青青伊人国产| 97在线视频免费观看97| 久草在在线免视频在线观看| 天堂tv免费tv在线tv香蕉| 99热在线播放| 麻美ゆま夫の目の前で犯| 一级淫片bbbxxx| 黑粗硬大欧美在线视频| 偷偷鲁青春草原视频分类| 高挑人妻无奈张开腿| 日韩精品久久久久久久电影| 被男按摩师添的好爽在线直播| 男男腐文污高干嗯啊快点1V1| 一个人免费观看完整视频日本| 国产三级精品三级男人的天堂| 日韩欧美成人免费中文字幕| xxnx日本| 三级成年网站在线观看| fyeex性欧美人与曾| 欧美一级久久久久久久大| 扒开美女的内衣亲吻漫画| 日本无码欧美激情在线视频| 纯肉宠文高h一对一|