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

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

3天內不再提示

RISC-V的Store AMO access fault調試實例

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-06-08 11:10 ? 次閱讀

本文轉自公眾號,歡迎關注

RISC-V的Store AMO access fault調試實例 (qq.com)

前言

本文以一個實例分享RISC-V的Store AMO access fault異常的調試過程。Store AMO access fault主要發(fā)生在非法地址訪問時(棧溢出,指針異常等)。

過程

現象是程序運行時進入了異常中斷,如下

使用bt回溯可以看到進入了異常處理函數exception ()

(gdb) bt


......


#6 0x02002eb2 in exception () at src/lib/riscv/src/exception.c:55


#7 0x00000000 in ?? ()


Backtrace stopped: frame did not save the PC


(gdb)

那么首先想到的是確認異常原因

查看異常寄存器:info reg mcause

可以看到異常原因是0x07

圖片

對應的是Store/AMO access fault 異常,這是一個寫數據時的異常.

圖片

那么接下來就要確認寫哪個地方的數據錯誤了呢?

我們可以通過info reg mtval 查看mtval寄存器看到。

寫0x28382ad0時產生了異常.

圖片

那么什么時候寫這個地址導致了異常呢,之前bt已經看不到回溯的地方了。

我們可以使用數據斷點來監(jiān)控

設置數據斷點 watch (unsigned int )0x28382ad0

重新加載程序運行 load

c運行

看到斷點停在了memset函數處,這印證了我們前面分析的是寫數據導致的問題

圖片

繼續(xù)bt查看

圖片

我們找到對應的代碼處

圖片

看下memset的參數,如果看不到可以在memset前打斷點重新運行

圖片

最終確認確實是棧初始化時寫0x28382ad0這個地址的內容錯誤,原因是不具備寫屬性導致異常

(gdb) p pxStack


$8 = (StackType_t *) 0x28382ad0


(gdb)

圖片

當然為什么這個地址不能寫和這里沒關系了,是另外一回事了,是我們的環(huán)境DDR的問題。

總結

以上是一個分析實例的過程,遇到類似問題可以參考。有幾個關鍵點一是確認異常原因,異常訪問的地址,然后通過數據斷點確認什么時候訪問了這個地址,到此基本就確認問題了,后面就順藤摸瓜了。

審核編輯:湯梓紅

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

    關注

    5045

    文章

    18817

    瀏覽量

    298492
  • 調試
    +關注

    關注

    7

    文章

    551

    瀏覽量

    33763
  • 指針
    +關注

    關注

    1

    文章

    475

    瀏覽量

    70457
  • RISC-V
    +關注

    關注

    44

    文章

    2141

    瀏覽量

    45708
收藏 人收藏

    評論

    相關推薦

    RISC-V指令異常調試實例

    本文以一個簡單的實例介紹RISC-V指令異常的調試過程,思路都是一樣的,遇到其他情況時分析過程也類似。
    的頭像 發(fā)表于 06-08 10:50 ?1630次閱讀
    <b class='flag-5'>RISC-V</b>指令異常<b class='flag-5'>調試</b><b class='flag-5'>實例</b>

    RISC-V PMP調試

    RISC-V PMP調試
    的頭像 發(fā)表于 06-08 11:52 ?1690次閱讀
    <b class='flag-5'>RISC-V</b> PMP<b class='flag-5'>調試</b>

    RISC-V工作模式及寄存器基本知識

    Instruction 0 3 Breakpoint 0 4 Load address misaligned 0 5 Load access fault 0 6 Store/AMO
    發(fā)表于 04-12 14:06

    RISC-V規(guī)范的演進 RISC-V何時爆發(fā)?

    RISC-V的關注度越來越高,開源的理念也正在被越來越多的開發(fā)者和公司接受。對于尚不成熟的RISC-V而言,無論是規(guī)范和技術的演進還是生態(tài)的建設,還有人才和專利都還有不小挑戰(zhàn)。2021年RISC-V
    的頭像 發(fā)表于 02-11 10:10 ?3022次閱讀

    RISC-V調試標準及跟蹤技術

    本文主要詳細介紹了RISC-V調試標準以及RISC-V的跟蹤技術,感興趣的小伙伴跟小編一起了解一下吧。
    的頭像 發(fā)表于 06-23 17:19 ?2795次閱讀
    <b class='flag-5'>RISC-V</b>的<b class='flag-5'>調試</b>標準及跟蹤技術

    使用Eclipse和MCUXpresso IDE調試RV32M1-VEGA RISC-V開發(fā)板

    使用Eclipse和MCUXpresso IDE調試RV32M1-VEGA RISC-V開發(fā)板
    發(fā)表于 12-06 20:06 ?7次下載
    使用Eclipse和MCUXpresso IDE<b class='flag-5'>調試</b>RV32M1-VEGA <b class='flag-5'>RISC-V</b>開發(fā)板

    關于RISC-V MCU開發(fā)實例(一):環(huán)境搭建

    關于RISC-V MCU開發(fā)實例:咱們以CSM32RV20的開發(fā)環(huán)境搭建為例子,我們可以參看動能世紀客戶分享的案例情況。
    的頭像 發(fā)表于 07-20 14:17 ?2204次閱讀
    關于<b class='flag-5'>RISC-V</b> MCU開發(fā)<b class='flag-5'>實例</b>(一):環(huán)境搭建

    RISC-V CPU調試機制的設計原理

    本文將詳細介紹RISC-V CPU調試機制的設計原理。
    發(fā)表于 10-18 09:19 ?2047次閱讀

    RISC-V學習筆記【1】RISC-V概述

    國產處理器芯片起步較晚,從2013年至今,集成電路每年的進口額均超過了 2000 億美元。RISC-V和AI(人工智能)芯片是我國最有希望突破的領域之一。RISC-V使用的領域還是對于生態(tài)依賴比較
    發(fā)表于 11-24 09:28 ?2478次閱讀

    RISC-VRISC-V AI的未來(特邀講座)

    主題演講:RISC-VRISC-V AI的未來(特邀講座)ppt分享
    發(fā)表于 07-14 17:15 ?11次下載

    RISC-V調試和完善的跟蹤解決方案

    RISC-V調試和完善的跟蹤解決方案ppt分享
    發(fā)表于 07-14 17:15 ?0次下載

    RISC-V設計支持工具,支持RISC-V技術的基礎

    RISC-V設計支持工具,支持RISC-V技術的基礎 ppt分享
    發(fā)表于 07-14 17:15 ?12次下載

    Imagination CPU 系列研討會 | RISC-V 平臺的性能分析和調試

    為了讓開發(fā)者及工程師深入了解Imagination的CPU產品及相關解決方案,Imagination將陸續(xù)推出5期線上研討會,包含:RISC-V平臺的性能分析和調試;RISC-V安全和全球平臺可信
    的頭像 發(fā)表于 08-10 08:28 ?169次閱讀
    Imagination CPU 系列研討會 | <b class='flag-5'>RISC-V</b> 平臺的性能分析和<b class='flag-5'>調試</b>

    RISC-V Summit China 2024 青稞RISC-V+接口PHY,賦能RISC-V高效落地

    第二屆RISC-V中國峰會的南京會場;青稞RISC-V的單雙線調試技術,在第三屆峰會上入選RISC-V新技術與新成果。
    的頭像 發(fā)表于 08-30 18:18 ?1087次閱讀
    <b class='flag-5'>RISC-V</b> Summit China 2024  青稞<b class='flag-5'>RISC-V</b>+接口PHY,賦能<b class='flag-5'>RISC-V</b>高效落地

    加入全球 RISC-V Advocate 行列,共筑 RISC-V 的未來 !

    加入RISC-VAdvocate行列!我們正在尋找來自世界各地的RISC-V愛好者,通過全球推廣和參與,成為支持RISC-V進步的關鍵參與者。作為一名RISC-VAdvocate,您將
    的頭像 發(fā)表于 09-10 08:08 ?119次閱讀
    加入全球 <b class='flag-5'>RISC-V</b> Advocate 行列,共筑 <b class='flag-5'>RISC-V</b> 的未來 !