99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用APM32一種排查軟件端問題的調(diào)試方法

Geehy極海半導(dǎo)體 ? 來源:21ic論壇 ? 作者:21ic論壇 ? 2022-09-08 11:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

問題背景

實際調(diào)試、或者產(chǎn)品開發(fā)階段,有時候會碰到產(chǎn)品觸發(fā)異常、報HardFault這類錯誤。

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

測試原理

簡單來說,就是利用 “MCU觸發(fā)HardFault異常、跳轉(zhuǎn)到HardFault服務(wù)函數(shù)前,會把現(xiàn)場的內(nèi)核寄存器值先壓入堆??臻g保存好” 的這個特性。

所以我們可以:

· 確認(rèn)觸發(fā)HardFault后,使用的是PSP進(jìn)程堆棧,還是MSP主堆棧(一般是MSP,也可理解用戶在SRAM中劃分出來的堆??臻g)

· 根據(jù)對應(yīng)堆棧SP指針,挑出觸發(fā)HardFault的PC指針?biāo)赶虻奈恢谩?/p>

· 注意現(xiàn)場保存、寄存器值入棧順序: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板,新建會觸發(fā)HardFault的例程——訪問、改寫溢出實際SRAM存儲空間的數(shù)據(jù)。

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

b6577ac0-2f16-11ed-ba43-dac502259ad0.jpg 仿真調(diào)試下,全速運(yùn)行,成功觸發(fā)Hardfault。

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

在0x2000_03E0堆棧位置,存儲著進(jìn)入HardFault前的內(nèi)核寄存器信息,如圖所示

·PC指向地址是0x08003AA——可找到對應(yīng)觸發(fā)HardFault的匯編代碼

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

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

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

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5434

    瀏覽量

    124523
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64897

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

文章出處:【微信號:geehysemi,微信公眾號:Geehy極海半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    硬件調(diào)試:JLink 驅(qū)動配置與調(diào)試技巧

    調(diào)試器的工作原理、驅(qū)動配置流程、調(diào)試環(huán)境搭建、斷點設(shè)置、寄存器與內(nèi)存調(diào)試、調(diào)試日志分析等方面,結(jié)合實際應(yīng)用案例,旨在為硬件工程師和技術(shù)開發(fā)人員提供
    的頭像 發(fā)表于 06-12 23:20 ?495次閱讀
    硬件<b class='flag-5'>調(diào)試</b>:JLink 驅(qū)動配置與<b class='flag-5'>調(diào)試</b>技巧

    基于極海APM32E103 MCU的CoreMark測試方法

    CoreMark跑分可以了解到MCU的算力。下面以APM32E103芯片和Keil為例,介紹下如何在APM32上面運(yùn)行CoraMark測試。CoreMark需要定時器用于計時,還需要用串口來打印輸出測試結(jié)果。
    的頭像 發(fā)表于 06-12 09:42 ?520次閱讀
    基于極海<b class='flag-5'>APM</b>32E103 MCU的CoreMark測試<b class='flag-5'>方法</b>

    研發(fā)排查問題的利器:方法調(diào)用棧跟蹤工具

    作者:京東物流 郭忠強(qiáng) 導(dǎo)語 本文從日常值班問題排查痛點出發(fā),分析方法復(fù)用的調(diào)用鏈路和上下文業(yè)務(wù)邏輯,通過思考分析,借助棧幀開發(fā)了方法調(diào)用棧的鏈?zhǔn)礁櫣ぞ撸阌谡故?/div>
    的頭像 發(fā)表于 05-06 17:24 ?2711次閱讀
    研發(fā)<b class='flag-5'>排查</b>問題的利器:<b class='flag-5'>一</b>款<b class='flag-5'>方法</b>調(diào)用棧跟蹤工具

    電機(jī)控制器出現(xiàn)的一種偶發(fā)故障排查與分析

    通信方式傳輸信息,控制器接收總控系統(tǒng)發(fā)出的電機(jī)啟動和轉(zhuǎn)速指令,同時向總控系統(tǒng)反饋電機(jī)的工作狀態(tài),包括電壓、電流、轉(zhuǎn)速、轉(zhuǎn)向等信息。純分享帖,需要者可點擊附件獲取完整資料~~~*附件:電機(jī)控制器出現(xiàn)的一種
    發(fā)表于 04-14 21:32

    DCS日常維護(hù)與故障分析排查方法

    DCS(分布式控制系統(tǒng))的日常維護(hù)與故障分析排查是確保系統(tǒng)穩(wěn)定運(yùn)行的關(guān)鍵環(huán)節(jié)。以下提供DCS日常維護(hù)與故障分析排查的詳細(xì)方法、日常維護(hù)方法
    的頭像 發(fā)表于 03-05 16:53 ?715次閱讀
    DCS日常維護(hù)與故障分析<b class='flag-5'>排查</b><b class='flag-5'>方法</b>

    怎么用Clion開發(fā)APM32

    APM32 官方 SDK 中提供了三開發(fā)環(huán)境:Keil、IAR 和 Eclipse。不否認(rèn)這三環(huán)境的強(qiáng)大,但是在 AI 時代做嵌入式開發(fā),用這三環(huán)境就顯得有點不夠優(yōu)雅了。本篇文章
    的頭像 發(fā)表于 12-17 09:19 ?1698次閱讀
    怎么用Clion開發(fā)<b class='flag-5'>APM32</b>

    射頻放大器調(diào)試與故障排查

    、射頻放大器的基本工作原理 在深入調(diào)試和故障排查之前,了解射頻放大器的基本工作原理是必要的。射頻放大器通常由輸入匹配網(wǎng)絡(luò)、放大器核心和輸出匹配網(wǎng)絡(luò)組成。輸入匹配網(wǎng)絡(luò)確保信號能夠有效地從源傳遞到
    的頭像 發(fā)表于 12-16 09:06 ?1172次閱讀

    一種創(chuàng)新的動態(tài)軌跡預(yù)測方法

    本文提出了一種動態(tài)軌跡預(yù)測方法,通過結(jié)合歷史幀和歷史預(yù)測結(jié)果來提高預(yù)測的穩(wěn)定性和準(zhǔn)確性。它引入了歷史預(yù)測注意力模塊,以編碼連續(xù)預(yù)測之間的動態(tài)關(guān)系,并通過三重因子注意力模塊實現(xiàn)了最先進(jìn)的性能。本方法能夠生成準(zhǔn)確且穩(wěn)定的未來軌跡,這
    的頭像 發(fā)表于 10-28 14:34 ?1097次閱讀
    <b class='flag-5'>一種</b>創(chuàng)新的動態(tài)軌跡預(yù)測<b class='flag-5'>方法</b>

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

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

    伺服電機(jī)有哪些調(diào)試方法?如何調(diào)?

    伺服電機(jī)是一種高精度的電機(jī),廣泛應(yīng)用于自動化設(shè)備、機(jī)器人、數(shù)控機(jī)床等領(lǐng)域。為了確保伺服電機(jī)的性能和穩(wěn)定性,需要進(jìn)行正確的調(diào)試。以下是些常見的伺服電機(jī)調(diào)試
    的頭像 發(fā)表于 10-22 11:04 ?3164次閱讀

    APM32F10xx進(jìn)入低功耗模式的問題分析

    近日,在學(xué)習(xí)APM32開發(fā)板關(guān)于PMU模塊的內(nèi)容,看到很多內(nèi)容都是調(diào)用WFI內(nèi)核指令進(jìn)入低功耗模式,于是自己想嘗試調(diào)用WFE內(nèi)核指令進(jìn)入低功耗模式,但在APM32F10xx中,我運(yùn)用按鍵中斷,在中斷
    的頭像 發(fā)表于 10-18 16:13 ?840次閱讀
    <b class='flag-5'>APM</b>32F10xx進(jìn)入低功耗模式的問題分析

    TI低功率Smart PA調(diào)試系列之:揚(yáng)聲器工作原理及軟件調(diào)試入門

    電子發(fā)燒友網(wǎng)站提供《TI低功率Smart PA調(diào)試系列之:揚(yáng)聲器工作原理及軟件調(diào)試入門.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 09:14 ?2次下載
    TI低功率Smart PA<b class='flag-5'>調(diào)試</b>系列之<b class='flag-5'>一</b>:揚(yáng)聲器工作原理及<b class='flag-5'>軟件</b><b class='flag-5'>調(diào)試</b>入門

    一種利用wireshark對遠(yuǎn)程服務(wù)器/路由器網(wǎng)絡(luò)抓包方法

    一種利用wireshark對遠(yuǎn)程服務(wù)器/路由器網(wǎng)絡(luò)抓包方法
    的頭像 發(fā)表于 09-21 08:03 ?4929次閱讀
    <b class='flag-5'>一種</b>利用wireshark對遠(yuǎn)程服務(wù)器/路由器網(wǎng)絡(luò)抓包<b class='flag-5'>方法</b>

    測試用例怎么寫

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

    一種無透鏡成像的新方法

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