cadence indago征程(五)最強cpu debug工具-eswd

我們在編寫c程序,在調試的時候,希望能夠使用visual studio工具,或者eclipse工具,實現單步調試,讓我們能夠查看c程序的執行狀態,從而幫助我們去調試我們寫的c程序。

那在soc驗證或cpu core驗證(以下簡稱core驗證)的時候。我們也是寫了c程序(或者彙編程序,以下不區別),在驗證環境中運行,怎麼能夠知道程序在core上的執行結果呢?我們也希望能有像eclipse這樣的工具,能夠通過IDE工具,能夠知道程序的執行過程以及執行結果。

這個時候,indago中的embedded software debug app(以下簡稱eswd)工具橫空出世,解決了上述問題。

一、eswd工具

首先上圖,以下是eswd的界面。cpu的名字,叫xxx。支持aarch64和aarch32兩種arm架構指令集。包含8個core。


左上角是源代碼區,中間是反彙編區,右上角是狀態區(用來查看core狀態,以及切換core),最下面界面是波形區,顯示各個core指令流的波形(只記錄了pc)。

通過這個工具,就能夠知道,我們編寫的程序,在cpu上的執行過程,以及執行結果。還能夠,單步仿真,單步跳過。而單步功能,不僅僅支持向前跳轉,還可以向後跳轉。


eswd工具,支持多個core,可以分別查看每個core的執行過程,在狀態窗口的狀態欄,會顯示,當前查看的是哪一個core,以及該core的EL。

在源代碼窗口,可以加載源文件。


對於加載的源代碼,如果代碼有執行過,那麼在代碼行的前面會有向前向後的按鈕,點擊該按鈕,可以將當前的狀態,恢復到執行該行代碼的狀態。


在debug界面,可以查看變量的值,以及調用棧。


在代碼處,右鍵,選擇 choose execution。


會彈出time tables窗口,顯示,這個函數,在那些時刻有執行過。


在波形窗口,能夠看到各個core的執行pc,以及該pc,所在的函數。


二、總結

該工具,可以讓我們知道,程序在cpu上的執行過程,以及執行結果,方便我們去定位問題。而不需要去分析波形,才能得到cpu的執行過程與執行結果。

要想使用eswd工具,顯示出這些信息,需要我們去做一些工作,產生database,給eswd工具來分析。

產生database,需要如下的一些文件:

  • 程序的elf文件

  • cpu架構的描述

  • trace的配置文件

  • cpu的執行結果trace

後面,就要詳細來說明一下,如何得到上面的文件,最終產生database,並使用eswd工具進行分析。

更多內容,請訪問我的個人網站:

http://www.lujun.org.cn

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章