SkyEye与Trace32集成并搭建调试环境
01
SkyEye简介
SkyEye,中文全称天目全数字实时仿真软件,支持ARM、TI DSP、PowerPC、X86、SPARC、龙芯、飞腾等多种处理器体系架构的指令级别仿真,并支持与第三方软硬件集成,从而搭建统一的芯片验证和系统开发环境,以进行相关辅助测试,让软件测试效果更加准确直观。
本文将基于PowerPC架构的GDB调试功能,主要介绍SkyEye与Trace32(仿真测试工具)集成并调试所需的环境搭建和操作过程。
02
连接过程
以运行MPC755处理器的相关用例为例,连接过程如下:
1、打开调试用例下的.skyeye文件,补充“remote-gdb e600_core0 10001 127.0.0.1”命令

2、使用SkyEye加载用例

3、打开Trace32进行如下配置

4、点击Attach建立连接

03
联合调试
1、功能介绍
菜单栏:包含了Trace32的大多数功能入口,并按照功能分组排列;
工具栏:能够进行程序的单步、开始、停止等操作,可以快速打开一些窗口和视图;
命令行:可通过键盘或者功能键输入命令打开各种视图;
功能键:通过点击功能键可直接键入到命令行执行操作;
状态栏:能显示当前光标的地址、程序执行的状态、调试的模式。

2、联合调试的优势与应用
SkyEye与Trace32的GDB联合调试可实现在源码或者汇编码中设置断点、单步执行、单步跳过等功能,同时用户还可以使用查看内存、查看汇编码、查看变量、查看堆栈等辅助调试功能。
用户通过在源码或汇编码中打入断点,并结合调试功能,可快速跟踪程序运行过程中隐藏的错误以及低效的代码,缩短开发过程中因硬件环境所带来的时间损耗。此联合调试可广泛应用于航空、航天、交通、制造等嵌入式领域的软件研发过程中。

▲SkyEye与Trace32联合调试界面
04
SkyEye调试说明
随着数字时代和嵌入式技术的快速发展,完全依赖在真实硬件环境中进行源码或者汇编码的调试不仅会增加硬件成本的开销,还会大大增加时间成本,导致开发周期延长。SkyEye作为基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模,能够解决用户在没有真实硬件环境下的调试问题,帮助用户进行高效率、高质量的开发、调试及对硬件目标系统的测试和验证。

▲SkyEye可视化搭建模型图
SkyEye易用性高,能够兼容已有调试器,提供GDB Server模块,并支持多种架构处理器的GDB调试功能。

▲SkyEye GDB调试主界面

▲SkyEye支持的GDB调试器
在SkyEye调试界面中,双击行号即可进行断点设置,并显示断点列表。插入断点后,也能够通过设置启动或禁用控制断点的使用。

▲设置断点图示
能够进行源码的单步跳入、单步跳过,运行等调试操作。

▲基本调试操作标识
以上操作结合插入断点使用,可查看对应源码文件,使程序一步一步向下执行,开发、测试人员通过观察对应的反汇编文件和寄存器,查看代码的执行情况和串口的输出情况,便可快速跟踪程序运行过程中隐藏的错误。

▲插入断点并执行

▲插入断点并执行(续)