首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Verdi HW/SW co-debug 简单使用

文档:

User Guide: Verdi_HWSW_Debug.pdf in $VERDI_HOME/doc

介绍:

Verdi HW/SW co-debug: 对于包含CPU,需要跑嵌入式软件(C/汇编)的验证平台,可以使用verdi追踪RTL和波形对硬件debug,同时打开eclipse的HW/SW debug插件追踪C代码和汇编指令,查看registers, memory等对软件debug。还支持查看软件占用CPU时间和软件行覆盖率的report生成。

准备:

Verdi HW/SW Debug Solution(Verdi N-2017.12-SP1) 只支持 Linux RedHat 和 SUSE平台,对Linux平台有要求!

licnese: " lmstat -a " 查看是否有 Verdi_HwSwDebug 的license.

编译阶段:

对C的编译需要加上 “ -g "  gcc -g / armcc -g ,编译优化建议选择 “ -O1 "

ARM 之七 主流编译器(armcc、iar、gcc for arm)详细介绍

运行阶段:

需要生成arm的 tarmac trace file, 见 arm 文档

转换阶段:

将C/汇编生成的ELF可执行文件(arm的可能是armlink生成的 xxx.axf文件)和 tarmac log 转化成verdi可以吃进的 fsdb格式

command : hwsw_debug_convert cpuType=xxx exeFile=xxx.axf -i tarmac.log -o hwsw.fsdb

cpuType关系到使用哪个pattern files ($VERDI_HOME/share/hwsw_debug/patterns)格式化处理 tarmac.log文件。

也可以自定义pattern file, 支持 .xml 定义参数。

对于多核多集群的core, 需要指定更多信息,见ug。

Debug阶段:

有两种方式,一种是利用 hwsw_debug命令打开 eclipse软件界面,再 “Launch Verdi”打开verdi硬件界面,另一种和平常debug一样,直接打开verdi界面,然后加载上述生成的hwsw.fsdb,再在”Tool -> Invoke HW/SW Debug" 打开eclipse软件界面。

本例使用第二种方式

同时吃进 chip.fsdb hwsw.fsdb

可以在这两个fsdb之间切换,在同一个nWave界面加载波形。

其中hwsw.fsdb中默认包含有pc, lr, opcode等core相关的信号。

Tool -> Invoke HW/SW Debug 打开eclipse软件界面,按照提示的默认配置选择即可。

在nWave界面选中某一时刻,eclipse界面会自动同步到这个时刻:

Registers:

Memory:

也可以设置断点和单步调试

统计函数占用core的时间和软件代码覆盖率:

Demo:

自带了两个demo($VERDI_HOME/demo/hwsw_debug)

make verdi 上述第一种方式

make hwsw_debug eclipse 上述第二种方式

反汇编:

formelf -c -d --interleave=source xxx.axf (armcc编译)

objdump -dS xxx.out (gcc编译)

riscv-unknow-elf-objdump -dS xxx.o

反汇编生成的code和指令用于debug.

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230319A0204C00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券