RM新时代网站-首页

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

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

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

RISC-V的Store AMO access fault調(diào)試實例

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

本文轉(zhuǎn)自公眾號,歡迎關(guān)注

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

前言

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

過程

現(xiàn)象是程序運行時進(jìn)入了異常中斷,如下

使用bt回溯可以看到進(jìn)入了異常處理函數(shù)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)

那么首先想到的是確認(rèn)異常原因

查看異常寄存器:info reg mcause

可以看到異常原因是0x07

圖片

對應(yīng)的是Store/AMO access fault 異常,這是一個寫數(shù)據(jù)時的異常.

圖片

那么接下來就要確認(rèn)寫哪個地方的數(shù)據(jù)錯誤了呢?

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

寫0x28382ad0時產(chǎn)生了異常.

圖片

那么什么時候?qū)戇@個地址導(dǎo)致了異常呢,之前bt已經(jīng)看不到回溯的地方了。

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

設(shè)置數(shù)據(jù)斷點 watch (unsigned int )0x28382ad0

重新加載程序運行 load

c運行

看到斷點停在了memset函數(shù)處,這印證了我們前面分析的是寫數(shù)據(jù)導(dǎo)致的問題

圖片

繼續(xù)bt查看

圖片

我們找到對應(yīng)的代碼處

圖片

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

圖片

最終確認(rèn)確實是棧初始化時寫0x28382ad0這個地址的內(nèi)容錯誤,原因是不具備寫屬性導(dǎo)致異常

(gdb) p pxStack


$8 = (StackType_t *) 0x28382ad0


(gdb)

圖片

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

總結(jié)

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

審核編輯:湯梓紅

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

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304791
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    578

    瀏覽量

    33923
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    480

    瀏覽量

    70551
  • RISC-V
    +關(guān)注

    關(guān)注

    45

    文章

    2270

    瀏覽量

    46125
收藏 人收藏

    評論

    相關(guān)推薦

    RISC-V指令異常調(diào)試實例

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

    RISC-V PMP調(diào)試

    RISC-V PMP調(diào)試
    的頭像 發(fā)表于 06-08 11:52 ?1917次閱讀
    <b class='flag-5'>RISC-V</b> PMP<b class='flag-5'>調(diào)試</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ī)范的演進(jìn) RISC-V何時爆發(fā)?

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

    RISC-V調(diào)試標(biāo)準(zhǔn)及跟蹤技術(shù)

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

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

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

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

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

    RISC-V CPU調(diào)試機制的設(shè)計原理

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

    RISC-V學(xué)習(xí)筆記【1】RISC-V概述

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

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

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

    RISC-V調(diào)試和完善的跟蹤解決方案

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

    RISC-V設(shè)計支持工具,支持RISC-V技術(shù)的基礎(chǔ)

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

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

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

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

    第二屆RISC-V中國峰會的南京會場;青稞RISC-V的單雙線調(diào)試技術(shù),在第三屆峰會上入選RISC-V新技術(shù)與新成果。
    的頭像 發(fā)表于 08-30 18:18 ?1474次閱讀
    <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進(jìn)步的關(guān)鍵參與者。作為一名RISC-VAdvocate,您將
    的頭像 發(fā)表于 09-10 08:08 ?372次閱讀
    加入全球 <b class='flag-5'>RISC-V</b> Advocate 行列,共筑 <b class='flag-5'>RISC-V</b> 的未來 !
    RM新时代网站-首页