chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

RISC-V指令異常調試實例

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-06-08 10:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

前言

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

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

過程

現(xiàn)象是程序執(zhí)行后進入了異常中斷,可以通過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,那么猜測應該是函數(shù)指針未初始化直接調用導致的

(gdb) info reg mtval


mtval 0x0      0x0


(gdb) info reg mepc


mepc 0x0      0x0


(gdb)

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

這里很快就確認了是

是如下代碼導致

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);


}

查看函數(shù)指針正好是0

(gdb) p xxx_drv.ops.ioctl


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


(gdb)

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

總結

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

審核編輯:湯梓紅

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

    關注

    1

    文章

    617

    瀏覽量

    37147
  • 調試
    +關注

    關注

    7

    文章

    618

    瀏覽量

    35203
  • 命令
    +關注

    關注

    5

    文章

    745

    瀏覽量

    23280
  • RISC-V
    +關注

    關注

    47

    文章

    2694

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    RISC-V指令集架構特點

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

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

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

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

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

    RISC-V基礎整數(shù)指令

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

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

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

    RISC-V指令集概述

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

    RISC-V基礎指令詳解

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

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

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

    RISC-V 發(fā)展

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

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

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

    簡單講講RISC-V指令集CPU的參數(shù)

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

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

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

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

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