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

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

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

RVBacktrace RISC-V極簡?;厮萁M件

RT-Thread官方賬號 ? 2024-09-15 08:12 ? 次閱讀

RVBacktrace

組件簡介

一個極簡的RISC-V?;厮萁M件。

組件功能

在需要的地方調(diào)用組件提供的唯一API,開始當前環(huán)境的?;厮?/p>

支持輸出addr2line需要的命令,使用addr2line進行棧回溯

支持結(jié)合反匯編,棧回溯信息圖表化

TODO List:

支持打印指定線程的?;厮菪畔?/p>

支持對接RT_ASSERT

支持輸出更多的符號信息

支持文件跳轉(zhuǎn)

添加組件

這個組件已經(jīng)制作成為rtthread軟件包,大家可以在軟件包市場找到。可以在env/RT-ThreadStudio中添加次軟件包進行使用。使用過程有任何疑問/反饋歡迎提ISSUE或者在群里討論。

使用示例

當前組件C的內(nèi)容極其簡單,同時對用戶僅提供單個API:void rvbacktrace(void),用戶在需要的地方調(diào)用該API就可以將當前的調(diào)用棧信息輸出,示例(下文演示為HPM6750):

1.在示例代碼適當位置調(diào)用rvbacktrace

3df373b4-72f7-11ef-bb4b-92fbcf53809c.png

2.運行代碼,終端輸出調(diào)用棧信息

3e09d91a-72f7-11ef-bb4b-92fbcf53809c.png

3.?;厮菪畔⒅庇^化

可以看到的是當前shell輸出的信息沒有符號信息,不太直觀,當前組件提供了兩種方法:

使用addr2line工具

結(jié)合返匯編文件中的信息輸出調(diào)用棧符號。當然還有更好的想法,已經(jīng)在路上了.接下來詳細介紹這倆中方法的使用

3.1 addr2line工具

可以看到shell輸出的信息中包含addr2line需要的信息,我們將其拷貝,然后在當前rtthread.elf目錄下使用該工具,我的環(huán)境中在wsl有該工具,則使用該工具打開,打開后將之前復制的信息拷貝至終端執(zhí)行,輸出如下:

3e15c96e-72f7-11ef-bb4b-92fbcf53809c.png

可以看到輸出的信息已經(jīng)很豐富了,在調(diào)試過程中還是很有幫助的。

3.2 結(jié)合反匯編圖形化

在RT-Studio配置輸出反匯編命令

3e2332f2-72f7-11ef-bb4b-92fbcf53809c.png3e2f7206-72f7-11ef-bb4b-92fbcf53809c.png

在反匯編文件同級目錄下創(chuàng)建一個txt文本將shell輸出的信息拷貝至txt文本

3e485276-72f7-11ef-bb4b-92fbcf53809c.png

rvbacktrace.txt中的內(nèi)容如下:

3e513bb6-72f7-11ef-bb4b-92fbcf53809c.png

然后點擊工程目錄下的RVBacktrace.py

3e5e344c-72f7-11ef-bb4b-92fbcf53809c.png

運行界面:

3e76bb48-72f7-11ef-bb4b-92fbcf53809c.png

這里我們輸入rvbacktrace.txt與rtthread.asm的路徑,為了方便將它倆放在了同一目錄下,

復制它兩的路徑并輸入到上述終端中:

3e8e8264-72f7-11ef-bb4b-92fbcf53809c.png

運行結(jié)果:

3ea43974-72f7-11ef-bb4b-92fbcf53809c.png

同時會自動生成html文件,以表格的形似輸出棧回溯信息,該文件在生成后自動打開。

3ebeaf66-72f7-11ef-bb4b-92fbcf53809c.png

上述是第一次運行,如果后續(xù)有其他的?;厮菪畔?,我們只需要將shell輸出的信息拷貝至之前創(chuàng)建的txt文本并保存,上述圖表就會自動更新,即在完成第一次操作后,后續(xù)只需要將shell輸出的新信息拷貝至txt文本即可。

如果需要修改txt文本的路徑或者反匯編的路徑,運行源碼下的clean.py后清除中間文件,重新按上述步驟執(zhí)行即可。

感覺不錯的小伙伴點個小星星叭,一起向RT-Thread/RISC-V奔跑!

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

    關注

    0

    文章

    99

    瀏覽量

    11567
  • RISC-V
    +關注

    關注

    44

    文章

    2204

    瀏覽量

    45958
  • RTThread
    +關注

    關注

    7

    文章

    132

    瀏覽量

    40775
收藏 人收藏

    評論

    相關推薦

    什么是RISC-V

    siFive搞RISC-V 賽昉搞RISC-V 香山搞RISC-V 到底什么是RISC-V? 先不問有什么用,RISC-V目前的能力來說,工
    發(fā)表于 02-02 10:41

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

    RISC-V中國峰會在杭州圓滿落幕。峰會現(xiàn)場,沁恒圍繞“青稞RISC-VMCU+USB/藍牙/以太網(wǎng)芯片,賦能RISC-V高效落地”的主題,通過首日主會場演講、展臺互動等形式,系統(tǒng)
    發(fā)表于 08-30 17:37

    為什么選擇RISC-V?

    RISC-V是一種開放式ISA(指令集體系結(jié)構(gòu)),為處理器體系結(jié)構(gòu)的創(chuàng)新開創(chuàng)了新紀元。RISC-V基金會由325多家成員公司組成。這是該技術的主要優(yōu)勢。軟件架構(gòu)師/固件工程師/軟件開發(fā)
    發(fā)表于 07-27 17:38

    risc-v是什么意思

    過去的所有擴展。RISC-V的特殊之處在于他使用模塊化的ISA?! ∷^模塊化ISA,RISC-V的核心是一個名為RV32I的基礎ISA,運行一個完整的軟件。RV32I是固定的,永遠不會改變。這為
    發(fā)表于 03-30 16:40

    FreeRTOS與RISC-V——適用于RISC-V的FreeRTOS概述

    1.1簡介FreeRTOS中面向RISC-V的接口是易于拓展的,其提供了一系列基本的接口,用于操作適用于所有RISC-V實現(xiàn)中的通用寄存器,以及一系列的宏來處理特定的硬件實現(xiàn)中涉及到的特性以及拓展
    發(fā)表于 04-09 09:26

    RISC-V 發(fā)展

    通用寄存器,每個通用寄存器都有各自的用途。例如x2是作為sp指針、a0-a1用來保存函數(shù)參數(shù)或返回值。x0寄存器被硬編碼為了0,就是個0值寄存器。ABI名稱相當于這些通用寄存器的別名,在RISC-V
    發(fā)表于 04-14 10:18

    開始了解RISC-V的好

    RISC-V ISA追求主義,這是一個錯誤。因為他們過分強調(diào)了最小化指令數(shù)量,規(guī)范化編碼等。這種主義的追求導致錯誤的正交性(例如將相
    的頭像 發(fā)表于 01-08 17:34 ?2007次閱讀

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

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

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

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

    openEuler加入RISC-V Landscape

    北京時間2023年3月8日,openEuler加入RISC-V Landscape。 此次加入RISC-V Landscape,意味著openEuler在對RISC-V架構(gòu)的生態(tài)適配
    的頭像 發(fā)表于 03-13 18:40 ?1285次閱讀

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

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

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

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

    湯谷智能發(fā)布全RISC-V硬件仿真加速系統(tǒng)方案

    面向高性能計算、IoT、無線接入、音頻、多媒體、消費類電子、邊緣計算等迅速擴展的RISC-V使用場景,湯谷智能發(fā)布了基于自研Logic Giant原型驗證硬件平臺的全RISC-V硬件仿真加速系統(tǒng)方案。
    的頭像 發(fā)表于 01-25 10:29 ?1253次閱讀
    湯谷智能發(fā)布全<b class='flag-5'>棧</b><b class='flag-5'>RISC-V</b>硬件仿真加速系統(tǒng)方案

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

    沁恒在歷屆峰會上分享RISC-V在MCU領域的創(chuàng)新成果,和大家共同見證了本土RISC-V產(chǎn)業(yè)的成長。早在第一屆RISC-V中國峰會上,沁恒就公開了青稞RISC-V系列量產(chǎn)芯片的關鍵技術
    的頭像 發(fā)表于 08-30 18:18 ?1326次閱讀
    <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 ?279次閱讀
    加入全球 <b class='flag-5'>RISC-V</b> Advocate 行列,共筑 <b class='flag-5'>RISC-V</b> 的未來 !