卢骏 · 2020年06月04日

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。
1.png

左上角是源代码区,中间是反汇编区,右上角是状态区(用来查看core状态,以及切换core),最下面界面是波形区,显示各个core指令流的波形(只记录了pc)。

通过这个工具,就能够知道,我们编写的程序,在cpu上的执行过程,以及执行结果。还能够,单步仿真,单步跳过。而单步功能,不仅仅支持向前跳转,还可以向后跳转。
2.png

eswd工具,支持多个core,可以分别查看每个core的执行过程,在状态窗口的状态栏,会显示,当前查看的是哪一个core,以及该core的EL。

在源代码窗口,可以加载源文件。
3.png

对于加载的源代码,如果代码有执行过,那么在代码行的前面会有向前向后的按钮,点击该按钮,可以将当前的状态,恢复到执行该行代码的状态。
4.png

在debug界面,可以查看变量的值,以及调用栈。
5.png

在代码处,右键,选择 choose execution。
6.png

会弹出time tables窗口,显示,这个函数,在那些时刻有执行过。
7.png

在波形窗口,能够看到各个core的执行pc,以及该pc,所在的函数。
8.png

二、总结

该工具,可以让我们知道,程序在cpu上的执行过程,以及执行结果,方便我们去定位问题。而不需要去分析波形,才能得到cpu的执行过程与执行结果。

要想使用eswd工具,显示出这些信息,需要我们去做一些工作,产生database,给eswd工具来分析。

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

◾程序的elf文件

◾cpu架构的描述

◾trace的配置文件

◾cpu的执行结果trace

后面,就要详细来说明一下,如何得到上面的文件,最终产生database,并使用eswd工具进行分析。

更多相关阅读

cadence indago征程(二)如何产生indago database
cadence indago征程(三)indago工具的使用
cadence indago征程(四)仿真加速indago database

原文首发于骏的世界博客
作者:卢骏
更多IC设计相关的文章请关注IC设计极术专栏,每日更新。

推荐阅读
关注数
19640
内容数
1303
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息