精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

使用APM32一種排查軟件端問題的調試方法

Geehy極海半導體 ? 來源:21ic論壇 ? 作者:21ic論壇 ? 2022-09-08 11:00 ? 次閱讀

問題背景

實際調試、或者產品開發階段,有時候會碰到產品觸發異常、報HardFault這類錯誤。

在這里介紹一種排查軟件端問題的調試方法。

測試原理

簡單來說,就是利用 “MCU觸發HardFault異常、跳轉到HardFault服務函數前,會把現場的內核寄存器值先壓入堆棧空間保存好” 的這個特性。

所以我們可以:

· 確認觸發HardFault后,使用的是PSP進程堆棧,還是MSP主堆棧(一般是MSP,也可理解用戶在SRAM中劃分出來的堆棧空間)

· 根據對應堆棧SP指針,挑出觸發HardFault的PC指針所指向的位置。

· 注意現場保存、寄存器值入棧順序:xPSR-》PC-》LR-》R12-》R3~R0

b5dfeb18-2f16-11ed-ba43-dac502259ad0.jpg

b5f0adae-2f16-11ed-ba43-dac502259ad0.jpg

b60eddf6-2f16-11ed-ba43-dac502259ad0.jpg

實測基于APM32F407demo板,新建會觸發HardFault的例程——訪問、改寫溢出實際SRAM存儲空間的數據。

b635432e-2f16-11ed-ba43-dac502259ad0.jpg

b6577ac0-2f16-11ed-ba43-dac502259ad0.jpg 仿真調試下,全速運行,成功觸發Hardfault。

b66ae5e2-2f16-11ed-ba43-dac502259ad0.jpg

在0x2000_03E0堆棧位置,存儲著進入HardFault前的內核寄存器信息,如圖所示

·PC指向地址是0x08003AA——可找到對應觸發HardFault的匯編代碼

b6962e32-2f16-11ed-ba43-dac502259ad0.jpg

上述分析可以看到,在對0x2003_0002這個異常存儲空間進行操作后,會影響往下代碼指令的執行(特別是操作SRAM空間)從而觸發HardFault

后話HardFault的觸發還有很多因素,比如客戶的MCU供電問題、某些VCAP腳沒接上、硬件接地干擾、Flash等待周期不符合芯片規定等等。文章所介紹的方法只是針對軟件部分的排查參考。

審核編輯 :李倩

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

    關注

    31

    文章

    5325

    瀏覽量

    120052
  • 函數
    +關注

    關注

    3

    文章

    4308

    瀏覽量

    62445

原文標題:APM32芯得 EP.08 | APM32F407 HardFault排查——軟件方案

文章出處:【微信號:geehysemi,微信公眾號:Geehy極海半導體】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    一種簡單高效配置FPGA的方法

    本文描述了一種簡單高效配置FPGA的方法,該方法利用微處理器從串行外圍接口(SPI)閃存配置FPGA設備。這種方法減少了硬件組件、板空間和成本。
    的頭像 發表于 10-24 14:57 ?400次閱讀
    <b class='flag-5'>一種</b>簡單高效配置FPGA的<b class='flag-5'>方法</b>

    APM32F10xx進入低功耗模式的問題分析

    近日,在學習APM32開發板關于PMU模塊的內容,看到很多內容都是調用WFI內核指令進入低功耗模式,于是自己想嘗試調用WFE內核指令進入低功耗模式,但在APM32F10xx中,我運用按鍵中斷,在中斷
    的頭像 發表于 10-18 16:13 ?215次閱讀
    <b class='flag-5'>APM</b>32F10xx進入低功耗模式的問題分析

    一種利用wireshark對遠程服務器/路由器網絡抓包方法

    一種利用wireshark對遠程服務器/路由器網絡抓包方法
    的頭像 發表于 09-21 08:03 ?2076次閱讀
    <b class='flag-5'>一種</b>利用wireshark對遠程服務器/路由器網絡抓包<b class='flag-5'>方法</b>

    測試用例怎么寫

    編寫測試用例是確保軟件系統從頭到尾能夠正常工作的關鍵步驟。以下是個詳細的指南,介紹如何編寫
    的頭像 發表于 09-20 10:29 ?345次閱讀

    一種無透鏡成像的新方法

    使用OAM-HHG EUV光束對高度周期性結構進行成像的EUV聚光顯微鏡 為了研究微電子或光子元件中的納米級圖案,一種基于無透鏡成像的新方法可以實現近乎完美的高分辨率顯微鏡。 層析成像是一種強大的無
    的頭像 發表于 07-19 06:20 ?332次閱讀
    <b class='flag-5'>一種</b>無透鏡成像的新<b class='flag-5'>方法</b>

    rup是一種什么模型

    RUP(Rational Unified Process,統建模語言)是一種軟件開發過程模型,它是一種迭代和增量的軟件開發
    的頭像 發表于 07-09 10:13 ?1166次閱讀

    APM32下載了APM專屬的HEX例程后識別不了芯片怎么解決?

    之前焊了塊,可以識別芯片,下載了APM專屬的HEX例程后反而識別不了了,非常痛苦。ARM內核仍然存在,Keil里面也下載不了了……不是板子鎖死的問題
    發表于 03-28 06:20

    一種端接觸移動到另_行程距離傳感器

    一種端接觸移動到另_行程距離傳感器,用于高壓開關柜內(10kv~35kv),
    發表于 03-09 03:35

    介紹6常見的反調試方法

    一種防止逆向的方案。逆向人員如果遇到復雜的代碼混淆,有時會使用調試器動態分析代碼邏輯簡化分析流程。例如惡意軟件通常會被安全研究人員、反病毒廠商和其他安全專業人員分析和調試,以了解其行
    的頭像 發表于 01-15 09:53 ?3572次閱讀
    介紹6<b class='flag-5'>種</b>常見的反<b class='flag-5'>調試</b><b class='flag-5'>方法</b>

    SWD端口無法連接如何排查

    大家在調試GD32 MCU的時候是否也碰到過SWD調試端口無法連接的情況?SWD端口無法連接的原因有很多,有時候排查沒有思路,可能會耽誤大家的時間,下面小編為大家介紹常見的SWD無法連接的原因,供大家
    的頭像 發表于 01-10 10:46 ?2110次閱讀
    SWD端口無法連接如何<b class='flag-5'>排查</b>

    一種擴展Spring控制反轉的絕妙方法

    類型等于JSON,我就用JSON解析器,那如果新加個類型的解析器,是不是調用的客戶還要修改呢?這顯然太耦合了,本文就介紹一種方法,服務定位模式Service Locator Pattern來解決,它幫助我們消除緊耦合實現及其
    的頭像 發表于 01-10 09:41 ?412次閱讀

    一種鋰電池內水去除工藝方法

    一種鋰電池內水去除工藝方法
    的頭像 發表于 01-04 10:23 ?464次閱讀
    <b class='flag-5'>一種</b>鋰電池內水去除工藝<b class='flag-5'>方法</b>

    一種八腔帶通腔體濾波器的設計方法

    摘 要: 介紹了一種八腔帶通腔體濾波器的設計方法。結合仿真軟件SuperFilter與Ansoft HFSS的三維場仿真,能極大減少設計微波腔體濾波器的時間和成本。通過對模型的仿真和優化,最終設計出來的濾波器實驗測試結果與仿真結
    的頭像 發表于 12-16 16:51 ?1789次閱讀
    <b class='flag-5'>一種</b>八腔帶通腔體濾波器的設計<b class='flag-5'>方法</b>

    一種產生激光脈沖新方法

    等離子體中脈沖壓縮的概念 英國和韓國的科學家提出了一種產生激光脈沖的新方法,其功率是現有激光脈沖的1000多倍。 科學家們使用計算機模擬聯合研究,展示了一種壓縮光的新方法,以充分提高光
    的頭像 發表于 12-07 06:32 ?472次閱讀
    <b class='flag-5'>一種</b>產生激光脈沖新<b class='flag-5'>方法</b>

    一種大功率PCB散熱管理的方法

    一種大功率PCB散熱管理的方法
    的頭像 發表于 12-05 14:28 ?576次閱讀
    <b class='flag-5'>一種</b>大功率PCB散熱管理的<b class='flag-5'>方法</b>