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

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

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

3天內不再提示

RISC-V指令異常調試實例

嵌入式USB開發 ? 來源:嵌入式USB開發 ? 作者:嵌入式USB開發 ? 2023-06-08 10:50 ? 次閱讀

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

RISC-V指令異常調試實例 (qq.com)

前言

本文以一個簡單的實例介紹RISC-V指令異常的調試過程,思路都是一樣的,遇到其他情況時分析過程也類似。

相關內容參考《riscv-privileged-20211203.pdf》

過程

現象是程序執行后進入了異常中斷,可以通過GDB的bt命令看到

#12 0x02002e9c in exception () at src/lib/riscv/src/exception.c:55


#13 0x02002b40 in is_exception ()


Backtrace stopped: frame did not save the PC


(gdb)

既然是進入了異常中斷,那么就需要確認到底是什么異常,

這可以通過mcause寄存器查看

(gdb) info reg mcause


mcause 0x2      0x2


(gdb)

可以看到是非法指令異常

那么我們就搜索文檔的Illegal instruction可以查看到所有可能導致Illegal instruction的原因。

圖片

我們搜到以下信息,即mtval寄存器保存了異常指令,mepc指向了異常指令

圖片

圖片

可以看到mepc的內容是0,那么猜測應該是函數指針未初始化直接調用導致的

(gdb) info reg mtval


mtval 0x0      0x0


(gdb) info reg mepc


mepc 0x0      0x0


(gdb)

到這里基本就確認了方向了,可以重點看哪些地方有函數指針,或者逐步注釋函數,或者逐步斷點定位即可。

這里很快就確認了是

是如下代碼導致

int xxx_ioctl(unsigned int dev_id, unsigned int cmd, void *data)
{


if (dev_id >= xxx_drv.dev_num)


return -1;


return xxx_drv.ops.ioctl(&(xxx_drv.dev[dev_id]), cmd, data);


}

查看函數指針正好是0

(gdb) p xxx_drv.ops.ioctl


$1 = (int (*)(struct xxx_dev_s *, unsigned int, void *)) 0x0


(gdb)

回溯代碼確認了是某個外設沒有初始化成功則這個回調函數沒有初始化。原因就定位了。

總結

對于異常的調試可以參考手冊《riscv-privileged-20211203.pdf》,從異常原因入手,逐漸反推,確認異常觸發點然后確定原因。

審核編輯:湯梓紅

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

    關注

    1

    文章

    615

    瀏覽量

    36282
  • 調試
    +關注

    關注

    7

    文章

    609

    瀏覽量

    34547
  • 命令
    +關注

    關注

    5

    文章

    730

    瀏覽量

    22724
  • RISC-V
    +關注

    關注

    46

    文章

    2507

    瀏覽量

    48355
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    正式的RISC-V基礎指令集架構與特權架構規范來了,RISC-V基金會已正式批準

    根據RISC-V基金會官網發布的公告,RISC-V 基金會宣布了批準RISC-V 基礎指令集架構與特權架構規范,為 RISC-V的可擴展性進
    的頭像 發表于 07-11 10:46 ?1w次閱讀

    RISC-V指令集架構特點

    RISC-V是當下熱門的技術,值得大家學習,這里分享一份關于RISC-V指令的內容給大家。
    的頭像 發表于 10-14 09:08 ?4180次閱讀

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

    本文以一個實例分享RISC-V的Store AMO access fault異常調試過程。Store AMO access fault主要發生在非法地址訪問時(棧溢出,指針
    的頭像 發表于 06-08 11:10 ?5821次閱讀
    <b class='flag-5'>RISC-V</b>的Store AMO access fault<b class='flag-5'>調試</b><b class='flag-5'>實例</b>

    RISC-V PMP調試

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

    RISC-V開放架構設計之道|閱讀體驗】RISC-V基礎整數指令

    第2章 RV32I:RISC-V基礎整數指令集 本章重點講解構成RISC-V基礎整數指令集的基本指令
    發表于 01-31 21:10

    RISC-V基礎整數指令

    可以讀取32位。這些計數器包括了系統時間, 時鐘周期以及執行的指令數目。在RISC-V指令集中,ecall指令用于向運行時環境發出請求,例如系統調用。
    發表于 07-27 22:25

    關于RISC-V學習路線圖推薦

    的編程方法。 學習RISC-V匯編語言 : 了解RISC-V匯編語言的語法和指令格式,編寫簡單的匯編程序。 調試與優化 : 使用調試工具(如
    發表于 11-30 15:21

    RISC-V指令集概述

    RISC-V就是RISC的第五代指令集架構。而RISC-V目標就是“成為一種完全開放的指令集架構,可被任何學術機構或商業組織自由使用”。
    發表于 11-30 23:30

    RISC-V基礎指令詳解

    RISC-V中定義了六種指令類型,其中包括 R型指令 : 用于寄存器與寄存器之間算數運算的指令 I型指令 : 用于寄存器和立即數算術運算和讀
    發表于 12-29 18:47

    什么是RISC-VRISC-V指令具有哪些特點應用?

    什么是RISC-VRISC-V指令具有哪些特點應用?自己怎么才能設計出設計一套指令集?
    發表于 10-14 09:05

    RISC-V 發展

    不完善的地方,有傳言未來可能會形成x86、ARM、RISC-V三足鼎立的天下,但能夠形成這個局面,還需要大家的共同努力。RISC-V指令RISC-V
    發表于 04-14 10:18

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

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

    簡單講講RISC-V指令集CPU的參數

    本次CPU采用32位RISC-V指令集架構(一代是自己瞎編指令集)。指令集就是程序指令的集合,指引硬件如何設計、如何運行。
    的頭像 發表于 08-07 14:55 ?4031次閱讀
    簡單講講<b class='flag-5'>RISC-V</b><b class='flag-5'>指令</b>集CPU的參數

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

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

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

    RISC-V調試和完善的跟蹤解決方案ppt分享
    發表于 07-14 17:15 ?2次下載
    主站蜘蛛池模板: 亚洲第一黄色网 | www.久久精品视频 | 成年1314在线观看 | 午夜小视频男女在线观看 | 女毛片| 激情视频综合网 | 久久香蕉综合色一综合色88 | 天天干天天日天天射天天操毛片 | 日本不卡一 | 男女视频在线观看免费高清观看 | 国产亚洲一区二区在线观看 | 在线a网站 | 色婷婷5月 | 天堂中文字幕在线观看 | 国产黄色高清视频 | 国产黄色a三级三级三级 | 五月天婷婷网站 | 怡红院亚洲怡红院首页 | 91免费视频网站 | 久久精品在 | 禁h粗大太大好爽好涨受不了了 | 俄罗斯aaaaa一级毛片 | 色老头久久久久久久久久 | 高h水果榨汁play男男 | aaaaaa精品视频在线观看 | 日本高清免费一本视频在线观看 | 中文字幕一区在线 | 日本免费精品视频 | 免费国产成高清人在线视频 | 在线天堂中文在线资源网 | 久久久久女人精品毛片 | 最色网站| 成人久久伊人精品伊人 | 人人人人凹人人爽人人澡 | 黄黄视频在线观看 | 日本丝瓜着色视频 | 欧美在线免费 | 欧美日韩a | 好男人社区www的视频免费 | 最新黄色在线 | 婷婷5月天|