在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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
    +關注

    關注

    2272

    文章

    10925

    瀏覽量

    357639
  • 硬件
    +關注

    關注

    11

    文章

    3391

    瀏覽量

    66469
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62982

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

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

收藏 人收藏

    評論

    相關推薦

    STM32 AD采集:電阻分壓電路調試指南

    調試基于STM32為主控,內部ADC采集電阻分壓式電壓值電路,STM32未使用參考電壓源,直接將Vref接至3V3供電端,發現采集后電壓誤差較大,其電路圖如下所示。 理論計算 根據分壓公式,理想Vr
    的頭像 發表于 02-07 11:12 ?135次閱讀
    <b class='flag-5'>STM32</b> AD采集:電阻分壓電路<b class='flag-5'>調試</b>指南

    如何進行硬件調試

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

    socket編程中的錯誤處理技巧

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

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

    最近有一個項目用到了STM32F103RB系列單片機,由于引腳數量較少,不得不使用到了單片機的PB3和PB4兩個引腳。而這兩個引腳剛好又是STM32系列的JTAG調試引腳,如果要用于普通IO的功能
    的頭像 發表于 08-03 08:11 ?504次閱讀
    開發攻略之<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 ?430次閱讀
    說說<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
    主站蜘蛛池模板: 精品国产污网站在线观看15 | 国产婷婷色| 国产巨大bbbb俄罗斯 | 欧美一二区视频 | 午夜特级毛片 | 亚洲国产午夜看片 | 亚洲五月婷 | 夜夜骑首页 | 六月色婷婷 | 香港三级理论在线观看网站 | 欧美成人aaaa免费高清 | 国语对白老女人8av 孩交精品xxxx视频视频 | 女人张开腿让男人桶免费网站 | 手机看片欧美日韩 | 男男失禁play 把尿bl | 视频在线观看高清免费大全 | 夜夜骑天天干 | 在线免费视频国产 | 99热这里精品 | 免费看一级视频 | 一区二区三区在线免费 | 欧美色图中文字幕 | 欧美成人xxxx | 成人三级电影在线观看 | 亚洲人成电影在线播放 | 久久这里只有精品1 | 成人伊人亚洲人综合网站222 | 四虎国产精品视频免费看 | 好爽好大www视频在线播放 | 婷婷热| 天天舔天天色 | 亚洲天堂不卡 | 女人张开腿给人桶免费视频 | 末成年一级在线看片 | 天天操夜夜添 | 五月亭亭激情五月 | 成人观看天堂在线影片 | 99xxxx开心| 欧洲妇女成人淫片aaa视频 | 亚洲永久免费视频 | 欧美三级一级片 |