在线观看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

    文章

    607

    瀏覽量

    35710
  • 調試
    +關注

    關注

    7

    文章

    578

    瀏覽量

    33936
  • 命令
    +關注

    關注

    5

    文章

    684

    瀏覽量

    22021
  • RISC-V
    +關注

    關注

    45

    文章

    2277

    瀏覽量

    46158
收藏 人收藏

    評論

    相關推薦

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

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

    RISC-V指令集架構特點

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

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

    本文以一個實例分享RISC-V的Store AMO access fault異常調試過程。Store AMO access fault主要發生在非法地址訪問時(棧溢出,指針
    的頭像 發表于 06-08 11:10 ?4581次閱讀
    <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 ?1931次閱讀
    <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學習路線圖推薦

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

    RISC-V指令集概述

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

    什么是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的P擴展簡述與實例解析

    在研究RISC-V指令集的時候,其指令是模塊化的,這就為其指令的擴展提供了更多的可能性。下面僅代表我對RISC
    的頭像 發表于 04-27 11:30 ?7444次閱讀
    關于<b class='flag-5'>RISC-V</b>的P擴展簡述與<b class='flag-5'>實例</b>解析

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

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

    第一屆RISC-V中國峰會看點 risc-v開發要怎么優化risc-v指令集架構代碼密度

    在第一屆RISC-V中國峰會上看點很多,RISC-V是開源的,那么代碼密度要怎么控制,會不會因為開源而導致代碼密度特別大? 我們一起來看看risc-v峰會其中一個非常重要的亮點;卡姆派樂信息科技有限公司解讀針對
    發表于 06-23 18:22 ?9682次閱讀
    第一屆<b class='flag-5'>RISC-V</b>中國峰會看點 <b class='flag-5'>risc-v</b>開發要怎么優化<b class='flag-5'>risc-v</b><b class='flag-5'>指令</b>集架構代碼密度

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

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

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

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

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

    RISC-V調試和完善的跟蹤解決方案ppt分享
    發表于 07-14 17:15 ?0次下載
    主站蜘蛛池模板: 91啪在线视频| 99热久久精品最新| 香蕉久久夜色精品国产2020| 欧美二级黄色片| 午夜视频在线观看网站| 韩国xxxxxxxx69| 婷婷激情六月| 丁香婷婷网| 久久九九国产| aaaa黄色片| 激情婷婷六月天| 黄页网站在线| 亚洲色图狠狠干| 国产精品三级国语在线看| 国产精品夜夜春夜夜| 亚洲伊人久久大香线蕉影院 | 久久综合久| 亚洲国产成人久久| 国产手机免费视频| 67194最新网址| 色综合天天射| 亚洲国产精| 日本高清免费aaaaa大片视频| 女人被男人免费播放网站| 日本黄色小说视频| 在线种子资源网| 四虎影永久在线观看网址| 97玖玖| 亚洲国产欧美在线人成aaa| 人人射人人射| 久久久久久久成人午夜精品福利| 最近2018中文字幕2019视频| 国产人成精品香港三级古代| 欧美人与z0zoxxxx| 欧美在线免费| 黄黄网址| 色婷婷综合激情| 欧美肥胖女人bbwbbw视频| 亚洲国产欧美精品一区二区三区 | 好大好硬好深好爽视频h| 欧美一区二区三区影院|